CSE 231

Introduction to Programming I
Fall Semester, 2024

Description

Introduction to programming using Python. Design, implementation and testing of programs to solve problems primarily in engineering, mathematics and science. Programming fundamentals, functions, classes, lists, and dictionaries.

Objectives

In this course, students will study general programming concepts, as well as a modern programming language which illustrates those concepts. Students will design, implement and test Python programs.

At the end of this course when presented with a problem we expect that a student will respond: "Hey, I can write a program to do that!"

Highlights

You are responsible for all the details in the syllabus below, but here are highlights.

Instructors


Note: With 800 students, I find that any regularly scheduled times do not work for too many students so individual appointments are more convenient for students.
    
     Dr. Imen Zaabar
     Office: 3581 Engineering or STEM 1017 
     Office Phone: 517-355-4747  
     email: zaabarim@cse.msu.edu (email is by far the best way to contact me.)
     Web: https://www.cse.msu.edu/~zaabarim
     Office Hours: To schedule an appointment go to my Google calendar, choose an available slot and book it. Office hours will be on Zoom
    
     Dr. Husain Khalifeh
     Office Phone: -  
     email: khalife8@msu.edu (email is by far the best way to contact me.)
     Web: Google Scholar
     Office Hours: To schedule an appointment go to my Google calendar, choose an available slot and book it. Office hours will be on Zoom

Course Web Site

Couse Web Site: https://www.cse.msu.edu/~cse231

Discussion boards will be on https://piazza.com

Required Course Material

Due Dates

The Due Dates Page is your guide to due dates for the semester: https://www.cse.msu.edu/~cse231/Online/due_dates_FS24.html

To allow some flexibility:

Except for urgent documented circumstances (e.g. medical reasons, family emergencies, school activities, etc.). There will be no other extensions.

Due times are U.S. Eastern Standard Time. Codio uses your computer's time setting to display time in your browser so if your computer's time is set to a different time zone, you will be misled by displayed due dates and times.

Course Grades

Each student's course grade will be based on the sum of the points earned in the following categories:

Examinations (60% of total course points)
Computer Projects (30% of total course points)
Chapter Exercises (5% of total course points)
Practical Assessments (in-class Coding challenges) (5% of total course points)

To be eligible to earn a non-zero grade in the course, a student must received a passing grade (1.0 or above) and earn at least 50% average of the exams. If you do not take the final exam, your course grade will be zero.

The following table gives the scale for course grades:

4.0 90% of points available
3.5 85% of points available
3.0 80% of points available
2.5 75% of points available
2.0 70% of points available
1.5 65% of points available
1.0 (passing grade) 60% of points available

The instructor reserves the right to adjust the scale for course grades, if necessary. The instructor also reserves the right to make changes in the course schedule and syllabus as necessary to facilitate learning and maintain course objectives.

Important: Students who get a zero ("no credit") on more than two (2) laboratory exercises will have their course grade reduced by 0.5 for each laboratory exercise missed beyond two. For example, if a student had sufficient points to normally earn a 3.0, but zeros four (4) laboratory exercises, that student's grade will be reduced by 2*0.5 to a 2.0 course grade.

Exams

Two midterm examinations and a final examination will be conducted during the semester, and will constitute 60% of the total course points. You will be allowed one sheet of notes (8.5x11 inches), but no electronic devices. Students will take exams in-person on-campus. The coding portion of the exam is on your computer in Codio only and is required to be done through the lockdown browser. Coding keystrokes are recorded. Finally, failure to use the lockdown browser is grounds for a zero on the exam and possibly the course.

All issues related to the final examination will follow the policies and schedule of the University: MSU Final Exam Schedule.

Labs

Labs are mandatory and there will be a laboratory exercise due every week. Missing labs will reduce your final grade (see below).

All Sections meet in STEM 1201 (ground floor of the new STEM building);

The labs are designed to be learning tools that complement the lectures and assigned readings. They are designed to be collaborative experiences where students work with each other and the Teaching Assistant to complete the lab exercises.

Important: Students who get a zero on more than two (2) laboratory exercises will have their course grade reduced by 0.5 for each laboratory exercise missed beyond two. For example, if a student had sufficient points to normally earn a 3.0, but zeros four (4) laboratory exercises, that student's grade will be reduced by 2*0.5 to a 2.0 course grade.

Chapter Exercises

Students will be assigned Chapter Exercises (on Codio). Collaboration is encouraged.

Chapter Exercises constitute 5% of the course points. Chapter Exercises are recorded as Correct/NotCorrect. There is no limit to the number of tries to getting a chapter exercise correct. For each question your solutions will be submitted if you click on "Check answer". Final grades are not recorded until you manually hit the"Submit" button. If you use any prohibited concepts as described in the instructions, you will get a zero for that questions.

Practical Assessments

Students will be taking timed small coding challenges (quizzes) at the end of lab on Codio and through lockdown browser. You are required to be present.

