CSE 231

Introduction to Programming I
Summer Semester, 2018


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.


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 with respond: "Hey, I can write a program to do that!"


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


     Dr. Richard Enbody
     Office: 3145 Engineering  
     Office Phone: 517-353-3389  
     email: enbody@cse.msu.edu (email is by far the best way to contact me.)
     Web: https://www.cse.msu.edu/~enbody
     Office Hours: To schedule an appointment go to my Google calendar, find an available slot, send an email requesting an appointment at that time -- the email is to handle overlapping requests. (With 700 students I find that any regularly scheduled times do not work for too many students so individual appointments are more convenient for students.)

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/due_dates.html

To allow some flexibility:

Except for extreme circumstances (e.g. a car crash puts you overnight in a hospital) there will be no other extensions.

Due times are U.S. Eastern Standard Time. Mimir 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 (points are different for the Honors Section):

Examinations (45% of total course points)
Computer Projects (45% of total course points)
Chapter Exercises (10% of total course points)

To be eligible to earn a non-zero grade in the course, a student normally must earn at least 50% of the total points for the examinations and earn at least 50% of the total points for the computer projects.

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 60% of points available

The instructor reserves the right to adjust the scale for course grades, if necessary.

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.


A midterm examination and a final examination will be conducted during the semester, and will constitute 45% of the total course points. You will be allowed one sheet of notes (8.5x11 inches) both sides, but no electronic devices. Non-native English speakers may bring a paper dictionary.

Students in the online section have the option of taking exams on campus (no fee) or taking exams remotely for a fee (we use a commercial online proctoring firm which charges approximately $15 per exam, and requires a web cam). Online students planning on taking exams remotely will have to make proctoring arrangements with the instructor 10 days before the exam. Remote exams take place at the same time on the same day as local exams using Eastern Time US.

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


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

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.

Online students (Section 730) hand in lab exercises using Mimir and are due at 11:59 PM on the due date (usually Fridays).

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 Mimir). Collaboration is encouraged.

Chapter Exercises constitute 10% 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 either "Submit Assignment" or "Save Work". Final grades are not recorded until instructors manually hit the "grade" button.

Computer Projects

A series of computer projects will be assigned, and will constitute 45% of the total course points. The projects will include the design and implementation of solutions using Python. Projects are submitted through Mimir. 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, contact your instructor. If appropriate, an extension will be granted.

Programming projects are to be done individually -- unlike labs and chapter exercises that are done collaboratively. If a 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-testing of projects we use Mimir, a commercial product. There is normally a $25 charge, but don't pay it because the Engineering Dean has agreed to pay it -- details are being worked out at the start of the semester.

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 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. 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. 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. In all cases of penalty grades an Academic Dishonesty report is filed with the University.

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.

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.


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).

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.


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