Discovering
Computer Science

Logo

Interdisciplinary Problems, Principles, and Python Programming

Second Edition

by Jessen Havill

Publisher website

Sample CS 1 Schedule

This is a sample schedule for an introductory CS course based on the textbook. This particular outline is oriented toward scientific applications. When I teach a section oriented more toward applications in the social sciences, I usually omit Sections 4.4, 6.8, and 9.6, and add Chapter 11 (Networks).

Weeks 1-2: Introduction to problem solving and programming

problem solving, pseudocode, functional decomposition, introduction to Python

Chapter 1: How to Solve It

Section Title Exercises
1.1 Understand the problem 1-3
1.2 Design an algorithm 1(b)-(c), 2(b)-(c), 4-9, 11, 13
1.3 Write a program 1, 3-6, 8-11, 13, 15, 18, 20, 22
1.4 Look back 1, 3(c), 3(f)

Weeks 2-3: Beauty and power of abstraction

turtle graphics, functions, program structure

Chapter 2: Visualizing Abstraction

Section Title Exercises
2.1 Data abstraction 1, 3, 5, 7, 8, 10
2.2 Drawing flowers and plotting earthquakes 1, 3, 4, 7, 10, 11
2.3 Functional abstraction 1, 3, 4, 11, 13, 14, 23, 26
2.4 Programming in style 3, 4, 8
2.5 A return to functions 4-9, 11-14, 17, 18, 20, 22
2.6 Score and namespaces (briefly) 2, 3, 4, 6, 9

Weeks 4-5: Population models

loops, accumulators, lists, plotting

Chapter 4: Growth and Decay

Section Title Exercises
4.1 Accumulators 1-3, 6-8, 12, 14, 17-19, 20, 23, 28, 32(a-b)
4.2 Data Visualization 1, 2, 7-9
4.3 Conditional iteration 2, 3, 5, 6, 8-10
4.4 Continuous models 1-8
4.6 Summing up  

Project: Lotka-Volterra model

Week 6: How computers work

fetch and execute cycle, memory, binary, computer arithmetic

Chapter 3: Inside a Computer

Section Title Exercises
3.1 Computers are dumb  
3.2 Everything is bits 1-13
3.3 Computer arithmetic 3, 5, 6-8, 11, 12, 15, 16

Weeks 7-8: Monte Carlo simulation and conditional execution

if statements, random numbers, Booleans, while loops, testing

Chapter 5: Forks in the Road

Section Title Exercises
5.1 Random walks 3-5, 8, 9, 15, 16, 18, 19
5.4 Back to Booleans 2, 3, 6, 8, 10, 11, 16, 19, 23, 24, 26
5.5 Defensive programming 2, 6, 10, 11
5.6 Guess my number 2-4, 6

Project: Escape!

Weeks 8-9: Text processing

strings, string accumulators, files, searching

Chapter 6: Text, Documents, and DNA

Section Title Exercises
6.1 First steps 2, 4, 5, 8, 11, 14, 19-26
6.2 Text documents 1, 2
6.3 Encoding strings 1-4, 7, 10, 12-14, 18, 19
6.4 A concordance 1, 3-5, 13
6.5 Word frequency trends 5, 7
6.8 Computational genomics 2, 4-7, 11, 13, 19

Project: Finding genes

Week 10: Working with data

lists, dictionaries, CSV files

Chapter 7: Data Analysis

Section Title Exercises
7.1 Summary statistics 2, 3, 5, 8-11, 14, 17
7.2 Wrangling data 1, 3-6, 12, 13, 18
7.3 Tallying frequencies 2, 3, 6, 12, 17, 22
7.4 Reading tabular data 2, 4, 5, 7

Project: Climate change

Week 11: 2-D Data

lists of lists, nested loops

Chapter 8: Flatland

Section Title Exercises
8.1 Tabular data 1-3, 7-10
8.2 The Game of Life 4, 5, 10
8.3 Digital images 1, 4, 7, 9

Project: Simulating an epidemic

Weeks 12-13: Recursion

Chapter 9: Self-similarity and recursion

Section Title Exercises
9.1 Fractals 1-5
9.2 Recursion and iteration 1-6, 9, 10, 13-15
9.3 The mythical Tower of Hanoi 1, 2
9.4 Recursive linear search 3, 5
9.6 Lindenmayer systems  

Project: Percolation

Week 14: Sorting and searching

Chapter 10: Organizing Data

Section Title Exercises
10.1 Binary search 2, 4-6
10.2 Selection sort 1, 2, 5, 6, 8
10.4 Efficient sorting 1, 4, 6, 7

Final project (group-designed)