CSE 231

Introduction to Programming I
Spring Semester, 2013

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.

Instructors

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

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.

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

Course Textbook

book cover image The Practice of Computing using Python, 2nd Ed. by Punch and Enbody. ISBN-10: 013280557X (ISBN-13: 978-0132805575)

Lecture Sections

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.

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. Students who are habitually late will not receive credit when they arrive late to lab.

Course Grades

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)


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 2012/13 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 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.

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

Notes

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:

  1. Make-ups for examinations may be arranged, if your absence is caused by a 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 a 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 a 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 extra help, MSU's Learning Resource Center, and Engineering's Residential Experience program coordinate volunteer and paid tutoring assistance available to all students 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/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