This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.
Lectures: Tuesdays and Thursdays at 11am, in room 34-101.
Recitations: Fridays at 11 & 12 in room 32-124, and at 1 & 2, in room 32-044. See the class schedule for additional details.
Units: 3-7-2
Pre-requisites: None.
Goals
- Provide an understanding of the role computation can play in solving problems.
- Help students, including those who do not necessarily plan to major in Course VI, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.
- Position students so that they can compete for UROPs and excel in subjects such as 6.01.
Lecture and Recitation Attendance
A significant portion of the material for this course will presented only in lecture, so students are expected to regularly attend lectures.
Recitations give students a chance to ask questions about the lecture material or the problem set for the given week. Sometimes, new material may be covered in recitation. Recitation attendance is encouraged but not required, though attendance and participation may be taken into account in the case of grades on letter borderlines. Students are strongly encouraged to attend their assigned recitation, if possible.
Problem Sets and Quizzes
Each problem set will involve programming in Python. Students will make extensive use of libraries, so that it will be possible to write programs that solve real problems. There will be three quizzes: two during the semester, administered in evenings, and one during the final exam time-slot.
When submitting problem sets to the online workspace, only the final submission (before the deadline) counts.
Collaboration Policy
Students may collaborate with anybody in any way on the problem sets. Students may look at solutions to other years’ problem sets. Etc. If two or more 6.00 students choose to solve a problem set together, please submit separate solutions and note which other students are submitting an identical solution. If students collaborate in other ways, please include a note describing that as well.
Background on policy:
- Our first concern is what the students in the class learn. We assume that everyone in the class is here because they want to learn, and will behave in a manner consistent with that goal and their personal learning style.
- Much of the learning in 6.00 takes place while working on the problem sets. Working with other students on problem sets often enhances the learning process. Keep in mind that collaborative learning works best when the students working together have roughly the same level of knowledge and skill so that each participant in the collaboration can contribute more or less equally to solving the problem. When one student is consistently showing another how to do things, it is not a true collaboration. When one student bases their solution on the completed work of another or on a solution from a previous year, little or no learning takes place.
- If students choose to lean heavily on the work of others, such students will be cheating themselves. These students will learn less. Moreover, while these students may end up with excellent grades on the problem sets, they will almost surely struggle with the three exams, which account for roughly 70% of the final grade.
Grading Policy
Grades will be roughly computed as follows:
Problem sets: 30%
Quiz I: 15%
Quiz II: 20%
Final: 35%
Problem sets will be graded out of 10 points:
- Excellent (10/10) — Program solves problem for all cases. 9/10 may indicate efficiency problems, awkward code, etc.
- Good (8/10) — Program solves problem for most cases, but has flaws. 6, 7, 8 can be used to indicate severity of flaws.
- Marginal (5/10) — Student made attempt to solve most problems, but missed some key conceptual ideas that make their program incorrect. Major portions of problem are unsolved or not attempted. Significant debugging would be required to make program work.
- Unacceptable (2/10) — Program does not even run without significant editing. Problem completely misunderstood. Solution completely incorrect.
- Not Submitted (0/10) — Self-explanatory.
At the beginning of the term, students are given two late days that they can use on problem sets. Each students must note on his/her Problem Set the number of late days s/he are using at the time of submission. Starting with Problem Set 1, additional late days can be accumulated for each assignment, one late day for each day the assignment is turned in ahead of the deadline. Up to five late days may be accumulated in this fashion at any particular point during the semester. For example, turning in Problem Set 2 on Sunday when it was due on Tuesday will earn two late days, but if the student already had four late days stored, s/he would only have five late days accumulated. If a student uses one of these late days on Problem Set 3, s/he are down to four late days, but s/he can get back up to five late days by turning in Problem Set 4 early. No more than three late days can be used on a single problem set.
Any additional late work beyond these late days will not be accepted, unless an extension has been approved by Prof. Guttag.
Textbook
There is no course textbook; much of the reading will come from online sources. However, if one is seeking an additional optional reference, s/he may find one of the following texts useful:
Python Programming: An Introduction to Computer Science by John M. Zelle
This book is available online at Amazon.com. Be sure to get the 1st edition, not the 2nd.
Staff
Contact us at 6.00-staff at mit.edu.
