Created
August 10, 2015 20:15
-
-
Save LuisRBarreras/2c71e953fc3c6db59018 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Where to Start | |
-------------------------------------------- | |
Friedman, The Little Schemer | |
K&R, The C Programming Languaage | |
Graham, ANSI Common Lisp | |
SICP | |
Bloch, Effective Java | |
Sedgewick, Algorithms | |
============================================= | |
What languages people learn first | |
Traditional Route: | |
C -> Java -> Other (Clojure, Go/Rust, C#, D) | |
Used to be | |
C -> C++, but Java replaced C++ because C++ | |
gained too much complexity | |
MIT Route: | |
LISP -> Java -> C | |
Modern Route: | |
Python -> Java / C# | |
============================================= | |
Ideal CS Ciriculum | |
-------------------------------------------- | |
~~~Fall 1~~~ | |
Calculus I | |
Intro to Proofs and Abstract Mathematics | |
Physics I | |
Intro to Programming | |
Technical Writing | |
~~~Spring 1~~~ | |
Calculus II | |
Matrix Algebra | |
Physics II | |
Digital Logic and Automata | |
Data Structures | |
~~~Fall 2~~~ | |
Vector Calculus | |
Physics III | |
Electrical Engineering Fundamentals | |
Computer Architecture | |
Algorithm I | |
~~~Spring 2~~~ | |
Ordinary Differential Equations | |
Probability and Statistics | |
Parallel, Distributed, and GPU Programming | |
Operating Systems | |
Algorithm II | |
~~~Fall 3~~~ | |
Numerical Analysis I | |
Combinatorics and Graph Theory I | |
Mathematical Logic | |
Digital Signal Processing | |
Programming Languages and Compilers I | |
~~~Spring 3~~~ | |
Numerical Analysis II | |
Combinatorics and Graph Theory II | |
College Geometry | |
Computability and Complexity Theory | |
Compilers II | |
Database Theory (Seminar) | |
~~~Fall 4~~~ | |
Abstract Algebra | |
Classical Number Theory | |
Computer Graphics and Vision | |
Artificial Intelligence and Machine Learning | |
Internet, Networks and Communication Systems | |
Professionalism, Ethics, and Conduct (Seminar) | |
~~~Spring 4~~~ | |
Linear Programming and Optimization | |
Computer Security and Cryptography | |
FPGAs, Microcontrollers and Driver Development | |
Software Engineering Essentials | |
Principles of Economics | |
Personal Grooming and Hygiene (Seminar) | |
Alternative | |
-------------------------------------------- | |
1st semester | |
>Unix Introduction | |
>C Introduction | |
>Essential Data Structures: Linked Lists, Binary Trees, and Hash Tables in C | |
>Essential Algorithms: Sorting and Searching | |
>Project Management and Maintenance | |
>textbooks: The UNIX Programming Environment, Programming in C; The Practice of Programming | |
2nd semester | |
>Scheme Introduction | |
>SICP | |
>textbook: Structure and Interpretation of Computer Programs | |
3rd semester | |
>Concurrent Programming in Go | |
>Network Programming in Go | |
>Graphs and Why You'd Want Them | |
>Using yacc | |
>Parsing and Interpreting Non-Metacircularly |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment