Code Monkey home page Code Monkey logo

cs-courses's Introduction

cs-courses

Hi:wave:

This is a repo for cs-courses.

A collection of exercises in many cs-courses I have learned. Every course is organized as a git submodule. You may click on the links below, which will bring you to the real repo.

⚠️ WARNING: This repo is only for self-learning purpose, please DON'T PLAGIARIZE MY WORK and CHEAT IN THE CLASS.

Notations

πŸŽ₯ - Lecture videos available

🏷 - PPT/Notes/Reading available

⌨️ - Assignments/Homework/Projects available (coding rather than writing)

βš™οΈ - Autograde for assignments/homework/projects available

Finished

By clicking the hyperlinks, you can jump into another repo that contains my solutions.

CS tools

Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools.

Topics: command-line; text editor; version control systems

Programming

An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. The course exposes students to programming paradigms, including functional, object-oriented, and declarative approaches. It includes an introduction to the asymptotic analysis of algorithms. There are several significant programming projects.

Topics: procedural abstraction; control abstraction using recursion; higher-order functions; generators; streams; data abstraction; language abstraction

This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language β€œfits together” to make you more effective programming in any language -- and in learning new ones. It will give you a framework for understanding how to use language constructs effectively and how to design correct and elegant programs. By using different languages, you will learn to think more deeply than in terms of the particular syntax of one language. The emphasis on functional programming is essential for learning how to write robust, reusable, composable, and elegant programs. Indeed, many of the most important ideas in modern languages have their roots in functional programming.

Topics: SML; Racket; Ruby; functional programming; higher-order functions; pattern-matching; delayed evaluation; macros; object-oriented programming; generics; subtype; bounded polymorphism

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? We will use the Rust programming language as a vehicle to teach mental models and paradigms that have been shown to be helpful in preventing errors, and we will look at how these features have made their way back into C++.

Topics: error handling; memory safety; basic and intermediate rust programming; smart pointers; information security; scalability and availability.

In this course, we will cover what makes Rust so unique and apply it to practical systems programming problems.

Topics: traits and generics; memory safety; move semantics; borrowing; lifetimes; rich macro system; closures; concurrency.

Data structure and algorithms

  • 6.006. Introduction to algorithms in OCW πŸŽ₯🏷 - πŸ“…Spring-2020

This is an introductory course covering elementary data structures (dynamic arrays, heaps, balanced binary search trees, hash tables) and algorithmic approaches to solve classical problems (sorting, graph searching, dynamic programming). Introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. Emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.

Topics: sorting; binary tree; binary heaps; bread-first search; depth-first search; single source shortest path; all pairs shortest path; dynamic programming

Data Science

This intermediate level class bridges between Data 8 and upper division computer science and statistics courses as well as methods courses in other fields. In this class, we explore key areas of data science including question formulation.

Topics: data collection and cleaning; visualization; statistical inference; predictive modeling; and decision making

Deep Learning

This beginner-friendly program will teach you the fundamentals of machine learning and how to use these techniques to build real-world AI applications. By the end of this Specialization, you will have mastered key concepts and gained the practical know-how to quickly and powerfully apply machine learning to challenging real-world problems.

Topics: supervised learning; unsupervised learning; reinforcement leanring; linear regression; linear classification; back-propagation; decision trees

Complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling social, technological, and biological systems. This course focuses on the computational, algorithmic, and modeling challenges specific to the analysis of massive graphs. By means of studying the underlying graph structure and its features, students are introduced to machine learning techniques and data mining tools apt to reveal insights on a variety of networks.

Topics: representation learning and Graph Neural Networks; algorithms for the World Wide Web; reasoning over Knowledge Graphs; influence maximization; disease outbreak detection; social network analysis.

The goal of this course is to provide students an understanding and overview of the β€œfull stack” of deep learning systems, ranging from the high-level modeling design of modern deep learning systems, to the basic implementation of automatic differentiation tools, to the underlying device-level implementation of efficient algorithms. Throughout the course, students will design and build from scratch a complete deep learning library, capable of efficient GPU-based operations, automatic differentiation of all implemented functions, and the necessary modules to support parameterized layers, loss functions, data loaders, and optimizers.

Topics: automatic differentiation; CNN implementation; RNN/LSTM implementation; various modules/operators implementation

Course Map

mindmap
CS
  Tools
    MS)Missing-semester(
  Basic Programming
    CS61A)"`CS61A`"(
    Rust
      CS100L)"`CS100L`"(
      CIS198)"`CIS198`"(
  Programming Languages
    pl)"`Programming Languages (Coursera)`"(
  Data Structure and Algorithms
    6.006)"`MIT 6.006`"(
  Data Science
    Data100)"`Data100`"(
  AI
    ng)"`Machine Learning (Coursera)`"(
    CS224W)"`CS224W`"(
  MLsys
    10414)"`10-414/714`"(

cs-courses's People

Contributors

martinlwx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

fontzs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.