/UpSchoolCS101

This is a list of resources for people who wants to get in to the world programming and do not have the necessary background for that.

UpSchool CS101

This is a list of resources for people who wants to get into the world programming and do not have the necessary background for that.

Class 1: Mathematics for Computer Science (MIT)

Albert Meyer, and Adam Chlipala. 6.042J Mathematics for Computer Science. Spring 2015. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.

This course includes 18 hours and 43 minutes of video content (33 minutes are optional). The video content is backed with a lot of examples. The course provides a complete mathematical background for computer science. Optional content is marked with italic text.

There are also some supplementary content which is marked with bold text (if also optional bold italic). Currently, supplementary content consists of 52 minutes of video and 1 hour and 2 minutes of reading metarial.

Unit 1: Proofs

Website: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/proofs/

  1. Introduction
    1. “What is Discrete Mathematics? How is discrete mathematics used in computer science? How do MPCS students benefit from learning discrete mathematics?” https://masters.cs.uchicago.edu/page/math-needed-computer-science (Reading: 0:09)
    2. The math needed for computer science (Video: 0:15)
  2. Intro to Proofs
    1. Welcome to 6.042 (Video: 0:02)
    2. Intro To Proofs: Part 1 (Video: 0:09)
    3. Intro to Proofs: Part 2 (Video: 0:07)
    4. Definitions To Know For Proofs
    5. Modus Ponens
  3. Proof Methods
    1. Proof By Contradiction (Video: 0:08)
    2. Proof By Contradiction
    3. Proof By Cases (Video: 0:07)
    4. When to Prove by Cases
    5. Friends and Strangers
    6. A Bogus Proof by Cases
    7. A Bogus Proof by Contradiction
  4. Well Ordering Principle
    1. Well Ordering Principle 1 (Video: 0:06)
    2. Domain for Well Ordering Principle
    3. Well Ordering Principle 2 (Video: 0:05)
    4. Well Ordering Proofs and Counterexamples
    5. Well Ordering Principle 3 (Video: 0:06)
    6. WOP Proof for Geometric Sum
    7. Well Ordering Principle - Examples
    8. A Bogus Well Ordering Principle Proof 1 Logic & Propositions
    9. Propositional Operators (Video: 0:09)
    10. Propositional Operators
    11. Digital Logic (Video: 0:10)
    12. Truth Tables (Video: 0:13)
    13. Equivalence and Truth Table
    14. Implies (Video: N/A)
    15. Propositional Logic (Video: N/A)
    16. Soundness and Validity
    17. Logical Connectives
  5. Quantifiers & Predicate Logic
    1. Predicate Logic 1 (Video: 0:13)
    2. Predicate Logic 2 (Video: 0:12)
    3. Satisfiability
    4. Predicate Logic 3 (Video: 0:08)
    5. Name That Predicate!
    6. Quantifiers
    7. Propositions with Quantifiers
    8. Predicate Logic
  6. Sets
    1. Sets Definitions (Video: 0:12)
    2. Sets Operations (Video: 0:09)
    3. Difference
  7. Binary Relations
    1. Relations (Video: 0:25)
    2. Range of a Relation
    3. Relational Mappings (Video: 0:09)
    4. Total Injection
    5. Finite Cardinality (Video: 0:11)
    6. A inj B
    7. Total Relations
    8. Surjective Relations
    9. Inverse Relations
    10. In- ,Sur-, and Bijections
    11. Mapping Lemma: Sizes of Domains and Codomains
  8. Induction
    1. Induction (Video: 0:22)
    2. Bogus Induction (Video: 0:05)
    3. Same Colored Horses
    4. Strong Induction (Video: 0:10)
    5. Unstacking Game Score
    6. WOP vs Induction (Video: 0:08)
    7. Strong vs Ordinary Induction vs WOP
    8. Induction by n+3
    9. Induction Rules
    10. Postage by Induction
    11. A Bogus Induction
  9. State Machines - Invariants
    1. State Machines Invariants (Video: 0:26)
    2. State Machine Invariants
    3. Derived Variables (Video: 0:06)
    4. Derived Variables and Termination
    5. Integer Multiplication
    6. Chocolate Bars
  10. Recursive Definition
    1. Recursive Data (Video: 0:13)
    2. Matching Parentheses
    3. Functions of F18
    4. Structural Induction (Video: 0:06)
    5. Structural Induction: Definition
    6. Counting Cases
    7. Recursive Functions (Video: 0:14)
  11. Infinite Sets
    1. Cardinality (Video: 0:13)
    2. Cantor, Schroeder-Bernstein
    3. Countable Sets (Video: 0:10)
    4. Cantor's Theorem (Video: 20)
    5. Cantor's Diagonal Argument
    6. Countable and Uncountable Sets
    7. The Halting Problem (Video: 0:16)
    8. Halting Problem Basics
    9. Russell's Paradox (Video: 0:13)
    10. Russell's Paradox and ZFC
    11. Set Theory Axioms (Video: 0:09)
    12. Set Theory Axioms

