A CS and engineering learning path made to be completely free (or relatively cheap) while lightly mimicing the structure of a standard education.
The following is a general outline of the path I use (resources may not match what I use):
1. Introduction to Computer Science and Programming
- Topics:
- Basic programming concepts
- Variables and data types
- Control structures (if-else, loops)
- Functions and modular programming
- Basic data structures (arrays, lists)
- Introduction to algorithms
- Resources:
- Textbook: Introduction to Computer Science Using Python: A Computational Problem-Solving Focus by Charles Dierbach
- Online Course: Harvard's CS50 on edX
2. Linear Algebra
- Topics:
- Matrices and determinants
- Vector spaces
- Eigenvalues and eigenvectors
- Linear transformations
- Resources:
- Textbook: Linear Algebra and Its Applications by David C. Lay, Steven R. Lay, and Judi J. McDonald
- Online Course: Linear Algebra on Khan Academy
3. Calculus I
- Topics:
- Limits and continuity
- Derivatives and applications
- Integrals and applications
- Fundamental Theorem of Calculus
- Resources:
- Textbook: Calculus: Early Transcendentals by James Stewart
- Online Course: Single Variable Calculus on MIT OpenCourseWare
4. Introduction to Computer Systems
- Topics:
- Computer organization and architecture
- Binary and hexadecimal systems
- Assembly language basics
- Simple computer circuits
- Resources:
- Textbook: Computer Organization and Design: The Hardware/Software Interface by David A. Patterson and John L. Hennessy
- Online Course: Introduction to Computer Architecture on Coursera
1. Data Structures and Algorithms
- Topics:
- Arrays, linked lists
- Stacks, queues
- Trees, binary trees, binary search trees
- Graphs, depth-first search, breadth-first search
- Sorting algorithms (quick sort, merge sort)
- Algorithm complexity analysis (Big O notation)
- Resources:
- Textbook: Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- Online Course: Algorithms by Princeton University on Coursera
2. Calculus II
- Topics:
- Techniques of integration
- Sequences and series
- Parametric equations and polar coordinates
- Multivariable calculus introduction
- Resources:
- Textbook: Calculus: Early Transcendentals by James Stewart
- Online Course: Multivariable Calculus on MIT OpenCourseWare
3. Discrete Mathematics
- Topics:
- Logic and proofs
- Set theory
- Functions and relations
- Combinatorics
- Graph theory
- Number theory
- Resources:
- Textbook: Discrete Mathematics and Its Applications by Kenneth H. Rosen
- Online Course: Mathematics for Computer Science on MIT OpenCourseWare
4. Digital Logic and Computer Architecture
- Topics:
- Boolean algebra
- Logic gates and circuits
- Design of combinational and sequential circuits
- Basics of CPU architecture
- Resources:
- Textbook: Digital Design and Computer Architecture by David Harris and Sarah Harris
- Online Course: Digital Systems: From Logic Gates to Processors on Coursera
1. Advanced Algorithms
- Topics:
- Greedy algorithms
- Dynamic programming
- Graph algorithms (shortest path, minimum spanning tree)
- Complexity analysis (P, NP, NP-complete problems)
- Resources:
- Textbook: Algorithm Design by Jon Kleinberg and Éva Tardos
- Online Course: Advanced Data Structures on Coursera
2. Theory of Computation
- Topics:
- Finite automata
- Regular languages and expressions
- Context-free grammars
- Turing machines
- Computability and complexity theory
- Resources:
- Textbook: Introduction to the Theory of Computation by Michael Sipser
- Online Course: Automata Theory on Coursera
3. Probability and Statistics
- Topics:
- Probability theory
- Random variables and distributions
- Hypothesis testing
- Statistical inference
- Resources:
- Textbook: Introduction to Probability and Statistics for Engineers and Scientists by Sheldon M. Ross
- Online Course: Statistics and Probability on Khan Academy
4. Operating Systems
- Topics:
- Process management
- Threading and concurrency
- Memory management
- File systems and storage
- Resources:
- Textbook: Operating System Concepts by Abraham Silberschatz, Peter B. Galvin, and Greg Gagne
- Online Course: Operating Systems and System Programming on Coursera
1. Computer Networks
- Topics:
- OSI model and TCP/IP
- Network protocols (HTTP, FTP, DNS)
- Routing and switching
- Network security
- Resources:
- Textbook: Computer Networking: A Top-Down Approach by James F. Kurose and Keith W. Ross
- Online Course: Computer Communications on Coursera
2. Database Systems
- Topics:
- Relational databases and SQL
- Database design and normalization
- Transaction management
- NoSQL databases
- Resources:
- Textbook: Database System Concepts by Abraham Silberschatz, Henry F. Korth, and S. Sudarshan
- Online Course: Databases by Stanford University on edX
- Online Course: Computer Systems Architecture on Coursera
3. Discrete Mathematics
- Topics: - Logic and proofs - Set theory - Functions and relations - Combinatorics - Graph theory - Number theory
- Resources: - Textbook: Discrete Mathematics and Its Applications by Kenneth H. Rosen - Online Course: Mathematics for Computer Science on MIT OpenCourseWare
4. Intro To Electrical Engineering
- Topics:
- Circuit theory
- Electrical components
- Signals and systems
- Digital logic
- Resources:
- Textbook: The Art of Electronics by Paul Horowitz
- Online Course: Circuits and Electronics on MIT Open Courseware
1. Intro To Drafting and Modeling
- Topics:
- Graph theory
- Advanced combinatorics
- Mathematical optimization
- Resources:
- Textbook: Concrete Mathematics: A Foundation for Computer Science by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik
- Online Course: Mathematical Thinking in Computer Science on Coursera 2. Compiler Design
- Topics:
- Lexical analysis and parsing
- Syntax-directed translation
- Semantic analysis
- Code generation and optimization
- Resources:
- Textbook: Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
- Online Course: Compilers on Coursera
3. Cryptography and Security
- Topics:
- Symmetric and asymmetric encryption
- Cryptographic protocols
- Network security
- Secure software development
- Resources:
- Textbook: Cryptography and Network Security: Principles and Practice by William Stallings
- Online Course: Cryptography I on Coursera
4. Modeling Dynamics and Control I
- Topics:
- Mechanical translation
- Uniaxial rotation
- Coupling methods
- Resources:
- Textbook: Modeling Analysis and Control of Dynamic Systems by William J. Palm
- Online Course: Modeling Dynamics and Control I on MIT Open Courseware
1. Advanced Mathematics for CS
- Topics:
- Graph theory
- Advanced combinatorics
- Mathematical optimization
- Resources:
- Textbook: Concrete Mathematics: A Foundation for Computer Science by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik
- Online Course: Mathematical Thinking in Computer Science on Coursera
2. Advanced Topics in Algorithms
- Topics:
- Approximation algorithms
- Randomized algorithms
- Online algorithms
- Resources:
- Textbook: Approximation Algorithms by Vijay V. Vazirani
- Online Course: Design and Analysis of Algorithms on Coursera
3. Distributed Systems
- Topics:
- Distributed algorithms
- Consistency and replication
- Fault tolerance
- Distributed storage systems
- Resources:
- Textbook: Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten Van Steen
- Online Course: Cloud Computing Specialization on Coursera
4. Modeling Dynamics and Control II
- Topics:
- Bioinformatics algorithms
- Sequence alignment
- Phylogenetic trees
- Biological data analysis
- Resources:
- Textbook: Modeling Analysis and Control of Dynamic Systems by William J. Palm
- Online Course: Modeling Dynamics and Control II on MIT Open Courseware
1. Product Design and Prototyping
- Focus: Proposal, research, and initial development of a product.
- Resources:
- Guide: Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days by Jake Knapp
- Online Resource: Product Design and Development on MIT Open Courseware
2. Advanced Elective I (e.g., Robotics)
- Topics:
- Robot kinematics and dynamics
- Control systems
- Perception and computer vision
- AI in robotics
- Resources:
- Textbook: Introduction to Robotics: Mechanics and Control by John J. Craig
- Online Course: Robotics Specialization on Coursera
3. Advanced Elective II (e.g., Data Science)
- Topics:
- Big data technologies
- Data mining techniques
- Statistical learning
- Resources:
- Textbook: Data Science for Business by Foster Provost and Tom Fawcett
- Online Course: Data Science Specialization on Coursera
4. Entrepreneurship and Startups
- Topics:
- Buisness models
- Managing product lifecycle
- Financial planning
- Marketing strategies
- Resources:
- Textbook: The Lean Startup by Eric Ries
- Online Course: How to Start a Startup on ClassCentral
1. Advanced Elective III (e.g., Penetration Testing and Security Assessment)
- Topics:
- SQL injection
- Secure cloud computing
- Target investigation
- Packet tracing
- Resources:
- Guide: The Art of Security Assessment by Mark Dowd
- Online Resource: Complete Ethical Hacking Masterclass on Udemy
2. Capstone Project
- Focus: Proposal, research, initial development of a major project in a chosen specialization.
- Resources: Guide: The Craft of Research by Wayne C. Booth, Gregory G. Colomb, and Joseph M. Williams Online Resource: MIT Capstone Projects on MIT OpenCourseWare
3. Research Methods in Computer Science
- Topics:
- Research design and methodology
- Ethics in research
- Publication process
- Resources:
- Textbook: Research Methods in Computer Science by Carsten Maple
- Online Resource: How to Write a Great Research Paper on Microsoft Research
4. Professional Development
- Focus: Career preparation, communication skills, industry trends.
- Resources:
- Book: Cracking the Coding Interview by Gayle Laakmann McDowell
- Online Resource: LinkedIn Learning for professional development courses
1. Advanced Project
- Topic: Design, produce, and present/deploy a major project.
- Resources:
- Book: The Pragmatic Programmer by Andrew Hunt and David Thomas
- Online Resource: GitHub for project collaboration and version control
These are the resources I am currently studying off of, from which I can provide an accurate resource, active link, price, etc.
I've also included preinstalled archives of these resources within the courses and books directories.
Tip
Archives are in tar.gz format for better compression, so Windows users will need to use 7-Zip to extract them.
Warning
If these directories become too bloated they will be removed in the future. However, the resource list shown below will remain and be updated as new resources are added.
Leasson | Resource | Price |
---|---|---|
Introduction to Computer Science and Programming | Introduction to Computer Science Using Python: A Computational Problem-Solving Focus | Free |
Linear Algebra | Linear Algebra and Its Applications | Free |
Calculus I | Single Variable Calculus | Free |
Introduction to Computer Systems | Computer Architecture Course | Free |