Skip to content

TechVerse-Academy/Stanford-CS-Learning-Path

Repository files navigation

Stanford

Stanford Computer Science Curriculum in 2021

Courses offered by the Department of Computer Science are listed under the subject code CS.

I arm rewriting lectures based original syllabus by updating the latest knowledge to accelerate you.

Introduction

CS1C: Introduction to Computing at Stanford

For those who want to learn more about Stanford's computing environment. Topics include computer maintenance and security, computing resources, Internet privacy, and copyright law.

🧑‍🏫 Instructor: Smith
đź”— http://cs1c.stanford.edu/
đź“„ File Not Found

CS1U: Practical Unix

Practical Unix is a practical introduction to using the Unix set of operating systems with a focus on Linux command line skills.

  • The course has videos to introduce some commands and how to use them generally and lab exercises to solidify understanding and go beyond the material in the videos. Much of dealing with the command line involves knowing how to best use Google and manual pages to figure things out, so these lab exercises won't tell you how to do everything.
  • Topics include: grep and regular expressions, shells and ZSH, Vim and Emacs, basic and advanced GDB features, permissions, working with the file system, revision control, Unix utilities, environment customization, and using Python for shell scripts. Topics may be added over time.

🧑‍🏫 Instructor: Zelenski
đź”— https://practicalunix.org
đź“„ Lectures

CS7: Personal Finance for Engineers

Introduction to the fundamentals and analysis specifically needed by engineers to make informed and intelligent financial decisions. Course will focus on actual industry-based financial information from technology companies and realistic financial issues. Topics include: behavioral finance, budgeting, debt, compensation, stock options, investing and real estate. No prior finance or economics experience required.

🧑‍🏫 Instructor: Adam Samuel Nash
đź”— https://cs007.blog
đź“„ Slides

CS24: Minds and Machines

An overview of the interdisciplinary study of cognition, information, communication, and language, with an emphasis on foundational issues: What are minds? What is computation? What are rationality and intelligence? Can we predict human behavior? Can computers be truly intelligent? How do people and technology interact, and how might they do so in the future? Lectures focus on how the methods of philosophy, mathematics, empirical research, and computational modeling are used to study minds and machines. Undergraduates considering a major in symbolic systems should take this course as early as possible in their program of study. Formerly SYMSYS 100.

🧑‍🏫 Instructor: Lassiter
đź”— http://cs24.stanford.edu
đź“„ Slides

CS106E: Exploring Computing

CS106E provides a broad and detailed overview of computer science. We study what’s really going on under the hood of our computer, seeing for example how CPUs actually work and what Operating Systems like MacOS and Windows actually do. We’ll explore the protocols underlying the Internet and the languages used on the Web. We’ll cover Cloud Computing, Artificial Intelligence, and Machine Learning. We’ll take a look at methods hackers use to attack computers and then we’ll turn around and see what sort of defenses we can use to stay safe online. We’ll study Big Data and see how technology opens some very scary doors when it comes to Privacy.
CS106E will be of interest to anyone who wants to understand how computers and the Internet really work.

  • If you want to understand how your consumer electronics work, want to know whether you should spring that extra money for the more expensive multicore processor or GPU, want to understand what "4K HDR TV" really means, or want a better understanding of how digital music, digital cameras, and digital images work, this is your class.
  • If you want a strong background that will allow you to understand technology issues that appear in the news — what net neutrality really means, how the latest computer hacking attack really happened, what the implications of Smart Houses are, or how a driverless car worked (or didn’t work) — this is your class.
  • If you want a depth of understanding that will allow you to communicate with tech people in a company or organization, again this class will be invaluable.
  • If you want to be confident at a cocktail party in Silicon Valley, this is your class.

🧑‍🏫 Instructor: Patrick Young
đź”— https://web.stanford.edu/class/cs106e/
đź“„ File Not Found

Programming

CS41: The Python Programming Language

The fundamentals and contemporary usage of the Python programming language. Primary focus on developing best practices in writing Python and exploring the extensible and unique parts of Python that make it such a powerful language.