Unit 2: Structures

Website: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/structures/

  1. GCDs
    1. GCDs & Linear Combinations (Video: 0:10)
    2. Euclidean Algorithm (Video: 0:09)
    3. Run Euclid Run
    4. Pulverizer (Video: 0:12)
    5. GCDs I
    6. Revisiting Die Hard (Video: 0:05)
    7. Prime Factorization (Video: 0:08)
    8. Unique Primes
    9. Divisors
    10. GCDs II
  2. Congruences
    1. Congruence mod n (Video: 0:13)
    2. Divisibility and Congruence
    3. Inverses mod n (Video: 0:04)
    4. Inverses mod n
    5. Multiplicative Inverses
    6. Inverses With Linear Combinations
  3. Euler's Theorem
    1. Modular Exponentiation Euler's Function (Video: 0:06)
    2. Euler's Totient Function
    3. The Ring Z (Video: 0:17)
    4. The Ring
    5. Z mod n
    6. Fermat's Little Theorem
    7. Euler's Theorem
  4. RSA Encryption
    1. RSA Public Key Encryption (Video: 0:22)
    2. RSA Encryption
    3. Reducing Factoring To SAT (Video: 0:07)
    4. Relative Primality
    5. RSA computations
  5. Digraphs: Walks & Paths
    1. Digraphs: Walks & Paths (Video: 0:04)
    2. Walks and Paths
    3. Digraphs: Connected Vertices (Video: 0:07)
    4. Longest Path
    5. Adjacency Matrix
    6. Counting Paths
  6. Directed Acyclic Graphs (DAGs) & Scheduling
    1. DAGs (Video: 0:11)
    2. DAGs
    3. Scheduling (Video: 0:13)
    4. Scheduling Prerequisites
    5. Time versus Processors (Video: 0:10)
    6. Processor Time Bounds
    7. The Divisibility DAG
  7. Partial Orders and Equivalence
    1. Partial Orders (Video: 0:11)
    2. Population Partial Order
    3. Representing Partial Orders As Subset Relations (Video: 0:07)
    4. Equivalence Relations (Video: 0:07)
    5. Relational Properties
    6. Properties Of Relations
    7. Equivalence Relations & Partial Orders
  8. Degrees & Isomorphism
    1. Degree (Video: 0:11)
    2. Counting Degrees & Edges
    3. Isomorphism (Video: 0:11)
    4. Isomorphism
    5. Extreme Graphs
    6. Isomorphic Graphs
    7. Non-Isomorphic Graphs
  9. Coloring & Connectivity
    1. Coloring (Video: 0:16)
    2. Chromatic Number
    3. Connectivity (Video: 0:03)
    4. k-Connectivity (Video: 0:08)
    5. k-Connected
    6. Graph Coloring I
    7. Graph Coloring II
    8. Connected Components in Integers
  10. Trees
    1. Trees (Video: 0:06)
    2. Trees: Many Definitions
    3. Tree Coloring (Video: 0:02)
    4. 2-Colorable Trees
    5. Spanning Trees (Video: 0:11)
    6. Span all the Graphs!
    7. Tree or Not Tree?
    8. Leaves
    9. Minimum Spanning Trees
    10. Graph Algorithm
  11. Stable Matching
    1. Stable Matching (Video: 0:11)
    2. Eşleme Kuramı ve 2012 Nobel Ekonomi Ödülü (Reading (in Turkish): 0:41)
    3. Matching Ritual (Video: 0:09)
    4. Derived Variables
    5. Mating Ritual
    6. Optimal Stable Matching (Video: 0:09)
    7. Boy Optimal
    8. Bipartite Matching (Video: 0:04)
    9. Bipartite Equivalence Relation
    10. Hall's Theorem (Video: 0:16)
    11. Bottleneck
    12. Bipartite Graphs
    13. Matching
    14. Stable Matching Invariants

