Introduction to Programming I
Spring Semester, 2012
| Sections 1 - 4, 11: | Tue, Thur: 8:30-9:50 AM, 1345 Engineering Bldg. |
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 to solve problems primarily in engineering, mathematics and science.
| William Punch | |
| 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 |
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.
Information is also distributed to the class through the angel web site, see
http://www.angel.msu.edu
The Practice of Computing using Python
by Punch and Enbody. ISBN 9780136110675
The lectures for Sections 1 - 4 and 11 will be conducted in 1345 Engineering Bldg. on Tuesdays and Thursdays from 8:30 to 9:40 AM. 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.
Each student's course grade will be based on the sum of the points earned in
the following two categories:
| Examinations | (50% of total course points) |
| Computer Projects | (45% of total course points) |
| Exercises (in-class and on-line) | ( 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 2011/12 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 midterm exams will be in-class exams held during the regular class times in 1345 Engineering Bldg.. You will be allowed one sheet of notes 8.5x11, 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. These 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) 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 which 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/10 | Course Overview | Th 01/12 | Computer Organization | Chapter 0, Appendix A |
| 2 | Tu 01/17 | Problem Solving and Data | Th 01/19 | More Data and Assignments | Chapters 1 & 2 |
| 3 | Tu 01/24 | Decisions (Selection) | Th 01/26 | Repetition | Chapter 3 |
| 4 | Tu 01/31 | Introduction to Data Structures | Th 02/02 | Working with Lists | Chapters 4 & 6 |
| 5 | Tu 02/07 | More Lists | Th 02/09 | Files and List Comprehensions | Chapter 9 |
| 6 | Tu 02/14 | Exam 1 | Th 02/16 | Functions: finding and using them | Chapter 5 |
| 7 | Tu 02/21 | Functions: writing your own | Th 02/23 | Sets and Dictionaries | Chapters 7 & 8 |
| 8 | Tu 02/28 | More Sets and Dictionaries | Th 03/01 | Data Structures continued | Chapter 10 |
| 9 | Spring Break | ||||
| 10 | Tu 03/13 | Introduction to Classes | Th 03/15 | Classes II | Chapter 11 & 12 |
| 11 | Tu 03/20 | Scope | Th 03/22 | Overloaded Operators | Chapter 13 |
| 12 | Tu 03/27 | Exam 2 | Th 03/29 | Inheritance and Classes | |
| 13 | Tu 04/03 | 2 dimensional lists and arrays | Th 04/05 | Exceptions | Chapter 14 |
| 14 | Tu 04/10 | More Exceptions | Th 04/12 | Testing in Python | Chapter 15 |
| 15 | Tu 04/17 | Algorithms and Big Oh notation | Th 04/19 | Sorting and Searching | |
| 16 | Tu 04/24 | Extra | Th 04/26 | Course summary |