syllabus

advertisement

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

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

Download