Unit 3: Counting

Website: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/counting/

  1. Sums & Products
    1. Arithmetic Sums (Video: 0:04)
    2. Perturbation by Young Gauss
    3. Geometric Sums (Video: 0:11)
    4. Annuities
    5. Book Stacking (Video: 0:08)
    6. Harmonic Numbers
    7. Integral Method (Video: 0:10)
    8. Integral Method Demystified
    9. Stirling's Formula (Video: 0:06)
    10. Applying Stirling's Formula
    11. Convergence of Geometric Series
    12. Summation
    13. Sum's Upper Lower Bounds
  2. Asymptotics
    1. Asymptotic Notation (Video: 0:08)
    2. Asymptotics as Relations
    3. Asymptotic Properties (Video: 0:10)
    4. Little oh Big Oh
    5. Theta
    6. Asymptotic Blunders (Video: 0:04)
    7. Asymptotics the Right Way
    8. Practice with Big O
    9. Practice with Order of Growth
  3. Counting with Bijections
    1. Sum And Product Rules (Video: 0:07)
    2. Counting Practice
    3. Counting with Bijections (Video: 0:12)
    4. Selecting Donuts
    5. Counting Functions
  4. Repetitions & Binomial Theorem
    1. Generalized Counting Rules (Video: 0:10)
    2. Choosing Integers
    3. Two Pair Poker Hands (Video: 0:08)
    4. Binomial Theorem (Video: 0:06)
    5. Multinomial Theorem (Video: 0:08)
  5. Pigeonhole Principle, Inclusion-Exclusion
    1. The Pigeonhole Principle (Video: 0:04)
    2. Prove that there are at least 4 months in every year which includes 5 Tuesdays.
    3. Rolling Dice
    4. Inclusion-Exclusion Example (Video: 0:13)
    5. Inclusion-Exclusion 2 Sets (Video: 0:07)
    6. Pigeonhole Principle
    7. 6.042 TEAL Table
    8. Class Schedules

Unit 4: Probability

