CSCI 150 Course Schedule and Homework


WEEK 1: 8/23 - 8/27

Content: Introduction to OOP and Python (chapter 1 and 2.1-2.3).
Tuesday lab problems: 2.1, 2.2, 2.5, 2.6, 2.7, 2.8.
Homework: Read pp. 5-57. Programs due Wed 9/1: Exercises 2.35, 2.36, 2.37.

WEEK 2: 8/30 - 9/3

Content: More Python nuts and bolts (2.3 - 2.10).
Tuesday lab problems: 2.22, 2.23, 2.32.
Homework: Read pp. 58-80.

WEEK 3: 9/6 - 9/10

No class Monday, September 6th (Labor Day)

Content: The cs1graphics package (chapter 3).
Tuesday lab problems: 3.1 - 3.6.
Homework: Read pp. 89-120. Exercise 3.19 due Wed 9/15: have fun with it! Prizes for the best projects.

WEEK 4: 9/13 - 9/17

Content: Control structures (chapter 4, section 5.1).
Tuesday lab problems: 4.3, 4.4, 4.6, 4.8.
Homework: Read pp. 125-166. Programs due Wed 9/22: Exercises 4.40 and 4.41.

WEEK 5: 9/20 - 9/24

Content: Functions, exceptions (5.2 - 5.6).
Tuesday lab problems: 5.18, 5.20, 5.21, 5.22, 5.23.
Homework: Read pp. 166-194. Programs due Wed 9/29: (1) Write a program to print the lyrics to a song you like, using functions and loops to simplify the code. (2) Exercise 5.30, and (3) Exercise 5.36. This exercise asks you to write a text-based hangman game. If you can get an animated graphical version working, you'll earn a "free homework" pass that you can use any time later in the semester.

WEEK 6: 9/27 - 10/1

Content: User-defined classes (chapter 6).
Tuesday lab problems: 6.4, 6.5, 6.6, 6.13.
Homework: Read pp. 203-229.

WEEK 7: 10/4 - 10/8

Content: Software Engineering Principles (chapter 7).
Tuesday lab problems: 6.10, 6.11, 6.12.
Homework: Read pp. 237-267. Study for the exam, which will be made up of four or five problems similar in complexity to the problems we do on Tuesday lab days. So the best way to study for the exam is to go back and make sure you can do all of the lab problems above, from previous weeks. Then finish any homework problems you didn't complete. If you're still looking for more, here are other favorite problems to try for practice: 2.3, 2.4, 2.10, 2.11, 2.14, 2.16, 2.17, 2.21, 2.33, 3.7, 3.13, 3.14, 3.16, 4.1, 4.2, 4.5, 4.7, 4.9-4.12, 4.18-4.21, 4.24, 4.31-4.35, 5.1-5.9, 5.11, 5.13, 6.1-6.3, 6.7-6.9.

WEEK 8: 10/11 - 10/15

The midterm exam is Friday, October 15th

Content: I/O and files (chapter 8).
Tuesday lab problem: 7.8.
Homework: Read pp. 271-292.

WEEK 9: 10/18 - 10/22

No class Monday or Tuesday, October 18-19 (Fall Break)

Lab problems Wed/Fri: 8.5, 8.6, 8.11.

WEEK 10: 10/25 - 10/29

Content: Inheritance (chapter 9).
Tuesday lab problems: 9.1-9.5.
Homework: Read pp. 299-326. Exercises 9.7 and 9.8 (due Wed. 11/3). Provide test code in your class definition files.

WEEK 11: 11/1 - 11/5

Content: Objects and References (chapter 10).
Tuesday lab problems: 10.1, 10.2, 10.3, 10.4, 10.5.
Homework: Exercises 8.21 and 8.22 (due Wed. 11/10). Read pp. 333-356.

WEEK 12: 11/8 - 11/12

Content: Recursion (chapter 11).
Tuesday lab problems: 11.19, 11.20, 11.21, 11.22, 11.25.
Homework: Exercises 8.23 and 8.24 (due Wed. 11/17). Read pp. 361-389.

WEEK 13: 11/15 - 11/19

Content: More on Chapter 11.
Tuesday (Wed. actually) lab problems: 11.27, 11.28, 11.31, 11.33, OR, just do 11.37 for a bit more of a challenge.

WEEK 14: 11/22 - 11/26

No class Wednesday November 24th or Friday the 26th (Thanksgiving)

Content: Containers (chapter 12).
Tuesday lab problems: 12.1, 12.3, 12.4, 12.5.
Homework: Read pp. 397-432.

WEEK 15: 11/29 - 12/3

Content: More on containers (Ch. 12), implementation of hashing (chapter 13).
Tuesday lab problems: (1) Write a program that reads a table of numbers from a file into an array, and then prints out the average of each row. (2) Reimplement your spellchecker using "set". (3) Write a program that reads a text file and computes the frequency of each word in the file, storing the results in a "dict".
Homework: Read pp. 435-451.

WEEK 16: 12/6

Monday, December 6th is the last day of class. Party! Featuring the finest hacker delicacies.
The final is Monday, December 13th, 8:00-9:50AM

Practice for final exam. (1) Do any homework problems you didn't finish (2) Do any lab problems you didn't finish (3) Do any practice midterm problems (above) that you didn't finish (4) Do these: 7.6, 7.11, 8.2, 8.3, 8.8, 8.9, 9.8, 9.10-9.12, 10.7, 10.8, 10.9, 10.11-10.12 (discussed in class), 11.2, 11.3 (cool), 11.6 (also cool), 11.8, 11.9, 11.11, 11.17, 11.24, 11.37 (challenge, fun), 12.14, 13.9, 13.10, 13.11.