Missed quizzes may not be made up. You must take them at your assigned time and not at some other time. You cannot miss multiple quizzes. To account for illness, absence, forgetfulness, mistakes, technical issues, and other normal life events, the lowest quiz scores will be dropped and not counted toward your final grade. Quizzes constitute 5% of the course points. Quizzes are recorded as Correct/NotCorrect (no manual grading). There is no limit to the number of tries to getting a question correct during the allowed time. For each question, your solutions will be submitted if you click on "Check" button. Final grades are not recorded until you manually hit the "Mark as completed" button.

Computer Projects

A series of computer projects will be assigned, and will constitute 30% of the total course points. The projects will include the design and implementation of solutions using Python. Projects are submitted through Codio only. Late projects are not accepted (see exception above). If you are unable to complete a project by the due date because of illness or personal emergency, or a documented technical issue beyond your control (computer crash, no access to internet, etc.) contact your instructor with the appropriate documentation. If appropriate, an extension will be granted.

Since, you will have access to all the project files (instructions, tests, etc.) in the course website, if the technical issue is with the submission website (Codio), you need to send your file to both instructors before the due date. Otherwise, your submission will not be accepted.

Programming projects are to be done individually -- unlike labs and chapter exercises that are done collaboratively. If the coding portion of the programming project is done in collaboration with another student, you will both be assigned a zero with an Academic Dishonesty report filed with the University : see note about Academic Integrity below.

For submission and auto-grading of projects we use Codio, a commercial product. There is a $44 charge.

Hard Coding: For some tests it is possible to cheat the tests by simply printing the expected output instead of writing code that solves the specified problem. An alternative is to assign a variable with a particular value to achieve the same effect. That is called "hard coding" and will earn a score of zero for the entire project.

Use of prohibited concepts: you are only allowed to use the material taught in the class up to the week of the assignments. In addition, we sometimes prohibits the use of specific concepts in some of the assignments to maintain the objectives of the course and assignment. Any use of prohibited concepts will results in a zero for the entire project.

Utilizing AI Coding Tools

You may choose to take advantage of AI tools that support software development, such as ChatGPT. If you select this option, you may use this option only after Project 4 and you must work independently, and not with another CS231 student. CS231 does not provide explicit support or training in the use of these tools. Sometimes we provide some videos to guide you on how to use them. However, you may find them helpful, both now and in the future.

A few notes if you choose this option:

Academic Integrity

The Department of Computer Science and Engineering expects all students to adhere to MSU's General Student Regulation 1.00, Protection of Scholarship and Grades, which states:

The principles of truth and honesty are fundamental to the educational process and the academic integrity of the University; therefore, no student shall:

In particular, examinations, quizzes (practical assessement) and computer projects are individual assignments: anything which you submit for grading must be your own work.

For the computer projects, you are encouraged to discuss the specifications and problem-solving strategies with your instructor, your Teaching Assistant, and other students from the class only. However, once you begin implementing your solution in Python, you must work individually. Under no circumstances should you allow another student to view or copy your solution or discuss codes with another student. Note that each project solution is electronically compared to all other solutions to identify similar solutions.

Students who submit similar solutions will receive a penalty grade, such as a score of zero for that assignment or a grade of zero in the course. Note that while the filing of an Academic Dishonesty Report depends on the details of the submission of similar programs, the application of a zero grade does not.

If you show your code to another student, you are almost guaranteed a zero because most novice programmers will not be able to think of another way to do it and end up copying your code or sharing it with someone else who copies it.

Posting your completed assignment on a collaborative coding platform such as Github is an extremely searchable way for others to access your work, even if you do not know the student that takes your code. You are not allowed to post your completed assignment online until the end of the semester.

If you use or copy code from websites other than the course website, e.g. Chegg, in addition to receiving a zero on the project your final grade for the course will be reduced a full grade, i.e. we take your final numerical grade and subtract 1.0. Note that this rule applies if Chegg, or similar, code is in your submission, e.g. if a friend gave you Chegg code, this rule applies as you are responsible for the code you submit.

In all cases of penalty grades an Academic Dishonesty Report is filed with the University.

The "oops" rule: Sometimes a student will use another students code as a deadline nears and regret it the next day so we have the following option. Within 24 hours of the regular due date for a programming project you may withdraw your submission by sending an email to both instructors. A withdrawn project will be worth 0 points, and will not be considered for academic dishonesty (that is, no Academic Dishonesty Report will be filed).

Failure to use the lockdown browser on an exam is grounds for a zero on the exam and possibly the course.

Finally, consider the Spartan Honor Code: As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.

Notes

Any extenuating circumstances that impact on your participation in the course should be discussed with your lecture instructor as soon as those circumstances are known (such as absences due to illness, religious observances, or other required school activities). University policy allows for absences due to religious observances, but "(i)t is the responsibility of those students who need to be absent to inform their instructor at least two weeks before the holiday, make arrangements in advance with their instructors, and to catch up on any material discussed and assignments given during that class period. Accommodations must never fundamentally alter an essential requirement of the course."

All students are expected to be responsible users of the computer system provided for this course. Account usage guidelines published by the Department of Computer Science and Engineering are posted under:

Account Usage Guidelines ( https://www.cse.msu.edu/facility/security/msu_policy.php )

Commercialization of lecture notes and course materials is not permitted in this course.

Calendar

See https://www.cse.msu.edu/~cse231/Online/due_dates_FS24.html