Website: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/probability/

  1. Intro to Discrete Probability
    1. Tree Model (Video: 0:25)
    2. Socks and Shoes
    3. Simplified Monty Hall Tree (Video: 0:08)
    4. Simplify Prize Tree
    5. Sample Spaces (Video: 0:10)
    6. Sum Rule Practice
    7. Addition Rule
    8. Fun With Coins
  2. Conditional Probability
    1. Conditional Probability Definitions (Video: 0:12)
    2. Dicey Sum
    3. Law of Total Probability (Video: 0:04)
    4. Cavities and Candy
    5. Bayes' Theorem (Video: 0:12)
    6. Two Boys
    7. Monty Hall Problem (Video: 0:09)
    8. Conditional Probability
    9. Dicey Game
    10. Watch Out For Crocodiles
  3. Independence & Causality
    1. Independence (Video: 0:04)
    2. Independent Dice Rolls
    3. Mutual Independence (Video: 0:08)
    4. Mutually Independent Dice Rolls
    5. Independent vs Disjoint
    6. Labeled Balls
    7. Paradox
  4. Random Variables, Density Functions
    1. Bigger Number Game (Video: 0:12)
    2. Random Variables: Independence (Video: 0:16)
    3. Odd Heads and Matches
    4. Random Variables: Uniform & Binomial (Video: 0:12)
    5. Late For A Date
    6. A Random Number
    7. PDF to CDF
    8. Dice And Coin Game
  5. Expectation
    1. Expectation (Video: 0:19)
    2. Uneven Dice
    3. Expected Number Of Heads (Video: 0:05)
    4. Expected Number of Heads
    5. Total Expectation (Video: 0:04)
    6. Another Dice and Coin Game
    7. Mean Time to Failure (Video: 0:11)
    8. Three Machines Failing
    9. Linearity of Expectation (Video: 0:19)
    10. Fair and Biased Coins
    11. Binomial Board Breaking
    12. Great Expectations
    13. Expectation of a Uniform Distribution
  6. Deviation: Markov & Chebyshev Bounds
    1. Deviation From The Mean (Video: 0:08)
    2. Don't Expect the Expectation
    3. Markov Bounds (Video: 0:09)
    4. Markov Bound
    5. Chebyshev Bounds (Video: 0:10)
    6. Inside the TA's Brain
    7. Variance (Video: 0:15)
    8. Practice with Variance
    9. Flipping Coins
    10. Practice with Bounds
    11. Implications of Expectation
  7. Sampling & Confidence
    1. Law Of Large Numbers (Video: 0:14)
    2. Not So Strong
    3. Independent Sampling Theorem (Video: 0:07)
    4. Sampling Coin Tosses
    5. Birthday Matching (Video: 0:12)
    6. Birthdays On Naboo
    7. Sampling & Confidence (Video: 0:13)
    8. Confidence
    9. Random Sampling
    10. Above Average Number of Fingers
  8. Random Walks & Pagerank
    1. Random Walks (Video: 0:11)
    2. Stationary Distributions (Video: 0:16)
    3. Page Rank (Video: 0:11)
    4. Random Walks
    5. Random Walks (cont.)
  9. A beginner's guide to quantum computing (Video: 0:10)
  10. Linear Algebra
    1. Linear Algebra for Computer Scientists (Video: 0:17)
    2. Why is Linear Algebra Useful? (Video: 0:10)
  11. Numerical methods example: Fast inverse square root (Reading: 0:12)

Class 2: CS50 (Harvard University)

https://cs50.harvard.edu/summer/2020/

This course is an intensive introduction to the intellectual enterprises of computer science and the art of programming. It is a fast-moving course that demands a substantial commitment of time and effort for students to be successful. It teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets are inspired by real-world domains of biology, cryptography, finance, forensics, and gaming.

This course includes 18 hours and 9 minutes of video content. The video content is backed with a lot of examples.

  1. Week 0: Scratch (Video: 1:02)
  2. Week 1: C (Video: 1:46)
  3. Week 2: Arrays (Video: 1:47)
  4. Week 3: Algorithms (Video: 1:29)
  5. Week 4: Memory (Video: 1:48)
  6. Week 5: Data Structures (Video: 1:45)
  7. Week 6: Python (Video: 1:48)
  8. Week 7: SQL (Video: 1:46)
  9. Week 8: HTML, CSS, JavaScript
    1. Introduction (Video: 0:02)
    2. HTTP (Video: 0:19)
    3. HTML (Video: 0:30)
    4. CSS (Video: 0:37)
    5. JavaScript (Video: 0:48)
    6. Homepage (Video: 0:09)
  10. Week 9: Web Programming
    1. Flask (Video: 0:54)
    2. Databases (Video: 0:29)
    3. Finance (Video: 0:27)
    4. Conclusion (Video: 0:01)
  11. Week 10: Information (Video: 0:52)