Course Home | Assignments | Computing Resources | Lab Hours/Tutoring | Python | Schedule | Submit

Saint Louis University

Computer Science 1300
Introduction to Object-Oriented Programming

Michael Goldwasser

Spring 2017

Dept. of Math & Computer Science


Please note that the schedule for future classes is tentative.

Also note: For each lecture, we denote both a topic as well as the associated reading in the textbook. The live link on the 'topic' leads to a page of my personal notes for that lecture. Those personal notes are not nearly as complete or polished as the associated readings from the text. In truth, they exist mostly to provide a brief outline of the day's lecture. Students are expected to read the associated sections of the text. In cases where my notes include material which is not explicitly in the text, I will add the word "notes" to the explicit reading list.

Week Day Topic Reading Due
Jan 17-Jan 20 Wed Introduction, Course Administration
Introduction to Python
Thu Introduction to cs1graphics Ch. 3.1, 3.2
Fri Hands-on day: accounts, cs1graphics, saving .py scripts in-class activities
Jan 23-Jan 27 Mon cs1graphics: depths, transformations, layers Ch. 3.3-3.6
Wed Python basics: data types/classes, assignment semantics and identifiers, expressions and operator precedence Ch.  2.4, 2.5, 2.8
Thu Python's sequence types: list, tuple, str Ch. 2.2, 2.3 hw01
Fri User input/output.
String split/join
Case study (from next Monday's hands-on day)
Ch. 2.9 quiz01
Jan 30-Feb 3 Mon Hands-on Day: Small Python programs prog01
Wed Introduction to loops
for loops, index-based loops
Ch. 4.1
Thu Nested loops
Case study: Drawing a Pyramid
Ch. 4.3 hw02
Fri Hands-on Day: Loops and Graphics quiz02
Feb 6-Feb 10 Mon Introduction to conditional statements (e.g., if, else, elif)
Boolean Expressions
Ch. 4.4
Ch. 2.8
Wed Hands-on Day: Word Scavenger Hunt
Thu List Comprehension Syntax
solutions to previous hands-on day
Ch. 4.5 hw03
Fri Introduction to While Loops Ch. 5.1 quiz03
Feb 13-Feb 17 Mon While Loops
Case-study: Guess a number from 1 to 100
Wed Hands-on Day: prog04 practice problem prog03
Thu User-defined Functions
Avoiding Duplicate Code
Revisiting Case-study: Guess a number from 1 to 100
Ch. 5.2, 5.3
Fri Case Study: Computing square roots Ch. 5.4 hw04
Feb 20-Feb 24 Mon Case Study: Chain under gravity (code: py, pdf) Ch. 5.6
Wed Error Checking and Exceptions Ch. 5.5 prog04
Thu Error Checking and Exceptions
Case study: getInt(low,high) function
scaleData example from book
Ch. 5.5
Fri Standard Input and Output
Formatted Strings
Ch. 8.1, 8.2
str.format method
Feb 27-Mar 3 Mon Working with Files Ch. 8.3, 8.4
Wed Homemade Unix tools (wc, grep, head, more) Ch. 8.3.1, Exercise 8.11
Thu Working with Files (case studies) Ch. 8.5.1, 8.5.2
Fri Hands-on Day: prog05 hw06
Mar 6-Mar 10 Mon Introduction to object-oriented programming Ch. 1.1-1.4.1
(brief summary)
Wed Object-oriented design
Class diagrams
Television case study
Ch. 1.4.2
Thu Object-oriented design
Sequence diagrams
Ch. 1.4.1, 1.4.3
Fri First Exam (includes material through Mar 3 - info )
Mar 13-Mar 17 Mon No Class: Spring Break
Mar 20-Mar 24 Mon Introduction to user-defined classes
Point class (simple and robust versions)
Ch. 6.1, 6.2
source code
Wed Design of a Television class Ch. 6.3
Thu Fraction class Ch. 6.4
Fri Good Software Practices, Mastermind Ch. 7.1, 7.2, 7.3 hw07
Mar 27-Mar 31 Mon Naming Conventions, Documentation, Encapsulation Ch. 7.4, 7.5, 7.6
Wed Test-Driven Development and Python's unittest module
Television Example (,
Ch. 7.7, 7.8, 7.9
Thu Preview of LanguageHelper (prog07)
Fri Introduction to Inheritance
Implentation of DeluxeTV
Ch. 9.1
Apr 3-Apr 7 Mon SortedSet model and implementations
When not to use inheritance
Ch. 9.2, 9.3 hw08
Wed Inheritance and cs1graphics Ch. 9.4 prog07
Thu Case Study: Mailbox class Ch. 9.6
Fri Understanding Objects and References Ch. 10.1 hw09
Apr 10-Apr 14 Mon Objects that Reference Other Objects; Information Passing Ch. 10.2, 10.3
Wed Copying objects
Example: list of points
Example: list of lists
Ch. 10.2.2
source code
Thu No Class: Easter Break
Apr 17-Apr 21 Mon
Wed More Python Containers Ch. 12.1 prog08
Thu A tour of Python's dict class.
Case Study: IMDB
(see /public/goldwasser/1300/movies)
Ch. 12.2, 12.3, documentation
Fri Case Study: a Simple Search Engine
(see /public/goldwasser/1300/engine)
Ch. 12.7 hw10
Apr 24-Apr 28 Mon Python's internal use of dictionaries Ch. 12.6
Wed Introduction to Recursion: Bullseye Ch. 11.1
Thu Activity: simulating a recursive list Ch. 11.2
Fri OurList class implementation Ch. 11.2 hw11
May 1-May 5 Mon Functional Recursion, Factorials
Binary Search
Ch. 11.3
Ch. 11.4
Wed Case Study: Anagrams Ch. 11.5
Thu Case Study: Anagrams
Prefix Search
In-class challenge: binary search variant (source code)
Ch. 11.5
Ch. 11.4.4
Fri Course evaluations
Discussion: Python2 vs Python3
May 8 Mon Review for exam prog10

May 15 Mon Final Exam (8:00-9:50) - info

Michael Goldwasser
CSCI 1300, Spring 2017
Last modified: Monday, 03 April 2017
Course Home | Assignments | Computing Resources | Lab Hours/Tutoring | Python | Schedule | Submit