CSC110
tags
#cs
Course Roadmap (Ch 1-11)
Notes are basically paraphrased straight from csc110 & csc111 notes
1. Working with Data
- 1.1 Python Programming Language
- 1.2 Using the Python Console
- 1.3 Representing Numbers in Python
- 1.4 Booleans and Strings
- 1.5 Python Collections
- 1.6 Python Variables
- 1.7 Python List Comprehensions
- 1.8 Application: Representing Colour
- 1.9 Representations of Natural Numbers
2. Functions
- 2.1 Python Built-In Functions
- 2.2 Python Function Definitions
- 2.3 Local Variables and Function Scope
- 2.4 Python Methods
- 2.5 Importing Python Modules
- 2.6 Type Conversion Functions
- 2.7 The Function Design Recipe
- 2.8 Testing Functions (doctest and pytest)
- 2.9 Application: Representing Text
3. Formal Logic in Computer Science
- 3.1 Propositional Logic
- 3.2 Predicate Logic
- 3.3 Filtering Collections
- 3.4 Python If Statements
- 3.5 Simplifying If Statements
- 3.6 The Python Main Block
- 3.7 Logical Statements with Multiple Quantifiers
4. Function Specification and Correctness
- 4.1 Specifying Function Behavior
- 4.2 Python Type Annotations
- 4.3 PythonTA
- 4.4 Hypothesis (Python Library)
- 4.5 Justifying Program Correctness
- 4.6 Divisibility in Programming
- 4.7 Prime Numbers in Programming
- 4.8 Application: Linear Regression
5. Working with Complex Data
- 5.1 Tabular Data
- 5.2 Custom Data Types in Python
- 5.4 Python For Loops
- 5.7 Nested For Loops
- 5.8 Accumulation Tables
6. Modifying Values and Variables
- 6.1 Variable Reassignment
- 6.2 Object Mutation
- 6.3 Mutable Data Types
- 6.4 Python Memory Model
- 6.5 Aliasing and Mutation at a Distance
7. Number Theory
- 7.1 Number Theory Introduction
- 7.2 Greatest Common Divisor (GCD)
- 7.4 Modular Arithmetic
8. Case Study: Cryptography
- 8.1 Cryptography Introduction
- 8.2 One-Time Pad and Perfect Secrecy
- 8.4 The RSA Cryptosystem
- 8.5 Implementing RSA in Python
9. Analyzing Algorithm Running Time
- 9.1 Running Time Analysis
- 9.2 Big-O Notation
- 9.3 Big-Omega and Big-Theta
- 9.8 Worst-Case Running Time Analysis
10. Abstraction, Classes, and Software Design
- 10.1 Software Abstraction
- 10.2 Python Classes and Methods
- 10.4 Abstract Data Types (ADTs)
- 10.5 Stack (Data Structure)
- 10.6 Python Exceptions
- 10.7 Queue (Data Structure)
- 10.8 Priority Queue (Data Structure)
- 10.9 Class Inheritance
11. Case Study: Building a Simulation
- 11.1 Object-Oriented Modelling
- 11.5 Discrete-Event Simulation