1 04-26-24 (Friday)

Let your work be shown to your servants,
and your glorious power to their children.
Let the favor of the Lord our God be upon us,
and establish the work of our hands upon us;
yes, establish the work of our hands!
Psalm 90:16-17

2 Wrap-up: everything we saw

Unit Concepts Perspectives
1. Introduction - program
- computation
- programming language
- running python
- objects and variables
- assignments
- input/output
- programs and code are forms of wisdom
2. Expressions - operators
- overflow
- constants
- math module
- random numbers
- comments
- programming style
- translating our intentions to code is not simple
- hospitable code
3. Conditionals - if
- else
- elif
- nested if
- comparison operators
- boolean operators
- discrimination: encoding with justice
- algorithmic intelligence
4. Loops - while
- for
- break and continue
- nested loops
- range
- accumulators
- flags
- recursion
- scaling and halting problem
- the ethics of automation
5. Data structures, part 1 - lists
- tuples
- dictionaries
- memory issues
- membership operators
- values in representations
- the seduction of transparency
6. Functions - abstraction
- flow of execution
- input: parameters
- output: return
- variable scope
- docstrings
- functions are mediators of action
7. Classes - object-orientation
- attributes and methods
- constructors
- self parameter
- class methods
- the str method
- operator overloading
- inheritance
- questions on the internet of things
- network power
8. Data structures again - slicing
- iterating
- list comprehensions
- sets
- string processing
- event handlers
- free, libre and open source software
9. Modules - importing modules
- finding modules
- namespaces
- version control systems
- cooperation and programming communities
10. File handling - operating system
- os module
- reading and writing
- serialization
- file standards
- pandas dataframes
- context managers
- data journeys
11. Error handling - try, except, else, and finally
- unit testing
- responsibility attribution in errors
12. GUIs - UI elements
- guizero
- interaction design
- interaction design as liturgies
13. Scientific computing - numpy
- scipy
- matplotlib
- jupyter
- computer simulations
- reproducibility in science
- multi-aspectual software analysis
14. Conclusion - pygame
- other programming paradigms
- computing beyond CS-108
- virtues and vices in programming

3 Things we didn’t see (and could)

4 Beyond CS-108

  • Theory of computation and programming languages
  • Algorithms and data structures (sorting, search, optimization)
  • Numerical methods
  • Computational modeling and simulation
  • Machine learning
  • Multimedia processing
  • Computer graphics
  • Computational geometry
  • Software engineering
  • Human-computer interaction
  • Web, cloud and mobile development
  • Operating systems
  • Databases
  • Networks and cybersecurity
  • Parallel and distributed computing
  • Computer architecture
  • Computer science ethics
  • Philosophy of computing and software studies
  • Psychology of programming