Introduction to Programming I
Spring Semester, 2013
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.
| Dr. Bill Punch | ||
| Sections 1 - 4, 11 & 12: | Tue, Thur: 8:30 - 9:50 AM, 1345 Engineering | |
| 3147 Engineering | Office Hours: after class or by appointment | |
| Phone: 517-353-3541 | email: punch@cse.msu.edu | |
| email is by far the best way to contact me | ||
| Dr. Laura Dillon | ||
| Sections 5 - 10: | Tue, Thur: 12:40 - 2:00 PM, 1345 Engineering | |
| 3132 Engineering | Office Hours: after class or by appointment | |
| Phone: 517-353-4387 | email: ldillon@cse.msu.edu | |
| email is by far the best way to contact me |
Information related to the course is available on the Internet at:
http://www.cse.msu.edu/~cse231
Those files are also accessible from the CSE Instructional System under the
/user/cse231
directory.
Discussion boards will be on https://piazza.com
The Practice of Computing using Python, 2nd Ed.
by Punch and Enbody. ISBN-10: 013280557X (ISBN-13: 978-0132805575)
The lectures for Sections 1 - 4 and 11 and 12 will be conducted in 1345 Engineering on Tuesdays and Thursdays from 8:30 - 9:50 AM. The lectures for Sections 5 - 10 will be conducted in 1345 Engineering on Tuesdays and Thursdays from 12:40 - 2:00 PM. Regular attendance at lecture is critical to success in this course.
The computing laboratory for CSE 231 is located in 3320 Engineering;
attendance at scheduled laboratory sessions is mandatory. Missing
laboratory sessions will reduce your final grade (see below).
The two-hour scheduled laboratory sessions are coordinated by Teaching
Assistants, and are used to complete laboratory exercises and to consult
with Teaching Assistants about other aspects of the course, e.g. projects.
The laboratory exercises 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.
Students who are habitually late will not receive credit when they arrive
late to lab.
Each student's course grade will be based on the sum of the points earned in
the following categories:
| Examinations | (50% of total course points) |
| Computer Projects | (45% of total course points) |
| Exercises (in-class ) | ( 5% of total course points) |
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 |
See: Academic Calendar 2012/13 for complete dates, but note that:
Two midterm examinations and a final examination will be conducted during the semester, and will constitute 50% of the total course points. These exams will be in-class exams held during the regular class times in 1345 Engineering. 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.
All issues related to the final examination will follow the policies and schedule of the University: MSU Final Exam Schedule.
Periodically there will be unannounced in-class exercises. No make ups are available for these exercises. They constitute 5% of the course points. They will not be graded, only marked on your reports as
Eleven 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.
Project solutions are submitted electronically. A copy must be saved on
CSE disks (the H drive from the lab computers) before the handin deadline, where they are archived in
case of problems with electronic submission -- that is the only acceptable
evidence of completion.
Each project solution is electronically compared to all other solutions to
identify similar solutions. Individuals that submit solutions
that are essentially identical will receive a score of zero for that
assignment, and will be reported to their Dean.
A student who is involved in a second such incident of
academic dishonesty will receive a grade of zero in the course.
Since the comparison is done off campus, to protect your privacy do NOT include
your name or PID in your project solution.
> > Under no circumstances should you share a project solution with another
team or individual. Simply showing your solution to another student almost
guarantees a zero score: past experience shows that a student who asks to
"look at" your solution will copy parts of it or pass it along to someone
else who copies it.
The instructor reserves the right to modify course policies, the course
calendar, and assignment specifications.
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
You are responsible for familiarity with the course policies printed in the
course pack and posted under: Course Policies
Here are some brief comments about several of those policies:
| Week | Date | Topic | Date | Topic | Text Readings | |
| 1 | Tu 01/08 | Overview | Th 01/10 | Beginnings | Chapters 0 & 1, & Appendix A | |
| 2 | Tu 01/15 | Control: Selection | Th 01/17 | Control: Repetition | Chapter 2 | |
| 3 | Tu 01/22 | More on Control | Th 01/24 | Intro to Data Structures: Strings | Chapters 2 & 3 | |
| 4 | Tu 01/29 | More Strings | Th 01/30 | Intro to Functions | Chapters 4 & 6 | |
| 5 | Tu 02/05 | More on Functions | Th 02/07 | Files & Exceptions | Chapters 6 & 5 | |
| 6 | Tu 02/12 | Intro to Lists | Th 02/14 | Exam 1 | Chapter 7 | |
| 7 | Tu 02/19 | Lists, tuples & mutability | Th 02/21 | More on Functions | Chapter 8 | |
| 8 | Tu 02/26 | Intro to Dictionaries | Th 02/28 | Dictionaries & Sets | Chapters 9 & 10 | |
| S P R I N G     B R E A K | >||||||
| 9 | Tu 03/12 | Intro to Classes | Th 03/14 | More Classes | Chapters 11 | |
| 10 | Tu 03/19 | More Classes | Th 03/21 | More Classes & Scope II | Chapter 12 | |
| 11 | Tu 03/26 | Intro to Inheritance | Th 03/28 | Exam 2 | Chapter 12 | |
| 12 | Tu 04/02 | More on Inheritance | Th 04/04 | Overloading | Chapters 12 & 13 | |
| 13 | Tu 04/09 | More on Overloading | Th 04/11 | Files & Exceptions II | Chapter 14 | |
| 14 | Tu 04/16 | More on Exceptions | Th 04/18 | Computer Organization | Chapters 14 & 0 | >>>>>> |
| 15 | Tu 04/23 | Recursion | Th 04/25 | Course Summary | Chapter 16 | |