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