Contents and instructional goals for spring 2015 semester.
- Python as calculator (basic operators)
- Python interpreter
- Difference between float and int -- talk a bit about float, int (, maybe str)
- Variables
- Read the docs!
- Boolean logic
- Types (int, str, float, bool)
- Conditionals: if/elif/else
- Loops: while
- both while waiting for something and doing a set number of times - poor man's for loop
- Basic string formatting
- input()
- Turtle
- Keywords: and, or, not, if, else, elif, while, import
- Functions
- Positional and Optional Arguments
- Recursion
- Modules
- import statements
- main() boilerplate
- Comments and PEP-8 style
- Keywords: def
- Lists
- Strings
- For loops
- Slicing
- Keywords: in (not in), for
- Maybe range(), but I think we should focus more on for loops being used in the style of "for each"
- Talk about types again -- we now have float, int, str, list(, function)
- matplotlib
- File I/O using with
- matplotlib
- data processing for exercises
- dictionaries, lists, tuples, sets
- algorithm development (redo some questions!)
- Algorithm development, critical thinking
- Introduce common CS algorithms early: binary search, sorting
- Take a peek at the Google interview prep, programming pearls, and the Cormen book to find good candidates
- Play around with interdisciplinary themes: genetics, linguistics, physics, image processing
- Introduce common CS algorithms early: binary search, sorting
- Earlier labs: use turtle to demonstrate basic concepts
- Later labs: start building ONE final project
- Functions as first-class citizens
- Higher order functions
- Lambda functions
- Generators
- Object-oriented?