EECS
110 (Python): Syllabus
Course Aims and Objectives
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
Time/Place
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
Instructor
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.
Teaching Assistants
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.)
Prerequisites
None
Course Content
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.
Homework
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.
Grading
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%
Communication
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)
Honor Code
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.
Tentative Schedules
|
Date |
Lecture
Topics |
Classroom |
Assignment |
|
Mon 3/30 |
Introduction |
Ann. Hall
G15 |
Homework 0 |
|
Tue 3/31 |
Lab 0 |
Wilkinson /
T-lab |
Lab 0 |
|
Wed 4/1 |
What is
programming? |
Ann. Hall
G15 |
|
|
Fri 4/3 |
Hw0
recitation |
Ann. Hall
G15 |
|
|
Mon 4/6 |
Data and
functions |
Ann. Hall
G15 |
Homework 1 |
|
Tue 4/7 |
Lab 1 |
Wilkinson /
T-lab |
Lab 1 |
|
Wed 4/8 |
Recursion |
Ann. Hall
G15 |
|
|
Fri 4/10 |
Hw1
recitation |
Ann. Hall
G15 |
|
|
Mon 4/13 |
List
comprehensions 1 |
Ann. Hall
G15 |
Homework 2 |
|
Tue 4/14 |
Lab 2 |
Wilkinson /
T-lab |
Lab 2 |
|
Wed 4/15 |
List
comprehensions 2 |
Ann. Hall
G15 |
|
|
Fri 4/17 |
Hw2
recitation |
Ann. Hall
G15 |
|
|
Mon 4/20 |
Program
planning |
Ann. Hall
G15 |
Homework 3 |
|
Tue 4/21 |
Lab 3 |
Wilkinson /
T-lab |
Lab 3 |
|
Wed 4/22 |
Lists of
lists |
Ann. Hall
G15 |
|
|
Fri 4/24 |
Hw3
recitation |
Ann. Hall
G15 |
|
|
Mon 4/27 |
Review for
midterm |
Ann. Hall
G15 |
|
|
Tue 4/28 |
No lab |
Wilkinson /
T-lab |
|
|
Wed 4/29 |
Midterm |
Ann. Hall
G15 |
Midterm
exam |
|
Fri 5/1 |
Midterm
recitation |
Ann. Hall
G15 |
|
|
Mon 5/4 |
Definite loops
and user input |
Ann. Hall
G15 |
Homework 4 |
|
Tue 5/5 |
Lab 4 |
Wilkinson /
T-lab |
Lab 4 |
|
Wed 5/6 |
Indefinite
loops and program design |
Ann. Hall
G15 |
|
|
Fri 5/8 |
Hw4
recitation |
Ann. Hall
G15 |
|
|
Mon 5/11 |
Mutable
data |
Ann. Hall
G15 |
Homework 5 |
|
Tue 5/12 |
Lab 5 |
Wilkinson /
T-lab |
Lab 5 |
|
Wed 5/13 |
Dictionaries |
Ann. Hall
G15 |
|
|
Fri 5/15 |
Hw5
recitation |
Ann. Hall
G15 |
|
|
Mon 5/18 |
Intro to
objects |
Ann. Hall
G15 |
Homework 6 |
|
Tue 5/19 |
Lab 6 |
Wilkinson /
T-lab |
Lab 6 |
|
Wed 5/20 |
Intro to
classes |
Ann. Hall
G15 |
|
|
Fri 5/22 |
Hw6
recitation |
Ann. Hall
G15 |
Projects |
|
Mon 5/25 |
No class |
|
|
|
Tue 5/26 |
Projects
recitation |
Wilkinson /
T-lab |
|
|
Wed 5/27 |
Projects |
Ann. Hall
G15 |
|
|
Fri 5/29 |
Projects
recitation |
Ann. Hall
G15 |
|
|
Mon 6/1 |
Review for
final |
Ann. Hall
G15 |
|
|
Tue 6/2 |
Projects
recitation |
Wilkinson
Lab |
|
|
Wed 6/3 |
Final exam |
Ann. Hall
G15 |
Final exam |
|
Fri 6/5 |
Final
recitation |
Ann. Hall
G15 |
|
March, 2009, Aleksandar Kuzmanovic