To give students the tools to take a computational problem through the process of design, implementation, documentation, and testing.
Objectives:
1. Break a broad problem down into specific sub-problems
2. Write an algorithm to solve a specific problem, and then translate that algorithm into a program in a specific programming language (Python)
3. Write clear, concise documentation
4. Develop test cases that reveal programming bugs
Lectures: Mondays and Wednesdays 10:00-10:50am, Annenberg Hall G15
Labs: Tuesdays 9:00am- 12:00noon, Technological Institute , Room M338
(Wilkinson Lab) and/or TLab .
Recitation: Fridays 10:00-10:50am, Annenberg Hall G15
Aleksandar Kuzmanovic , Assistant Professor
Technological Institute, Room - L457
2145 Sheridan Road
Phone: 847-467-5519
Email: akuzma@northwestern.edu
Office Hours:
Tuesdays, 9 AM- noon, Wilkinson Lab
Fridays, 2-3 PM, Wilkinson Lab.
Lisa Gandy
Ford Engineering Design Center, Room 2-206
2133 Sheridan Road
Phone: 847-467-4971
Email: redlmg98@hotmail.com
Office hours:
Tuesdays, 9 AM- noon, Wilkinson Lab
Fridays, 1- 4 PM, Wilkinson Lab (Weeks 0, 2, 4, etc.)
Sundays, 3- 6 PM, Wilkinson Lab (Weeks 1, 3, 5, etc.)
Ionut Trestian
Ford Engineering Design Center, Room 2-221
2133 Sheridan Road
Phone: 847-467-4708
Email: ionut@northwestern.edu
Office hours:
Tuesdays, 9 AM- noon, Wilkinson Lab
Fridays, 1- 4 PM, Wilkinson Lab (Weeks 1, 3, 5, etc.)
Sundays, 3- 6 PM, Wilkinson Lab (Weeks 0, 2, 4, etc.)
None
Lecture
There are two lectures per week (Monday and Wednesday). Attendance at these lectures is critical, as all new material will be presented in lecture. During lecture, you will sometimes be asked to complete a short worksheet to get some initial practice with the material. Completion of these worksheet is not part of your course grade.
Lab
Each week (Tuesdays) you will attend a two-hour closed lab session. The labs are run by the course faculty and TAs. They provide a great opportunity for you to practice with new material on some fun problems in a supervised setting.
You're encouraged to bring your laptop computer, if you have one, to lab.
Recitations
Each week (Fridays) there will be a recitation class held by a TA. These lectures are not required, but they are highly recommended since they will be helpful in solving the homework problems.
Each week you will be assigned a set of homework problems. These problems will be due on Sunday evening at 11:59pm, unless otherwise indicated.
Pair Programming
Each assignment typically contains one or more "individual" problem that you
must complete on your own. You may complete the rest of the problems alone or with one other student. If you choose to work with a partner, you must work with the same partner for the entire assignment that week. You and your partner will submit only one solution for each problem. You may switch partners between assignments. If you choose to work with a partner, you must work together, at the same computer, for every problem that you do together. While you are working, the computer screen should be visible to both people. One person should type, while the other person observes, critiques and plans what to do next. You should switch roles periodically. You may think about the problems individually and make minor bug fixes, but your solution overall should be a true joint effort.
Splitting up the work is in violation of the Honor Code.
Late Homework Policy
Homework is due on the day indicated at 11:59 PM sharp. You will be able to make three 24-hour extensions on any one homework assignment. Homework that is more than 24 hours late (according to the above extension policy) or submitted after the deadline no extensions are possible, will not be accepted for any reason. In extreme circumstances (such as serious illness), if you require an additional extension or a longer extension, you must go talk to Prof. Kuzmanovic .
There will be a midterm and a final exam. Exams will be in-class, closed-book, and will cover materials from lectures, required readings and projects. The final exam will not be cumulative. Your grade for this class will be a combination of your homework and exam scores. Project grades will be incorporated into your homework score. Each homework assignment is worth 100 points. The project counts as two homework assignments, and is worth 200 points. Based on these point values, the approximate weight of each component is:
Homework+Project: 75%
Exams: Midterm: 10%, Final: 15%
Course web site: http://cs.northwestern.edu/~akuzma/classes/EECS110-s09/ .
Check it out regularly for schedule changes, clarifications and corrections to assignments, and other course-related announcements.
Recitation. TA will lecture on complementary materials of the lectures, address questions for homework and projects, and help to prepare the exams. We hope it can help students more efficiently than the one-on-one Q&A in office hours.
All students, TAs, and faculty will be accessible via the python09@cs.northwestern.edu
group e-mail address. If you have specific questions that you want to ask either the faculty or the TAs, you can do that by
sending an e-mail directly to them (Aleksandar Kuzmanovic: akuzma@northwestern.edu
, Ionut Trestian: ionut@northwestern.edu
, Lisa
Gandy: redlmg98@hotmail.com
)
All solutions and code should be produced by you alone, or by you and a partner, where appropriate. You may discuss algorithms at a high level with any student in the class. You may also help any student find a small bug in their code.
However, you may not copy solutions from anyone, nor should you collaborate beyond high-level discussions with anyone who is not your partner. For pair programming problems, you must follow the guidelines given above. If you have any questions about what behavior is acceptable, it is your responsibility to come see the instructor before you engage in this behavior. I will be more than happy to answer any questions you may have.
Date
Mon 3/30
Tue 3/31
Wed 4/1
Fri 4/3
Mon 4/6
Tue 4/7
Wed 4/8
Fri 4/10
Mon 4/13
Tue 4/14
Wed 4/15
Fri 4/17
Mon 4/20
Tue 4/21
Wed 4/22
Fri 4/24
Mon 4/27
Tue 4/28
Lecture Topics
Introduction
Lab 0
What is programming?
Hw0 recitation
Data and functions
Lab 1
Classroom
Ann. Hall G15
Ann. Hall G15
Ann. Hall G15
Assignment
Homework 0
Wilkinson / T-lab Lab 0
Ann. Hall G15
Homework 1
Recursion
Hw1 recitation
List comprehensions 1
Wilkinson / T-lab Lab 1
Ann. Hall G15
Ann. Hall G15
Ann. Hall G15 Homework 2
Lab 2
List comprehensions 2
Wilkinson / T-lab
Ann. Hall G15
Ann. Hall G15
Ann. Hall G15
Ann. Hall G15
Lab 2
Hw2 recitation Ann. Hall G15
Program planning Ann. Hall G15
Lab 3
Homework 3
Wilkinson / T-lab Lab 3
Lists of lists
Hw3 recitation
Review for midterm
No lab Wilkinson / T-lab
Wed 4/29
Fri 5/1
Mon 5/4
Tue 5/5
Wed 5/6
Fri 5/8
Mon 5/11
Tue 5/12
Wed 5/13
Fri 5/15
Mon 5/18
Tue 5/19
Wed 5/20
Fri 5/22
Mon 5/25
Tue 5/26
Wed 5/27
Fri 5/29
Mon 6/1
Tue 6/2
Wed 6/3
Fri 6/5
March, 2009, Aleksandar Kuzmanovic
Midterm
Midterm recitation Ann. Hall G15
Definite loops and Ann. Hall G15 user input
Lab 4
Indefinite loops and program design
Ann. Hall G15 Midterm exam
Homework 4
Wilkinson / T-lab Lab 4
Ann. Hall G15
Hw4 recitation
Mutable data
Lab 5
Dictionaries
Ann. Hall G15
Ann. Hall G15 Homework 5
Wilkinson / T-lab Lab 5
Ann. Hall G15
Hw5 recitation
Intro to objects
Lab 6
Intro to classes
Hw6 recitation
Ann. Hall G15
Ann. Hall G15 Homework 6
Wilkinson / T-lab Lab 6
Ann. Hall G15
Ann. Hall G15 Projects
No class
Projects recitation Wilkinson / T-lab
Projects Ann. Hall G15
Projects recitation Ann. Hall G15
Review for final Ann. Hall G15
Projects recitation Wilkinson Lab
Final exam Ann. Hall G15
Final recitation Ann. Hall G15
Final exam