Introduction
I’ve been using computers since I was a small child and I’ve spent most of my life working IT related jobs. I love systems administration and application development, eagerly follow the latest tech news, and am constantly exploring new technologies. Yet I have never been formally educated in Computer Science. This is my attempt to understand what an education in Computer Science consists of and to fill in the gaps in my knowledge.
Read This…
- Coming soon…
Undergraduate
Stanford
- Mathematics (26 Units)
- Calculus (MATH41/42)
- Mathematical Foundations of Computing (CS103)
- Introduction to Probability for Computer Scientists (CS109)
- Two Math Electives
- Science (11 Units)
- Mechanics (PHYSICS41)
- Electricity and Magnetism (PHYSICS43)
- One Science Elective
- Engineering Fundamentals (13 Units)
- Programming Abstractions (CS106B or CS106X)
- Introductory Electronics (ENGR40)
- One Engineering Fundamental Elective
- Technology in Society (3-5 Units)
- One class
- Computer Science Core (14 Units)
- Computer Organization and Systems (CS107)
- Principles of Computer Systems (CS110)
- Data Structures and Algorithms (CS161)
- Computer Science Depth (26 Units)
- Requirements for specific track
- Additional electives
- Senior Capstone Project (3 Units)
- Senior Project (CS191, CS191W, CS194, CS210, CS294, CS294W)
- Tracks
- Artificial Intelligence
- Biocomputation
- Computer Engineering
- Graphics
- Human-Computer Interaction
- Information
- Systems
- Theory
- Unspecialized
- Individually Designed
University of Texas at Austin
[Sometimes if a newer edition is available than that listed in the syllabus, I have listed the latest edition.]
Core Curriculum
- Programming
- 312 Introduction to Programming.
- Fall 2014 Syllabus (Professor: Mike Scott, same textbook also used by Vallath Nandakumar).
- 314 Data Structures or 314H.
- Spring 2015 Syllabus (Professor: Mike Scott, same textbooks also used by Gordon S. Novak Jr.).
- Textbooks:
- (Recommended) Mark Allen Weiss. Data Structures & Algorithms Analysis in Java 3rd Edition, 2011.
- (Recommended) Eric S. Roberts. Thinking Discursively with Java, 2005.
- Textbooks:
- Spring 2015 Syllabus (Professor: Mike Scott, same textbooks also used by Gordon S. Novak Jr.).
- 312 Introduction to Programming.
- Systems
- 429 Computer Organization and Architecture.
- Spring 2015 Syllabus (Professor: Dr. Robert F. Dickerson).
- Textbooks:
- Randal E. Bryant, David R. O’Hallaron. Computer Systems, A Programmer’s Perspective 3rd Edition, 2015.
- Jonathan Bartlett. Programming from the Ground Up, 2004.
- Brian W. Kernighan, Dennis M. Ritchie. The C Programming Language. 1988.
- Spring 2015 Syllabus (Honors; Professor: Ahmed Gheith).
- Textbook:
- David Harris, Sarah Harris. Digital Design and Computer Architecture 2nd Edition, 2012.
- Textbook:
- Textbooks:
- Spring 2015 Syllabus (Professor: Dr. Robert F. Dickerson).
- 439 Principles of Computer Systems.
- Spring 2015 Syllabus (Professor: Alison N. Norman).
- Textbooks:
- (Required) Randal E. Bryant, David R. O’Hallaron. Computer Systems, A Programmer’s Perspective 3rd Edition, 2015.
- (Required) Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces, Version 0.9, 2015. [Free]
- (Required) Max Hailperin. Operating Systems and Middleware: Supporting Controlled Interaction, Version 1.16, 2014. [Free]
- Textbooks:
- Spring 2015 Syllabus (Professor: Alison N. Norman).
- 429 Computer Organization and Architecture.
- Theory
- 311 Discrete Math for Computer Science
- 331 Algorithms and Complexity
Electives
[I’ve left out a few introductory courses and any courses which are based on learning content, e.g. Honors Thesis]
- 301K Foundations of Logical Thought
- 321H Functional and Symbolic Programming: Honors
- 329W Cooperative Computer Science
- 337 Programming Theory in Practice
- 341 Automata Theory
- 342 Neural Networks
- 342C Computational Brain
- 343 Artificial Intelligence
- 344M Autonomous Multiagent Systems
- 344R Robotics
- 345 Programming Languages
- 346 Cryptography
- 347 Data Management
- 349 Contemporary Issues in Computer Science
- 350C Advanced Computer Architecture
- 350F Operating Systems
- 351 LISP and Symbolic Computation
- 353 Theory of Computation
- 354 Computer Graphics
- 354R Game Technology
- 354S Game Development Capstone: 2D Games
- 354T Game Development Capstone: 3D Games
- 356 Computer Networks
- 356R Introduction to Wireless Networks
- 361 Introduction to Computer Security
- 361C Information Assurance and Security
- 361S Network Security and Privacy
- 363D Introduction to Data Mining
- 367 Numerical Methods
- 369 Systems Modeling I
- 370 Undergraduate Reading and Research
- 371D Distributed Computing
- 371M Mobile Computing
- 371P Object-Oriented Programming
- 371R Information Retrieval and Web Search
- 371S Object-Oriented Software Engineering
- 373 Software Engineering
- 373S Software Design
- 375 Compilers
- 376 Computer Vision
- 377 Principles and Applications of Parallel Programming
- 378 Undergraduate Topics in Computer Science
- 378 Autonomous Intelligent Robots I
- 378 Computational Brain – W
- 378 Computational Intelligence in Game Research
- 378 Information Assurance and Security
- 378 Interdisciplinary Entrepreneurship
- 378 Introduction to Cyberphysical Systems
- 378 Mobile Computing
- 378 Mobile News App Design
- 378 Verifying and Debugging Programs
- 378H Algorithms and Complexity: Honors
Graduate Courses
- 380C Compilers
- 380D Distributed Computing I
- 380L Advanced Operating Systems
- 380N Systems Modeling
- 380P Parallel Systems
- 380S Theory and Practice of Secure Systems
- 381K Artificial Intelligence
- 382M Advanced Computer Architecture
- 383C Numerical Analysis: Linear Algebra
- 383D Numerical Analysis: Interpolation, Approximation, Quadrature, and Differential Equations
- 384G Computer Graphics
- 384M Multimedia Systems
- 384R Geometric Modeling and Visualization
- 384V Introduction to VLSI Design
- 386C Dependable Computing Systems
- 386D Database Systems
- 386K Numerical Treatment of Differential Equations
- 386L Programming Languages
- 386M Communication Networks
- 386S Network Protocol Security
- 386W Wireless Networking
- 388 Natural Language Processing
- 388C Combinatorics and Graph Theory
- 388F Automata and Formal Languages
- 388G Algorithms: Techniques and Theory
- 388H Cryptography
- 388L Introduction to Mathematical Logic
- 388M Communication Complexity
- 388P Parallel Algorithms
- 388R Randomized Algorithms
- 388S Formal Semantics and Verification
- 388T Theory of Computation
- 389M Principles of Object-Oriented Software Technology
- 389R Recursion and Induction I
- 390D Distributed Computing II
- 391K Artificial Intelligence II
- 391L Machine Learning
- 392C Methods and Techniques for Parallel Programming
- 392F Feature-Oriented programming
- 393C Agent-Based Electronic Commerce
- 393D Topics in Numerical Analysis
- 393N Numerical Solution of Elliptic Partial Differential Equations
- 393R Autonomous Robots
- 394F Knowledge Representation and Reasoning
- 394N Neural Networks
- 394P Automatic Programming
- 394R Reinforcement Learning: Theory and Practice
- 195, 295, 395 Conference Course
- 195T, 395T Topics in Computer Science
- 396M Advanced Networking Protocols