🧑‍🏫 Instructor: Parth Sarin and Michael Cooper
đź”— https://stanfordpython.com/#/
đź“„ File Not Found

CS106A: Programming Methodology

🧑‍🏫 Instructor: Sahami, Mehran
đź”— http://web.stanford.edu/class/cs106a/
đź“„ File Not Found

CS106B: Programming Abstractions

🧑‍🏫 Instructor: cgregg
đź”— http://web.stanford.edu/class/cs106b/
đź“„ File Not Found

CS106L: Standard C++ Programming Laboratory

CS 106L is a companion class to CS106B/CS106X that explores the modern C++ language in depth. We'll cover some of the most exciting features of C++, including modern patterns that give it beauty and power.

👩‍🏫 Instructor: Ethan Chi
đź”— http://web.stanford.edu/class/cs106l/lectures.html
đź“„ Slides

CS106M: Enrichment Adventures in Programming Abstractions

🧑‍🏫 Instructor:
đź”— https://web.stanford.edu/class/cs106m/syllabus
đź“„ File Not Found

CS108: Object-Oriented Systems Design

The course objectives are as follows:

  • To substantially strengthen students’ programming ability by requiring them to program a number of large, interesting projects.
  • To teach students to find information on their own and solve problems on their own using available documentation; to give them the confidence in their own abilities they will need when programming in industry or as grad students.
  • To solidify students understanding of object-oriented principles.
  • To provide exposure to a broad range of programming areas including multi- threaded programs, communication between processes, and interacting with databases.
  • To provide team programming experience.

🧑‍🏫 Instructor: Dr. Patrick Young
đź”— http://web.stanford.edu/class/cs108/
đź“„ Syllabus

CS151: Logic Programming

CS242: Programming Languages

Mobile

CS47: Cross-Platform Mobile Development

This course teaches the fundamentals of cross-platform mobile application development with a focus on the React Native framework (RN). The goal is to help students develop best practices in creating apps for both iOS and Android by using Javascript and existing web + mobile development paradigms. Students will explore the unique aspects that made RN a primary tool for mobile development within Facebook, Instagram, Walmart, Tesla, and UberEats.

🧑‍🏫 Instructor: Abdallah Abuhashem, Claire Rosenfeld and Ryan Chen
đź”— https://web.stanford.edu/class/cs47/#schedule
đź“„ Slides

Systems

CS107: Computer Organization and Systems

🧑‍🏫 Instructor: Andrew Benson
đź”— http://web.stanford.edu/class/cs107/
đź“„ Slides

CS107E: Computer Systems from the Ground Up

🧑‍🏫 Instructor: cs107e
đź”— http://web.stanford.edu/class/cs107e/
đź“„ Slides

CS110: Principles of Computer Systems

👩‍🏫 Instructor: Roz Cyrus
đź”— http://web.stanford.edu/class/cs110/
đź“„ Books

CS110L: Safety in Systems Programming

This class is focused on safety and robustness in systems programming: Where do things often go wrong in computer systems? How can we avoid common pitfalls?

🧑‍🏫 Instructor: Ryan Eberhardt and Julio Ballista
đź”— https://web.stanford.edu/class/cs110l/
đź“„ Books, Lectures

CS111: Operating Systems Principles

This class introduces the basic facilities provided by modern operating systems. The course divides into three major sections. The first part of the course discusses concurrency: how to manage multiple tasks that execute at the same time and share resources. Topics in this section include processes and threads, context switching, synchronization, scheduling, and deadlock. The second part of the course addresses the problem of memory management; it will cover topics such as linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging. The third major part of the course concerns file systems, including topics such as storage devices, disk management and scheduling, directories, protection, and crash recovery. After these three major topics, the class will conclude with a few smaller topics such as virtual machines.

🧑‍🏫 Instructor: John Ousterhout and David Mazières
đź”— https://web.stanford.edu/~ouster/cs111-spring21/
đź“„ Books, Lectures

