Topics covered: computation
imperative programming
basic data structures and algorithms
Code | Class | Notes | Code | Status |
---|---|---|---|---|
C101 | Introduction to Computer Science and Programming, using Python |
Topics covered: functional programming
design for testing
program requirements
common design patterns
unit testing``object-oriented design
Java
static typing
dynamic typing
ML-family languages (via Standard ML)
Lisp-family languages (via Racket)
Ruby
Code | Class | Notes | Code | Status |
---|---|---|---|---|
C201 | How to Code: Simple Data | |||
C202 | How to Code: Complex Data | |||
C203 | Software Construction - Data Abstraction | |||
C204 | Software Construction - Object-Oriented Design | |||
C205 | Programming Languages, Part A | |||
C206 | Programming Languages, Part B | |||
C207 | Programming Languages, Part C |
Topics covered: linear transformations
matrices
vectors
mathematical proofs
number theory
differential calculus``integral calculus
sequences and series
discrete mathematics
basic statistics
O-notation
graph theory
vector calculus
discrete probability
Code | Class | Notes | Code | Status |
---|---|---|---|---|
C301 | Essence of Linear Algebra | |||
C302 | Linear Algebra - Foundations to Frontiers | |||
C303 | Calculus 1A: Differentiation | |||
C304 | Calculus 1B: Integration | |||
C305 | Calculus 1C: Coordinate Systems & Infinite Series | |||
C306 | Mathematics for Computer Science |
Topics covered: procedural programming
manual memory management
boolean algebra
gate logic
memory
computer architecture
assembly
machine language
virtual machines
high-level languages
compilers
operating systems
network protocols
Code | Class | Notes | Code | Status |
---|---|---|---|---|
C401 | Build a Modern Computer from First Principles: From Nand to Tetris | |||
C402 | Build a Modern Computer from First Principles: Nand to Tetris Part II | |||
C403 | Introduction to Computer Networking | |||
C404 | ops-class.org - Hack the Kernel |
Topics covered: divide and conquer
sorting and searching
randomized algorithms
graph search
shortest paths
data structures
greedy algorithms
minimum spanning trees
dynamic programming
NP-completeness
Code | Class | Notes | Code | Status |
---|---|---|---|---|
C501 | Algorithms: Design and Analysis, Part I | |||
C502 | Algorithms: Design and Analysis, Part II |
Topics covered: Agile methodology
REST
software specifications
refactoring
relational databases
transaction processing
data modeling
neural networks
supervised learning
unsupervised learning
OpenGL
raytracing
block ciphers
authentication
public key encryption
Code | Class | Notes | Code | Status |
---|---|---|---|---|
C601 | Databases | c601_notes | In Progress | |
C602 | Machine Learning | |||
C603 | Computer Graphics | |||
C604 | Cryptography I | |||
C605 | Software Engineering: Introduction | |||
C606 | Software Development Capstone Project | |||
C607 | Web Development: HTML, CSS, JavaScript | c607_notes | In Progress |
Topics covered: debugging theory and practice
goal-oriented programming
object-oriented analysis and design
UML
large-scale software architecture and design
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A101 | Software Debugging | |||
A102 | Software Testing | |||
A103 | Software Architecture & Design |
Topics covered: parametric equations
polar coordinate systems
multivariable integrals
multivariable differentials
probability theory
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A201 | Multivariable Calculus | |||
A201 | Introduction to Probability - The Science of Uncertainty |
Topics covered: digital signaling
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A301 | Reliable Distributed Systems, Part 1 | |||
A302 | Reliable Distributed Systems, Part 2 |
Topics covered: formal languages
Turing machines
computability
event-driven concurrency
automata
distributed shared memory
consensus algorithms
state machine replication
computational geometry theory
propositional logic
relational logic
Herbrand logic
concept lattices
game trees
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A401 | Introduction to Logic | |||
A402 | Automata Theory | |||
A403 | Computational Geometry | |||
A404 | Introduction to Formal Concept Analysis | |||
A405 | Game Theory |
Topics covered: clouds
MapReduce
key-value/NoSQL stores
classical distributed algorithms
widely-used distributed algorithms
scalability
data centers
networks
CDNs
cloud middleware
JSON
RPC
REST
load balancing
infrastructure as a service
cloud storage services
analytics
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A501 | Cloud Computing Concepts, Part 1 | |||
A502 | Cloud Computing Concepts: Part 2 | |||
A503 | Cloud Computing Applications, Part 1: Cloud Systems and Infrastructure | |||
A504 | Cloud Computing Applications, Part 2: Big Data and Applications in the Cloud | |||
A505 | Cloud Networking |
Topics covered: pattern discovery
visualization
search engine technologies
text retrieval
vector space model
probabilistic retrieval models
statistical language models
recommender systems
text mining
natural language content analysis
paradigmatic relation discovery
syntagmatic relation discovery
probabilistic topic models
probabilistic latent semantic analysis
text clustering
text categorization
opinion mining and sentiment analysis
text-based prediction
apriori algorithm
FPGrowth
sequential pattern mining
cluster analysis
minkowski distance
k-means clustering
BIRCH
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A506 | Data Visualization | |||
A507 | Text Retrieval and Search Engines | |||
A508 | Text Mining and Analytics | |||
A509 | Pattern Discovery in Data Mining | |||
A510 | Cluster Analysis in Data Mining |
Topics covered: characteristics of big data
data science process
distributed file systems
scalable computing
hadoop
data models
redis
data streams
postgres
MongoDB
pandas
DataFrames
splunk
big data pipelines
apache spark
KNIME plots
feature transformation
dimensionality reduction
k-nearest neighbors
decision trees
naïve bayes
model performance
graphs
path analytics
parallel programming model for graphs
pregel
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A511 | Introduction to Big Data | |||
A512 | Big Data Modeling and Management Systems | |||
A513 | Big Data Integration and Processing | |||
A514 | Machine Learning With Big Data | |||
A515 | Graph Analytics for Big Data |
Topics covered: bootstrap
node.js
jquery
SASS
LESS
angularjs
reactive programming
typescript
ionic
apache cordova
mobile application development
user authentication
mongodb
expressjs
REST
APIs
Code | Class | Notes | Code | Status |
---|---|---|---|---|
A516 | Front-End Web UI Frameworks and Tools: Bootstrap 4 | |||
A517 | Front-End JavaScript Frameworks: Angular | |||
A518 | Multiplatform Mobile App Development with Web Technologies: Ionic and Cordova | |||
A519 | Multiplatform Mobile App Development with NativeScript | |||
A520 | Server-side Development with NodeJS, Express and MongoDB |