CSE 231

Introduction to Programming I
Spring Semester, 2012

Dr. William Punch
Sections 1 - 4, 11: Tue, Thur: 8:30-9:50 AM, 1345 Engineering Bldg.

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 to solve problems primarily in engineering, mathematics and science.

Instructor

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

Course Web Site

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

Course Textbook

book cover image The Practice of Computing using Python by Punch and Enbody. ISBN 9780136110675

Lecture Sections

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.

Laboratory Sessions

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.

Course Grades

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)


To be eligible to earn a non-zero grade in the course, a student normally must do ALL the following:

  1. miss no more than two (2) labs,
  2. earn at least 50% of the total points for the computer projects, and
  3. earn at least 50% of the total points for the examinations.

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.

Students who miss more than two (2) laboratory assignments will have their final grade reduced by 0.5 for each laboratory assignment missed: if a student had sufficient points to normally earn a 3.0, but misses four (4) laboratory assignments, that student's grade will be reduced by 2*0.5 to a 2.0 final grade. Contact your instructor, if you have any concerns about your performance in the class.

Important Dates

See: Academic Calendar 2011/12 for complete dates, but note that:

Exams

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.

Exercises (in-class)

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

Computer Projects

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.

Notes

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:

  1. Make-ups for examinations may be arranged, if your absence is caused by documented illness or personal emergency. A written explanation (including supporting documentation) must be submitted to your lecture instructor; if the explanation is acceptable, an alternative to the examination will be arranged. When possible, make-up arrangements should be completed in advance.
  2. A student who is unable to complete a computer project by the specified due date because of illness or personal emergency should contact his or her lecture instructor. If the student's explanation is acceptable, the assignment due date will be extended (or his or her lecture instructor will make other appropriate arrangements).
  3. A student is allowed to miss up to two scheduled laboratory sessions without penalty so illness or personal emergency can be accommodated without needing to notify us. If long-term illness or personal emergency consumes more than two, the student needs to contact his or her lecture instructor.
  4. To be eligible for credit, each solution to a computer project must fulfill the published requirements, must be submitted by the published due date, and must be your own work.
  5. The Department of Computer Science and Engineering expects all students to adhere to MSU's policy on Integrity of Scholarship and Grades, which includes the statement, ".... all academic work will be done by the student to whom it is assigned, without unauthorized aid of any kind". The complete text of the University policy is posted under: University Policy on Scholarship and Grades . Students who violate this policy may receive a failing grade in the course.
  6. Students requiring accommodation under the Americans with Disabilities Act (ADA) with MSU's Resource Centers for Disabilities (RCPD) should bring their Verified Individualized Services and Accommodations (VISA) form to the instructor as near the beginning of the term as possible.
  7. Extensive Teaching Assistant help is provided for this course, but if you should desire tutoring, MSU's Learning Resource Center and Engineering's Diversity Programs Office offer tutoring for many common classes including CSE 231.
  8. Accommodations will be made for religious observances, if requests are made well in advance. Since religious observances are usually known at the beginning of class and assignment due dates are in this syllabus we expect students to request accommodation at the beginning of the semester. See MSU's policy on Religious Observance for more details.

Lecture Calendar

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