CSCI 150 Course Schedule and Homework


WEEK 1: 8/25 - 8/29

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 #1: Read pp. 5-57. Programs due Wed 9/3: Exercises 2.35, 2.36, 2.37.

WEEK 2: 9/1 - 9/5

No class Monday, September 1st (Labor Day)

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

WEEK 3: 9/8 - 9/12

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

WEEK 4: 9/15 - 9/19

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

WEEK 5: 9/22 - 9/26

Content: Functions, exceptions (5.2 - 5.6).
Tuesday lab problems: 5.18, 5.20, 5.21, 5.22, 5.23.
Homework #4: Read pp. 166-194. Programs due Wed 10/1: (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/29 - 10/3

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

WEEK 7: 10/6 - 10/10

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/13 - 10/17

The midterm exam is Wednesday, October 15th

Content: I/O and files (chapter 8).
Tuesday/Wednesday lab problem: 7.11 (suggestions: __init__, __str__, __sub__, dayOfWeek, today, isHoliday, computeNext.
Read pp. 271-292.

WEEK 9: 10/20 - 10/24

No class Monday or Tuesday, October 20-21 (Fall Break)

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

WEEK 10: 10/27 - 10/31

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

WEEK 11: 11/3 - 11/7

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

WEEK 12: 11/10 - 11/14

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

WEEK 13: 11/17 - 11/21

Content: More on Chapter 11.
Tuesday 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/24 - 11/28

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

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

WEEK 15: 12/1 - 12/5

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/8

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

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.