CPSC120A
Fundamentals of Computer Science I

Daily Schedule

Topics and materials for each day of class.

Date Topic At-home In-class
Wed Aug 28 Introduction to Computer Science
Light Bot

TP 1.2 What is a Program?

Lab 0

Fri Aug 30

Introduction to Linux
Introduction to Python
Introduction to CodeLab

TP 1.5 The First Program

Lab 1

Mon Sep 2

Values and Expressions

TP 2.1 Values and Types (text)
TP 2.2 Operators and Operands (text)
TP 2.3 Expressions
TP 2.4 Order of Operations
TP 2.6 Statements
TP 2.9 Comments

Lab 2

Wed Sep 4

Naming

TP 2.7 Variables (text, video)
TP 2.8 Variable Names and Keywords (text, video)
CL 51001, 51013, 51043, 51030, 51031, 51037, 00003, 00004

Lab 3

Fri Sep 6

Drawing

TP 3.1 Function Calls (text)
TP 3.2 Type Conversion Functions (text)
TP 3.3 Math Functions (text)
TP 5.11 Keyboard Input

draw.py
Lab 4

Mon Sep 9

Creating Functions

TP 3.5 Adding New Functions & 3.7 Flow of Execution (text, video)
CL 00009, 00010, 00011

Lab 5

Wed Sep 11

Parameters and Arguments

TP 3.8 Parameters and Arguments(text, video)
CL 00008, 00005, 51155, 51156, 00013, 00014

Lab 6

Fri Sep 13

Fruitful Functions

TP 3.11 Fruitful Functions and Void Functions (text)
TP 3.12 Return Values (text, video)
TP 3.10 Stack Diagrams

Assignment 1 Due
Lab 7

Mon Sep 16

Conditionals

TP 5.2 Boolean Expressions(text, video)
TP 5.3 Conditional Execution(text, video)
CL 51052, 51055, 51058, 51054, 51115, 00015, 00016
TP 5.4 Nested Conditionals
TP 13.2 Random Numbers

Lab 8

Wed Sep 21

Compound Conditionals

TP 5.5 Alternative Execution & 5.6 Chained Conditionals(text, video)
TP 5.7 Logical Operators(text, video)
CL 51110, 51111, 51217, 51160, 00017, 00018

Lab 9

Fri Sep 20

Review

Test 1 Review
Assignment 2 Due

Mon Sep 23

Test 1

Wed Sep 25

Recursion

TP 5.8 Recursion
TP 5.9 Stack Diagrams for Recursive Functions
TP 5.10 Infinite Recursion

Lab 10

Fri Sep 27

Animation

animate.py
Lab 11
Mon Sep 30

Condition Loops

TP 7.1 Multiple Assignment & 7.2 Updating Variables (text, video)
TP 7.3 The while Statement (text, video)
CL 51189, 00019, 00020, 00021, 00022

Lab 12

Wed Oct 2

Accumulator

Lab 13

Fri Oct 4

Class Cancelled

Mon Oct 7

Keyboard Input

Assignment 3 Due
keyboard.py
Lab 14

Wed Oct 9

Logic

Lab 15

Fri Oct 11

Mouse Input

Assignment 4 Due
mouse.py
Lab 16

Fall Break
Mon Oct 21

Strings

TP 8.1 A String is a Sequence (text, video)
TP 8.2 len (text, video)

Lab 17

Wed Oct 23

Traversal & Slicing

TP 8.3 Traversal with a for Loop (text, video)
TP 8.4 String Slices (text, video)

Lab 18

Fri Oct 25

Text

Assignment 5 Due
text.py
Lab 19

Mon Oct 28

Binary Integer

Binary Representation of Positive Integers

Lab 20

Wed Oct 30

Binary Real

Binary Representation of Real Numbers

Lab 21

Fri Nov 1

Review

Assignment 6 Due
Test 2 Review
Lab 22

Mon Nov 4

Test 2

Wed Nov 6

Lists

TP 10.1 A List is a Sequence
TP 10.2 Lists are Mutable TP 10.3 Traversing a List
TP 10.4 List Operations
TP 10.5 List Slices

Lab 23

Fri Nov 8

Platforms

TP 10.9 Lists and String
TP 10.8 Deleting Elements
TP 10.10 Objects and Values
TP 10.11 Aliasing

platform.py
top_down.py
Lab 24

Mon Nov 11

Dictionaries

TP 11.1 Dictionaries (text, video)

Lab 25

Wed Nov 13

Traversing Dictionaries

TP 11.2 Looping Dictionaries

Lab 26

Fri Nov 15

No Class

Assignment 7 Due

Mon Nov 18

File I/O

TP 9.1 Reading Word Lists (text, video)

Lab 27

Wed Nov 20

2D Lists

Lab 28

Fri Nov 22

Image Processing

Assignment 8 Due
Lab 29

Mon Nov 25

Loebner Contest

Lab 30

Thanksgiving Break
Mon Dec 2

Game of Life

Lab 31

Wed Dec 4

Review

Final Exam Review
Fri Dec 6

Showcase

Assignment 9 Due