CS140: Operating Systems

CS140E: Embedded Operating Systems

CS143: Compilers

CS149: Parallel Computing

Math

CS109: Probability for Computer Scientists

CS109: Probability for Computer Scientists starts by providing a fundamental grounding in combinatorics, and then quickly moves into the basics of probability theory. We will then cover many essential concepts in probability theory, including particular probability distributions, properties of probabilities, and mathematical tools for analyzing probabilities. Finally, the last third of the class will focus on data analysis and machine learning as a means for seeing direct applications of probability in this exciting and quickly growing subfield of computer science.

🧑‍🏫 Instructor: Jerry Cain
đź”— http://web.stanford.edu/class/cs109/
đź“„ Books

CS239: Advanced Topics in Operating Systems

CS243: Program Analysis and Optimization

Artificial Intelligence

CS124: From Languages to Information

CS129: Applied Machine Learning

CS221: Artificial Intelligence: Principles & Techniques

CS224N: Natural Language Processing with Deep Learning

CS224S: Spoken Language Processing

CS224W: Machine Learning with Graphs

CS228: Probabilistic Graphical Models

CS229: Machine Learning

CS230: Deep Learning

CS231N: Convolutional Neural Networks for Visual Recognition

CS234: Reinforcement Learning

CS236G: Generative Adversarial Networks

CS231A: Computer Vision: 3D Reconstruction to Recognition

CS238: Decision Making under Uncertainty

CS329S: Machine Learning Systems Design

CS330: Deep Multi-Task and Meta Learning

Big Data

CS246: Mining Massive Datasets

Vision

CS131: Computer Vision: Foundations and Applications

Web-apps

CS142: Web Applications

Networking

CS144: Introduction to Computer Networking

Databases

CS145: Data Management and Data Systems

CS245: Principles of Data-Intensive Systems

HCI

CS147: Introduction to Human-Computer Interaction

Graphics

CS148: Introduction to Computer Graphics and Imaging

CS223: Geometric and Topological Data Analysis

CS248: Interactive Computer Graphics

CS348I: Computer Graphics in the Era of AI

CS348A: Computer Graphics: Geometric Modeling/Processing

CS348B: Image Synthesis Techniques

CS348C: Computer Graphics: Animation and Simulation

CS348K: Visual Computing Systems

CS448B: Visualization

CS468: Non-Euclidean Methods in Machine Learning

Theory

CS154: Introduction to the Theory of Computation

CS157: Computational Logic

CS254: Computational Complexity

CS254B: Computational Complexity II

CS265: Randomized Algorithms and Probabilistic Analysis

Security

CS155: Computer and Network Security

CS255: Introduction to Cryptography

CS355: Topics in Cryptography

CS356: Topics in Computer and Network Security

Algorithms

CS161: Desgin and Analysis of Algorithms

CS166: Data Structures

CS205L: Continuous Mathematical Methods with an Emphases on ML

CS261: Optimization and Algorithmic Paradigm

Ethics

CS182: Ethics, Public Policy, and Technological Change

Application

CS193U: Video Game Development in C++ and Unreal Engine

CS193P: iOS Application Development

CS194A: Android Programming Workshop

CS273A: The Human Genome Source Code

CS275: Translational Bioinformatics

CS279: Computational Biology: Structure and Organization of Biomolecules and Cells

CS349F: Technologies for Financial Systems

Law

CS202: Law for Computer Science Professionals

CS204: Computational Law

CS209: Law, Bias & Algorithms

Robotics

CS223A: Introduction to Robotics

CS225A: Experimental Robotics

CS237B: Principles of Robot Autonomy II

CS326: Topics in Advanced Robotic Manipulation

Blockchain

CS251: Cryptocurrencies and Blockchain Technologies

Music

CS476A: Music, Computing, and Design: The Art of Design

Others

CS269L: Incentives in Computer Science

CS278: Social Computing

Releases

No releases published

Packages

No packages published