Home
Schedule
Syllabus
Programming Assignments
Labs
Exams
Student Care
WSU Alerts
WSU Safety Plan
WSU Emergency
Management
Academic Calendar
myWSU
Facebook
Canvas
|
Class Schedule
Week |
Date |
Reading |
Lecture Notes |
Topics |
1 |
M-1/9 |
Ch. 1
Introduction
|
Jupyter,
Slides
|
Jupyter Notebook; how to succeed in CptS 111; computer programs
(code, scripts, apps); transistors and binary; bits and bytes;
computer programming languages: compiled vs interpreted; IDEs;
stdin, stdout; simple input and
output: input() , print()
|
W-1/11 |
Ch. 2
Variables & Expressions,
Modules, and Math
|
Jupyter,
Slides
|
more on input()
and print() ; type() ; int() ; float() ;
whitespace, including newline character (\n ) and
tab character (\t ); expression vs statement or
command; variables vs literals; lvalues (values to the LEFT of
assignment operators; assignment operator (= );
rules for names; reserved words; naming conventions: camel case
vs using underscores; floats vs integers (integers are more
precise!)
|
2 |
M-1/16 |
MLK Jr. Day
|
|
W-1/18 |
Ch. 2
|
Jupyter,
Slides
|
augmented assignment (compound operators),
e.g., += , *= ; math operators;
precedence of math operations; more on print() ; a
little on f-string string formatting, e.g., printing a float
with two decimal places; division (/ ) vs floor
division (// ); modulo operator
(% ); divmod() ; modules: standard
modules,
e.g., math , random , os ; import ;
dot notation; using an alias when importing a module
|
3 |
M-1/23 |
Ch. 3
Data Types and
Data Structures
|
Jupyter,
Slides
|
dot notation with modules; string indexing including negative
indexing, e.g., [-1] for the last character in a
string; string immutability; len() function;
operator overloading: repetition (* ) and
concatenation (+ ); use of quotes and the escape
character (\ ); initiating empty strings; combining
operator overloading and augmented assignment with characters;
ASCII characters: printable and unprintable; ASCII and extended
Unicode; chr() and ord() functions
|
W-1/25 |
Pair programming
|
Slides
|
Pair programming in zyBooks, PA #1 (zyLab_PA1, due 2.3.23)
|
4 |
M-1/30 |
Ch. 3
|
Jupyter,
Slides
|
review of input() function; more on
using str() , float(),
and int() ; can't use int() with a
string float!; string formatting using f-strings: format string
and replacement fields; format specifiers: width, alignment,
fill and padding, maximum width and precision, type and
precision
|
W-2/1 |
Ch. 3
|
Jupyter,
Slides
|
data structures; containers; iterables; sequences; mutability;
lists; functions vs methods; initializing an empty list;
combining lists using operator overloading; indexing lists;
some list
functions: sum() , len() , max() , min() ;
some list
methods: .append() , .count() , .pop() , .remove() , .sort() ;
tuples; some tuple functions and
methods: max() , len() , sum() ,
.count() , i.e., any list function or method that doesn't
involve changing a tuple; combining tuples using operator
overloading; dictionaries; initializing an empty dictionary;
key-value pairs; adding or modifying values using keys; del ;
.clear() ; in
|
5 |
M-2/6
|
Ch. 4
Conditionals
|
Jupyter,
Slides
|
conditionals: if statements, test
expressions, if-else construct,
multiple if statements, if-elif-else
construct; Boolean
variables: True , False ;
comparison/relational
operators: > , >= , == , < , <= , != ;
false objects in
Python: False , 0 , None ,
any empty object, e.g., empty list, empty tuple, empty string
|
W-2/8
|
Ch. 4
|
Jupyter,
Slides
|
comparison/logical operator redux: use with floats, use with
integers, use with strings, use with lists; Boolean/logical
operators (listed in order of
precedence): not , and , or ;
Boolean expressions including operator chaining; nested
conditionals; precedence: math > comparison/relational >
Boolean/logical
|
6 |
M-2/13 |
Ch. 5
Functions
|
Jupyter,
Slides
|
functions: built-in vs user-defined; function
calls; def ; return ; void functions;
parameters vs arguments; keyword arguments (kwargs); default
(parameter) values
|
W-2/15 |
Exam #1
|
Ch. 1 - Ch. 4
|
7 |
M-2/20 |
Presidents' Day
|
|
W-2/22 |
Ch. 5
|
Jupyter,
Slides
|
function flow: function call to function and back to program or
function that called the function (at the statement where the
function was called); program order: "upside-down" programming;
non-void functions: when lvalues are needed, use
in print() statements, use in math expressions;
nested functions; reasons for using functions; docstrings and
the help() function
|
8 |
M-2/27 |
Ch. 5
|
Jupyter,
Slides
|
use of the main() function;
calling main() ; function stubs:
e.g., pass ; incremental development of programs
using function stubs; errors: syntax, run-time, logic,
function; using print() to help with coding
|
W-3/1 |
Ch. 5
|
Jupyter,
Slides
|
scope; namespaces; scope resolution; namespaces: local (inside
function), global (outside function), builtin (e.g., print() ,
int() ) (everywhere); scope resolution search
order, i.e., how Python finds a name: local namespace, global
namespace, builtin namespace (in that order); passing lists as
arguments to void functions; global command
|
9 |
M-3/6 |
Ch. 6
Loops
|
Jupyter,
Slides
|
inefficiency of repeating commands; introduction to
loops; for -loops; range() function;
counting for -loops; special case of
counting for -loops
|
W-3/8 |
Ch. 6
|
Jupyter,
Slides
|
iterating for -loops; iterating vs
counting for -loops: when you have to use a
counting for -loop; while -loops; break ; continue
|
SPRING
BREAK !!!
|
10 |
M-3/20 |
Ch. 6
|
Jupyter,
Slides
|
creating itemized lists using counting and
iterating for -loops;
using enumerate() with
iterating for -loops to create itemized lists;
review of data structures including dictionaries; using
dictionaries in iterating for -loops; using view
objects in iterating for -loop
headers: .items() , .keys() , .values() ;
using zip() to zip together two lists and to
create a dictionary
|
W-3/22 |
Ch. 6
|
Jupyter,
Slides
|
for -loops vs while -loops;
nested for -loops; lists of lists (nested lists);
indexing nested lists; readable code, including using multiple
lines to write nested lists, i.e., formatting nested lists as
tables; outer loop associated with rows, inner loop associated
with columns
|
11 |
M-3/27 |
Ch. 7
Files and
More on Modules
|
Jupyter,
Slides
|
a little on os module; opening
files: open() ; closing
files: .close() ; .tell() ; reading
from
file: .read() , .readlines() , .readline() ;
using file (wrapper) as iterable in for -loop
header; writing to file: .write() ; printing to
file: print(whatever_printable,
file=name_of_file(_wrapper))
|
W-3/29 |
Ch. 7
|
Jupyter,
Slides,
random_walk.py
|
with command; importing
modules: import module_name, import
module_name as module_alias, from
module_name import func1, func2,
func3,..., from
module_name import * , from
module_name import func1 as
func1_alias, func2 as func2_alias,...; import
user-written modules
|
12 |
M-4/3 |
Ch. 8
More on Strings
|
Jupyter,
Slides
|
eval() ; string formatting:
modulo-formatting, .format() method formatting;
string
methods: .capitalize() , .title() , .swapcase() ,
.upper() , .lower() , .count() , .find() , .replace() , .lstrip() ,
.rstrip() , .strip() ; chaining methods
(left to right)
|
W-4/5 |
Exam #2
|
Ch. 5 - Ch. 7
|
13 |
M-4/10 |
Ch. 8
|
Jupyter,
Slides
|
string methods: .split() , .join() ;
use of in with strings; string
slicing [start:stop:increment]
|
W-4/12 |
Ch. 9
More on Lists
and Dictionaries
|
Jupyter,
Slides
|
more list
methods: .insert() , .extend() , .sort()
redux,
.reverse() ; another list
function: sorted() ; void method
.sort() vs non-void
function sorted() ; using kwargs with
.sort()
and sorted() : reverse=True , key=str.lower ;
simultaneous assignment with lists and loops; list slicing;
deep copy [ : ] ; modifying lists in loops using a
deep copy
|
14 |
M-4/17 |
Ch. 9
|
Jupyter,
Slides
|
the in command with lists; more on tuples; more
dictionary
methods: .get() , .update() , .pop() ;
operator overloading and dictionaries; a summary of what we
know about dictionaries; nested dictionaries
|
W-4/19 |
Ch. 10
Plotting
|
Jupyter,
Slides
|
plotting: matplotlib.pyplot module
(plt ): plot() , show() , axis() ,
string formats for lines, keywords for
lines, xlabel() , ylabel() , title() , legend() ;
using math text in labels, titles, and legends
|
15 |
M-4/24 |
Ch. 10
|
Jupyter,
Slides
|
plotting data from files; numpy module
(np ): array() , exp() ,
arange() ; using math operations
(** , * , + , - )
with arrays; using arrays as arguments for plot() ;
creating subplots with matplotlib.pyplot
|
W-4/26 |
Wrap-up
|
Slides
|
|
16 |
Tu-5/2 |
Final Exam
(1:30 - 3:30 pm, Spark 339) |
Comprehensive
|
|