Basic Course Information and Schedule
Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.
Table of Contents
- 1) Description, Prerequisites, and Major Requirements
- 2) Required Materials
- 3) Weekly Schedule
- 4) Midterm and Final Exams
1) Description, Prerequisites, and Major Requirements§
-
Description
From the subject listing and schedule:
Introduces fundamental concepts of programming. Designed to develop skills in applying basic methods from programming languages to abstract problems. Topics include programming and Python basics, computational concepts, software engineering, algorithmic techniques, data types, and recursion. Lab component consists of software design and implementation.
-
Prerequisites
An understanding of the basics of programming and the basics of the Python language are necessary prerequisites to this course. 6.100A (or 6.100A Advanced Standing Exam), 6.100B, or 6.100L can serve as the prerequisite.
This prerequisite is strictly enforced. If you have not met the prerequisite for this course, you will not be able to submit assignments in 6.101.
-
Course 6 and Institute Requirements
6.101 is a prerequisite for 6.102 and a co-requisite for 6.121.
6.101 is required for 6-3, 6-4, 6-7, and 11-6 majors. It can be used as an option to satisfy one of the degree requirements for 6-2, 6-9, or 6-14; and it can also fill one of the requirements of the Minor in Computer Science.
6.101 satisfies the Institute Laboratory requirement.
2) Required Materials§
There is no required textbook for this class. Everything you need will be made available through this web site throughout the semester, through the course readings, recitation materials, and assignment writeups.
If you are looking for additional materials, the following are books/resources that others have found useful in the past:
-
Python:
- The Python Tutorial
- 6.145 (notes and exercises)
- Think Python by Alan Downey
-
Debugging:
- Debug It!: Find, Repair, & Prevent Bugs in Your Code, Paul Butcher, The Pragmatic Bookshelf, 2009
- Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems, David J. Agans, AMACOM, 2002
- Why Programs Fail (2nd edition), Andreas Zeller, Morgan Kaufmann, 2009
3) Weekly Schedule§
3.1) Weekly Components§
Each week in 6.101 consists of several components, described below:
-
Programming Assignments ("Labs")
A new lab will release each Friday afternoon and come due the following Friday afternoon (with late submissions accepted until Sunday night for partial credit). Note that the labs are substantial programming assignments, and we expect that in the average week, the average student will spend around 10 hours working on the lab. As such, we strongly encourage you to start early!
-
Readings
Each lab will have an associated set of readings designed to introduce concepts relevant for that lab. These readings will release on the Wednesday before each lab, and they will contain exercises that will be due on the Monday before the associated lab is due.
-
Recitations
Each lab will also have two associated recitations:
-
A "midpoint" recitation on Wednesday, designed to reinforce relevant ideas from the readings and provide additional examples related to the lab.
-
A "wrap-up" recitation on the Monday after the lab has come due, to recap the lab with a focus on the "big ideas" we hope you take away from the lab, including an opportunity for feedback and discussion about code style and organization.
This semester, we offer the following recitation sections:
- Section 0: 9am-10am in 34-101 with Saman
- Section 1a: 10am-11am in 32-124 with Saman
- Section 1b: 10am-11am in 32-144 with Jacob
- Section 2a: 11am-12pm in 4-237 with Jonathan
- Section 2b: 11am-12pm in 56-154 with Jacob
- Section 3a: 12pm-1pm in 26-100 with Hope
- Section 3b: 12pm-1pm in 32-141 with Duane
- Section 4a: 1pm-2pm in 1-190 with Duane
- Section 4b: 1pm-2pm in 4-270 with Jonathan
- Section 5a: 2pm-3pm in 4-237 with John
- Section 5b: 2pm-3pm in 1-190 with Hope
- Section 6: 3pm-4pm in E25-111 with John
-
-
Open Lab Hours
At multiple times during the week, we will have open lab hours, which are a time to come and get help from course staff as you are working through the lab. These are intended to be a time to get conceptual questions answered, get help with making a strategy for tackling a lab, get help with debugging your code for a lab, or get specific feedback about your code after a lab is done, among other things.
This semester, we are offering open lab hours at the following times and locations:
- Tuesday 7-10pm in 34-501
- Wednesday 7-10pm in 34-501
- Thursday 7-10pm in 34-501
- Friday 10am-1pm in 34-101
- Friday 2pm-5pm in 34-501
- Sunday 1pm-4pm in 34-501
Please also note that when lab hours are busy and a lot of people are asking for help, we may prioritize helping students who have completed the relevant readings and participated in the relevant recitations.
3.2) Overview§
The following diagram shows a typical week (with surrounding weeks greyed-out around it) to illustrate the flow of the course:
4) Midterm and Final Exams§
The 6.101 midterm will be held on Wednesday evening, March 22, 2023. The weekly schedule discussed above will hold for a typical week during the semester, but the week with our midterm will not have a lab.
We will have a final exam during the final exam period. The Registrar will schedule the final, usually by the third week in the term. It is important that you plan to be available for all of the week days from Friday, May 19 through Wednesday, May 24, as our final exam or conflict final exams may be scheduled on any of those days.