Notes and solutions from various courses
by Ty-Lucas Kelley
There are tons of great, free, and online courses out there. In fact, there are so many that I will never be able to enjoy taking all of them. That's what inspired me to create this repository of course notes and solutions; while simple notes will never be a full replacement for a course experience, they can at least be a substitute that take much less time to go through.
I write very detailed notes and solutions for every class I take. I'm sharing them here with the hopes that others will:
- Benefit from them and share them with others.
- Be inspired to share their own notes and solutions.
- Offer feedback and criticism, so I can improve my note-taking.
Despite this being public and on GitHub, I will not accept any pull requests. This is meant to be a repository of my notes and solutions, not a community-driven effort like Victor Felder's Free Programming Books. I would encourage those who wish to contribute to create and share their own notes and solutions.
I will also mention that my notes are not always an exact representation of what was taught in the class. I sometimes remove what I feel is unnecessary and add what I feel is supplementary or helpful.
Enjoy!
The focus will be on computer science, math, and engineering-related courses, but I have other interests as well, like music and history.
Below is a list of everything that I have planned / completed. There may be notes and solutions that are present in the repository but are still incomplete, so read this list to see what I feel is "production-ready".
Udacity
- Intro to Computer Science
- Object-Oriented Programming with Python
- Intro to Hadoop and MapReduce
- JavaScript Basics
- Version Control
Udacity
- Web Development
- Object-Oriented JavaScript
- Intro to Algorithms
Udacity
- Intro to Data Science
- R Programming
- Differential Equations w/ Python
- MongoDB
- Website Performance Optimization
Coursera
- Databases
- Compilers
MIT OpenCourseWare
- Physics (Mechanics)
- Single Variable Calculus
- Microeconomics
edX
- Functional Programming with Haskell
Udacity
- Summary: A great CS course for beginners and those with a bit of programming experience alike.
- Instructor: David Evans, Professor of Computer Science at the University of Virginia
- Prerequisites: N/A
- Topics covered:
- Basic Python programming (arithmetic, strings, lists, dictionaries, procedures, loops, etc.)
- Problem solving / thinking like a computer scientist
- Formal grammars / Backus-Naur form
- Brief introduction to how computers and networks function
- Recursion
- A bit of algorithm analysis / cost
- Hash tables
- Notable assignments:
- Web crawler and search engine that ranks pages
- Gaming social network
- Summary: A short and nicely-paced introduction to OOP concepts.
- Instructor: Kunal Chalwa, Masters student at Stanford University's School of Education
- Prerequisites: N/A (some Python experience is helpful)
- Topics covered:
- Quick refresher on basic programming concepts and Python syntax
- Using Python modules
- Using 3rd-party modules like Twilio via PyPi
- Using and making classes
- Notable assignments:
- Build a "Movie" class to create an online movies database
- Come up with your own final project
- Summary: A high-level overview of how Hadoop works and an introduciton to writing MapReduce code.
- Instructors: Sarah Sprohnele and Ian Wrigley of Cloudera
- Prerequisites: Python programming experience
- Topics covered:
- What "Big Data" is
- History of Hadoop
- Overview of Hadoop ecosystem
- Writing basic MapReduce code
- Common MapReduce design patterns
- Notable assignments:
- Analyzing server logs
- Finding commonly used words on the Udacity forums
- Summary: A breif introduction to JavaScript in the context of DOM manipulation.
- Instructors: Cameron Pittman and James Willias of Udacity
- Prerequisites: Basic knowledge of HTML and CSS
- Topics covered:
- Data types: strings, arrays, numbers
- Variables
- Objects & JSON
- A little bit of jQuery
- Conditions and if statements
- Loops: while, for, for-in
- Functions
- Notable assignments:
- Building a résumé
- Summary: A nice introduction to using Git and GitHub for your projects.
- Instructors: Caroline and Sarah of Udacity
- Prerequisites: Ability to read source code, basic command line knowledge
- Topics covered:
- History of Git & why version control helps
- Using Git at the command line
- Git commands: diff, log, checkout
- Cloning and creating repositories
- Committing changes and reverting
- Branching and merging
- Merge conflicts and other problems
- Notable assignments:
- N/A