Programming Fundamentals I
This course is taught using the Python language. While the syntax is taught so that students can use it as an effective tool, the course focuses on computational thinking, concepts, theory, and practice.
Foundations of Computing
Computation Basics (Notional Machine)
Computational Thinking
Console IO
Problem Solving
Algorithms
Variables
Arithmetic Operations
Selection
Indeterminant Loops (while / do-while)
Determinant Loops (for)
Data Types (Lists, Strings, Tuples, Ranges, Sets, Dictionaries, Arrays)
String Manipulation
Command Line Interface (CLI)
Abstractions
Recursion
Iteration
Functions
Paradigms
Object Oriented Programming
Comprehensions (including lists and generators)
Value vs. Reference (and function in scripting languages)
Heap vs Stack
Computational Theory
Complexity Introduction
Sets Theory
Propositional Logic Introduction
De Morgan’s Laws
Software Engineering
Conventions
Specifications
Flow Charts / Pseudocode
Errors
Assertions & Unit Tests
Version Control
APIs / Documentation
Debugging
Common Frameworks
Computing in Society
Impact of Computing
Data Collection
Ethics / Privacy