大学课程

Awesome CS Courses Awesome

Introduction

有很多~隐藏~宝藏躺在互联网上的大学页面内. 此列表旨在揭示那些令人敬畏的CS课程,这些课程可以免费在线提供高质量的材料,即作业,讲座,笔记,阅读和考试.

目录

Legend

  • Lecture Videos - 讲座视频
  • Lecture Notes - 阅读笔记
  • Assignments - 作业/实验室
  • Readings - 读物

Courses

Systems

  • CS 61C 计算机体系结构(机器结构)的好主意 加州大学伯克利分校 Lecture VideosLecture Notes Assignments Readings
    • 本课程涵盖的主题包括:C语言和汇编语言编程,将高级程序翻译成机器语言,计算机组织,缓存,性能测量,并行,CPU设计,仓库规模计算和相关主题.
    • Lecture Videos
    • Lecture Notes
    • Resources
    • Old Exams
  • CS 107 计算机组织与系统 斯坦福大学 Lecture Videos Assignments
    • CS107是斯坦福大学入门编程序列的第三门课程. 该课程将从C编程语言到微处理器,以解除机器的神秘感. 通过全面了解计算机系统如何执行程序和操作数据,您将成为更有效的程序员,尤其是在处理调试,性能,可移植性和健壮性问题时.
    • Lecture Videos
    • Assignments
  • CS 140 操作系统 斯坦福大学 Assignments Lecture Notes
    • 本课程介绍现代操作系统中提供的基本功能. 该课程分为三个主要部分. 课程的第一部分讨论了并发性. 本课程的第二部分讲述了内存管理的问题. 本课程的第三个主要部分涉及文件系统.
    • Lecture Notes
    • Assignments
  • 6.004 计算结构 * MIT * Assignments Lecture Notes Lecture Videos
    • 介绍数字系统架构,强调各种技术共有的结构原则. 多级实施策略; 新基元的定义(例如,门,指令,程序,过程)及其使用较低级别元素的机械化. 潜在并发性分析; 优先约束和绩效衡量; 流水线和多维系统. 指令集设计问题; 对当代软件结构的架构支持. 4工程设计要点. 6.004介绍了数字系统的工程. 从MOS晶体管开始,该课程开发了一系列构建模块逻辑门,组合和时序电路,有限状态机,计算机以及最终完整的系统. 通过一系列设计实例探索硬件和软件机制.
    • Youtube Playlist
    • Lecture Notes
    • Labs-Assignments
  • CS 162 操作系统和系统编程 加州大学伯克利分校 Lecture Videos Lecture Notes Assignments Readings
    • 本课程的目的是教授其他高级系统中出现的操作系统和操作系统概念的设计. 我们将讨论的主题包括操作系统,系统编程,网络和分布式系统以及存储系统的概念,包括多程序系统(进程,进程间通信和同步),内存分配(分段,分页),资源分配和调度,文件系统,基本网络(套接字,分层,API,可靠性),事务,安全性和隐私.
  • CS 168 互联网简介:架构和协议 加州大学伯克利分校 Lecture Notes Assignments
    • 本课程介绍了Internet架构. 我们将重点关注有助于互联网可扩展性和稳健性的概念和基本设计原则,并调查该架构中使用的各种协议和算法. 主题包括分层,寻址,域内路由,域间路由,可靠传递,拥塞控制以及核心协议(例如,TCP,UDP,IP,DNS和HTTP)和网络技术(例如,以太网,无线).
    • Lecture Notes & Assignments
    • Discussion Notes
  • CS 179 GPU编程 * Caltech * Assignments Lecture Notes
    • 本课程将介绍GPU的编程技巧. 该课程将介绍NVIDIA的并行计算语言CUDA. 除了涵盖CUDA编程模型和语法之外,本课程还将讨论GPU架构,GPU上的高性能计算,并行算法,CUDA库以及GPU计算应用.
    • Assignments
    • Lecture Notes
  • CS 186 数据库系统简介 加州大学伯克利分校 Lecture Videos Assignments Readings Lecture Notes
    • 在CS186的项目分配中,您将编写一个名为SimpleDB的基本数据库管理系统. 对于这个项目,您将专注于实现访问磁盘上存储数据所需的核心模块; 在将来的项目中,您将添加对各种查询处理运算符以及事务,锁定和并发查询的支持.
    • Lecture Videos
    • Lecture Notes
    • Projects
  • CS 241 系统编程(2016年春季) *伊利诺伊大学,Urbana-Champaign * Assignments Lecture Notes
    • 系统编程是指编写代码,使操作系统的任务优势支持程序员. 本课程旨在向您介绍系统编程. 在本课程结束时,您应该精通编写充分利用操作系统支持的程序. 具体来说,我们需要修复一个操作系统,我们需要选择一种编程语言来编写程序. 我们选择在Linux / UNIX操作系统上运行的C语言(它实现了程序员和操作系统之间的POSIX标准接口).
    • Assignments
    • Labs
    • Github Page
    • Crowd Sourced Book
  • CS 425 分布式系统 *伊利诺伊大学,Urbana-Champaign * Assignments Readings
    • 精彩的讲座和阅读材料,涵盖分布式系统中的基本概念,如矢量时钟,共识和Paxos. 这是Indranil Gupta教授的2016版.
    • Lectures
    • Assignments
  • CS 452 实时编程 滑铁卢大学 Assignments Lecture Notes
    • 在C中编写实时OS微内核,以及应用程序代码,以响应实时传感器信息操作模型序列集. 与列车组的通信以2400波特运行,因此向所有传感器询问有关列车可能位置的数据大约需要61毫秒. 这使得它特别具有挑战性,因为火车在那段时间内可以移动大约3厘米. 滑铁卢大学最具挑战性和最耗时的课程之一.
    • Assignments
    • Lecture notes
  • CS 2043 Unix Tools&Scripting 康奈尔大学 Assignments Lecture NotesReadings
    • 类似UNIX的系统越来越多地用于个人计算机,移动电话,Web服务器和许多其他系统. 它们代表了一个美妙的编程环境家族,对计算机科学家和许多其他领域的人们都有用,例如计算生物学和计算语言学,其中数据自然地由字符串表示. 本课程提供强化培训,以培养Unix命令行工具和脚本的技能,从而实现大型和具有挑战性的计算任务的完成和自动化. 课程大纲将学生从shell基础知识和管道系统,正则表达式处理工具,shell脚本和Python中学习.
    • Syllabus
    • Lectures
    • Assignments
  • CS 3410 计算机系统组织和编程 康奈尔大学 Assignments Lecture NotesReadings
    • CS3410介绍了计算机组织,系统编程和硬件/软件接口. 主题包括指令集,计算机算术,数据路径设计,数据格式,寻址模式,内存层次结构,包括高速缓存和虚拟内存,I / O设备,基于总线的I / O系统和多核架构. 学生学习汇编语言编程并设计流水线RISC处理器.
    • Lectures
    • Assignments
  • CS 4410 操作系统 康奈尔大学 Lecture NotesReadings
    • CS 4410涵盖系统编程和介绍性操作系统设计和实现. 我们将介绍操作系统的基础知识,即结构,并发,调度,同步,内存管理,文件系统,安全性和网络. 该课程面向掌握CS3410 / ECE3140材料的本科生.
    • Syllabus
    • Lectures
  • CS 4414 Operating Systems University of Virginia Lecture Videos Assignments
    • 课程(包括)主题包括:分析过程通信和同步; 资源管理; 虚拟内存管理算法; 文件系统; 和网络和分布式系统. 本课程的主要目标是提高您构建可扩展,强大和安全的计算系统的能力. 它着重于通过理解现代计算机系统核心抽象的基础来实现这一目标.
    • Syllabus
    • Lectures
  • CS 5412 Cloud Computing Cornell University Lecture Notes Readings
    • 由该领域的一位知识分子Ken Birman教授讲授,这门课程有一套很棒的幻灯片供人们使用. 教授 book 也是一个宝石,建议作为谷歌的教程必读 Distributed System Design
    • Slides
  • CSCE 3613 操作系统 阿肯色大学(费耶特维尔) Assignments Lecture NotesReadings - 操作系统简介,包括系统结构,过程管理,存储管理,文件,分布式系统和案例研究等主题.
  • CSCI-UA.0202: Operating Systems (Undergrad) 操作系统 * NYU * Assignments Lecture Notes Readings
    • 纽约大学的操作系统课程. 这是一门基础课程,重点关注操作系统的基本思想,包括内存管理,流程调整,文件系统等. 它还包括一些推荐的阅读材料. 此外,还有一系列动手实验室材料,可帮助您轻松了解操作系统.
    • Assignments
    • Lectures
    • Old Exams
  • CSCI 360 计算机体系结构3 * CUNY Hunter College * Assignments Lecture Notes
    • 涵盖缓存设计,总线,内存层次结构,处理器外设接口和多处理器(包括GPU)的课程.
  • CSCI 493.66 UNIX系统编程(以前的UNIX工具) * CUNY Hunter College * Assignments Lecture Notes
    • 课程主要是针对UNIX API编写程序,涵盖内核接口和库的所有基本部分,包括文件,进程,终端控制,信号和线程.
  • CSCI 493.75 并行计算 纽约市立大学亨特学院 Assignments Lecture Notes
    • 本课程介绍并行算法和C和C ++中的并行编程,使用消息传递接口(MPI)和OpenMP应用程序编程接口. 它还包括对并行体系结构和互连网络的简要介绍. 它既具有理论性又实用性,包括设计方法,性能分析和数学概念的材料,以及使用MPI和OpenMP进行编程的细节.
  • Hack the Kernel 操作系统简介 纽约州布法罗市纽约州立大学 Lecture Videos Assignments Lecture Notes
    • 本课程介绍操作系统的设计和实现. 我们研究操作系统是因为它们是解决困难设计问题的成熟和优雅解决方案的示例:如何安全有效地共享系统资源并提供对应用程序有用的抽象.
    • 对于处理器,内存和磁盘,我们讨论操作系统如何分配每个资源并探索相关抽象的设计和实现. 我们还建立了测试和提高系统性能的技术,并介绍了硬件虚拟化的概念. 编程任务提供了在实际开发环境中实现核心操作系统组件的实践经验. 课程由 Dr.Geoffrey Challen
    • Syllabus
    • Slides
    • Video lectures
    • Assignments
    • Old Exams
  • ECE 459 性能编程 滑铁卢大学 Lecture Notes Assignments
    • 学习分析,重新架构和实施可处理工业级输入的软件系统的技术,以及设计和构建关键软件基础架构的技术. 通过并行化,多线程,异步I / O,矢量化和GPU编程以及分布式计算来学习性能优化.
    • Lecture slides
  • PODC 分布式计算原理 * ETH-Zurich * Assignments Readings Lecture Notes
    • 探索基本的算法思想和下限技术,基本上是分布式计算的“珍珠”,在一组易于阅读的讲义中,结合完整的练习和解决方案.
    • Book
    • Assignments and Solutions
  • SPAC 并行和并发 华盛顿大学 Readings
    • 技术上不是一门课程,但是丹·格罗斯曼教授用来教授UWash二年级学生的并行性和并发性概念的材料很棒
  • 6.824 分布式系统 * MIT * Assignments Lecture Notes
    • 麻省理工学院的研究生级DS课程,专注于容错,复制和一致性,所有这些都通过Golang的实验室作业进行教学!
    • Assignments - 做吧git clone git://g.csail.mit.edu/6.824-golabs-2014 6,824
    • Readings
  • 6.828 操作系统 Assignments Lecture Notes
    • 麻省理工学院的操作系统课程侧重于操作系统设计的基础知识,包括启动,内存管理,环境,文件系统,多任务处理等. 在一系列实验作业中,您将构建JOS,一个用C编写的OS外核.
    • Assignments
    • Lectures
    • Videos 注意:这些是学生录制的2011年课程的凸轮视频. 这些视频解释了实验室和作业所需的许多概念.
  • CSEP 552 分布式系统 华盛顿大学 Lecture Videos Assignments Lecture Notes
    • CSEP552是分布式系统的研究生课程. 分布式系统已成为计算机使用方式的许多方面的核心,从Web应用程序到电子商务再到内容分发. 本课程将介绍构建分布式系统的抽象和实现技术,包括客户端服务器计算,Web,云计算,对等系统和分布式存储系统. 主题将包括远程过程调用,维护分布式状态的一致性,容错,高可用性和其他主题. 我们相信学习材料的最佳方式是构建它,将会有一系列实践编程项目.
    • Lectures 以前的会议可供观看.
  • 15-213 计算机系统(ICS)简介 卡内基梅隆大学 Lecture Videos Assignments Lecture Notes
    • ICS课程提供程序员对计算机系统如何执行程序,存储信息和通信的看法. 它使学生​​能够成为更有效的程序员,特别是在处理性能,可移植性和健壮性问题时. 它还是编译器,网络,操作系统和计算机体系结构课程的基础,需要更深入地了解系统级问题. 涵盖的主题包括:机器级代码及其生成优化编译器,性能评估和优化,计算机算术,内存组织和管理,网络技术和协议,以及支持并发计算.
    • 对于想要学习某些计算机科学的CMU来说,这是必修课程,无论你是什么专业.因为它是CMU(课程编号与CMU的邮政编码相同)!
    • Lecture Notes
    • Videos
    • Assignments
  • 15-319/619 云计算(ICS) 卡内基梅隆大学 Lecture Videos Assignments
    • 这个基于项目的在线课程侧重于跨云计算各个方面的技能构建. 我们涵盖概念主题,并通过利用公共云基础架构(Amazon Web Services(AWS),Microsoft Azure和Google Cloud Platform(GCP))的项目提供实践经验. 云计算服务的采用在各种组织和许多领域中不断增长. 简单地说,云计算是通过网络将计算作为服务的交付,其中分布式资源和服务由最终用户作为实用程序租用而不是拥有.
    • 对于项目,学生将使用Amazon Web Services,Microsoft Azure和Google Cloud Platform,使用它们租用和配置计算资源,然后编程和部署在这些资源上运行的应用程序. 学生将开发和评估虚拟机(VM)和容器扩展,弹性和负载平衡解决方案. 此外,学生将使用云存储系统,并学习使用批处理,迭代和流处理框架开发不同的应用程序. 15-619名学生将需要完成一个额外的项目,该项目需要设计和实施一个完整的Web服务解决方案来查询大数据. 对于额外项目,学生团队将根据其Web服务的成本和性能进行评估.
    • Lecture Notes
    • Videos
  • 15-418 并行计算机体系结构和编程 卡内基梅隆大学 Lecture Videos Assignments Lecture Notes Readings
    • 本课程的目标是深入理解设计现代并行计算系统所涉及的基本原理和工程权衡,以及教授有效利用这些机器所必需的并行编程技术. 因为编写好的并行程序需要了解关键机器性能特性,所以本课程将涵盖并行硬件和软件设计.
    • Assignments
    • Lecture Notes
    • Lecture Videos
    • Readings
  • 15-440 分布式系统 卡内基梅隆大学 Assignments Lecture Notes
    • 介绍分布式系统,重点是通过Go编程语言实现的项目教授概念.
    • Assignments
  • 15-721 数据库系统 卡内基梅隆大学 Lecture Videos Assignments Readings
    • 本课程是对现代数据库管理系统内部的全面研究. 它将涵盖高性能事务处理系统(OLTP)和大规模分析系统(OLAP)中使用的组件的核心概念和基础知识. 该课程将强调这些想法的实施效率和正确性. 所有类项目都将在真实的内存中,多核数据库系统的上下文中. 该课程适用于软件系统的研究生和具有强大系统编程技能的高级本科生.
    • Assignments
    • Lecture Videos
    • Readings
  • 15-445/645 数据库系统 卡内基梅隆大学 Lecture Videos Assignments Readings
  • 15-749 工程分布式系统 卡内基梅隆大学 Readings
    • 一个关于分布式系统的项目重点课程,有一个很棒的读数列表
    • Readings
  • 18-447 计算机体系结构简介 * CMU * Lecture Videos Assignments Readings
    • 非常全面的计算机体系结构材料 - 绝对不仅仅是“介绍”. 在线资料非常人性化,即使是在线提供的朗诵视频. 这是教授的Spring'15版本. Onur Mutlu
    • Lectures and Recitation
    • Homeworks 7个具有答案设置的HW
    • Readings

Programming Languages / Compilers

  • CS 75 编译器设计原理 * Swathmore College * Lecture Videos Assignments Lecture Notes
  • CS 91 Introduction to Programming Languages Swathmore College Lecture Notes Assignments
    • 使用 Pyret 编程语言 PAPL 本书旨在了解编程语言的基础知识.
    • Labs
  • CIS 194 Haskell简介 * Penn Engineering * Assignments Lecture Notes
    • 使用Haskell作为载体,探索函数式编程的乐趣. 本课程的目的是让您使用Haskell轻松方便地编写实用程序.
    • Previous 学期也可用,有更多的练习
  • CIS 198 Rust编程 * UPenn * Lecture Notes Assignments
    • 本课程介绍了Rust如此独特的原因,并将其应用于实际的系统编程问题. 涵盖的主题包括特征和泛型; 记忆安全(移动语义,借用和生命周期); Rust丰富的宏观系统; 关闭; 和并发.
    • Assignments
  • Clojure 使用Clojure进行功能编程 赫尔辛基大学 Assignments
    • The course is an introduction to functional programming with a dynamically typed language Clojure. We start with an introduction to Clojure; its syntax and development environment. Clojure has a good selection of data structures and we cover most of them. We also go through the basics of recursion and higher-order functions. The course material is in English.
    • Github Page
  • CMSC 430 编译器简介 马里兰大学 Assignments Lecture Notes
    • CMSC 430的目标是使学生能够设计,实现和扩展编程语言. 在整个课程中,学生将设计和实现几种相关语言,并将探索解析,语法查询,数据流分析,编译到字节码,类型系统和语言互操作.
    • Lecture Notes
    • Assignments
  • COS 326 功能编程 普林斯顿大学 Assignments Lecture Notes
    • 使用OCaml编程语言涵盖函数编程概念,如闭包,尾调用递归和并行
    • Lectures
    • Assignments
  • CS 143 编译器构建 斯坦福大学 Lecture NotesAssignments
  • CS 164 破解你的语言! 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes
  • CS 173 编程语言 布朗大学 Lecture Videos Assignments
    • Krishnamurthi教授的课程(作者) HtDP)和其他许多 awesome books 关于编程语言. 使用定制设计 Pyret 编程语言教授概念. 有一个 online class 在2012年举办,其中包括所有讲座视频供您欣赏.
    • Videos
    • Assignments
  • CS 223 纯粹的功能数据结构在榆树 芝加哥大学 Assignments Lecture Notes
    • 本课程基于Chris Okazaki的书和使用Elm编程语言教授功能反应式编程和纯功能数据结构.
    • Lectures
    • Assignments
  • CS 240h 哈斯克尔的功能系统 斯坦福大学 Assignments Lecture Notes
  • CS 421 编程语言和编译器 *伊利诺伊大学,Urbana-Champaign * Lecture Videos Assignments Lecture Notes 使用OCaml教授函数式编程和编程语言设计的课程.
  • CS 3110 数据结构和功能编程 康奈尔大学 Assignments Lecture Notes
  • CS 4120 编译器简介 康奈尔大学 Assignments Lecture NotesReadings
    • 介绍现代编译器的规范和实现. 涵盖的主题包括词法扫描,解析,类型检查,代码生成和转换,优化简介以及现代编程语言的编译时和运行时支持. 作为课程的一部分,学生为面向对象语言构建了一个可用的编译器.
    • Syllabus
    • Lectures
    • Assignments
  • CS 4400 编程语言 东北大学 Assignments Lecture Notes Readings
    • 这是一门关于编程语言的学习,设计和实现的课程.
    • 该课程同时在两个级别上工作:首先,我们将使用可以演示各种编程范例的编程语言. 其次,使用这种语言,我们将通过实现我们自己的语言来学习编程语言背后的机制. 两级方法通常意味着我们经常会看到如何使用某个功能,并继续实施它.
    • Syllabus
    • Lecture Notes/Resources
  • CS 4610 编程语言和编译器 弗吉尼亚大学 Assignments Lecture Notes
    • 使用OCaml教授函数式编程和编程语言设计的课程. 每个赋值都是类似于Java的面向对象语言的解释器和编译器的一部分,并且您需要为每个赋值使用不同的语言(即,从Python,JS,OCaml,Haskell,Ruby中选择4).
    • Lecture Notes
    • Assignments
  • CS 5114 网络编程语言 康奈尔大学 Lecture NotesReadings
    • 本课程介绍用于编程计算机网络的语言. 它将检查基于逻辑,功能和分布式语言的最新提议,以及使用自动求解器,模型检查器和证明助手建立正确性的工具.
    • Syllabus
    • Lectures
  • CS 5142 脚本语言 康奈尔大学 Lecture NotesAssignments
    • Perl,PHP,JavaScript,VisualBasic - 他们经常被要求就业技能,但我们大多数人没有时间去了解他们的全部内容. 在本课程中,您将学习如何使用脚本语言进行快速原型设计,Web编程,数据处理和应用程序扩展. 除了涵盖适用于脚本(例如,动态类型和范围)的传统编程语言概念之外,本课程还将介绍传统语言中很少出现的新概念(例如,字符串插值,散列和多语言代码). 通过一系列小项目,您可以使用不同的语言来实现编程任务,突出脚本的优点和缺点. 作为一个副作用,你练习自己教新语言.
    • Syllabus
    • Lectures
    • Assignments
  • CS 5470 编译器 犹他大学 Assignments Lecture Notes Readings
    • 如果你是马特教授写他的作品的粉丝 fantastic blog 你应该试一试. 本课程涵盖编译器的设计和实现,并探讨相关主题,如解释器,虚拟机和运行时系统. 除了教授诙谐的承担 cheating 该页面有很多关于编程语言,解析和编译器的有趣链接.
    • Lecture Notes
    • Projects
  • CS 6118 类型和语义 康奈尔大学 Lecture NotesReadings
    • 类型和语义是关于设计和理解编程语言,无论它们是特定于域还是通用. 本课程的目标是提供各种工具,用于为任何即将完成的任务设计自定义(编程)语言. 其中一部分将是关于语言如何工作的各种见解以及与学术界和行业合作创建锡兰和科特林等新语言的经验. 该课程侧重于类型和语义以及它们之间的相互作用. 这意味着类别理论和建设性类型理论(例如Coq和更丰富的变体)是该类的辅助主题. 该课程还涵盖了非传统的语义域,如经典线性类型理论,以便既能打破传统思维的学生,又能提供能够形成网络协议,资源敏感计算和并发结构等思想形式化的强大目标. 课程项目是为了学生选择而设计和规范(编程)语言,并且作业旨在确保学生有机会练习应用课堂上学到的技巧,然后在课堂项目中达到这些技能.
    • Syllabus
    • Lectures
  • CSC 253 CPython内部:通过Python解释器源代码进行10小时的代码遍历 罗切斯特大学 Lecture VideosReadings
  • 九个讲座,穿过CPython的内部,这是一个用C实现的规范Python解释器.它们来自于2014年秋季在罗切斯特大学教授的动态语言和软件开发课程.
  • CSE 341 编程语言 华盛顿大学 Lecture Videos Assignments Lecture Notes
  • CSE P 501 编译器构建 华盛顿大学 Lecture Videos Assignments
    • 教授理解现代编译器的结构以及用于将代码从高级语言转换为机器语言的主要算法. 实现这一目标的最佳方法是实际构建一个有效的编译器,因此将有一个重要的项目来实现一个将Java核心子集编写的程序转换为可执行的x86汇编语言的项目. 编译器本身将使用扫描程序和解析器生成器工具,默认实现语言是Java.
    • Lectures
    • Assignments, Tests, and Solutions
  • DMFP 离散数学和函数式编程 惠顿学院 Lecture Videos Assignments
  • 通过函数式编程教授离散数学概念的课程
  • Lecture Videos
  • Assignments
  • PCPP 实用的并行和并行编程 哥本哈根大学 Lecture NotesAssignmentsReadings
  • 在本MSc课程中,您将学习如何在标准共享内存多核硬件上编写正确有效的并发和并行软件,主要使用Java.
  • 课程涵盖了线程,锁和共享内存等基本机制,以及更高级的机制,如批量数据的并行流,事务内存,消息传递和带有比较和交换的无锁数据结构.
  • 它涵盖了原子性,安全性,活跃性和死锁等概念.
  • 它涵盖了如何衡量和理解并行程序的性能和可伸缩性.
  • 它介绍了在并发程序中查找错误的工具和方法.
  • 6.945 高级符号编程中的冒险 * MIT * Lecture NotesAssignmentsReadings
    • 由SICP成名的Gerald Sussman讲授,本课程涉及设计的概念和技术,大型软件系统的实现,可以适应设计师未预料到的用途. 应用程序包括编译器,计算机代数系统,演绎系统和一些人工智能应用程序.
    • Assignments :使用MIT / GNU Scheme进行广泛的编程任务. 学生应该在Scheme,Common Lisp,Haskell,CAML或其他“功能”语言方面拥有丰富的编程经验.
    • Readings
  • CS 696 功能设计和编程 圣地亚哥州立大学 Lecture NotesAssignmentsReadings
    • 使用Clojure涵盖函数式编程基础.
    • 主题包括测试,函数编程,不可变集合和并发.
    • 还包括涵盖Clojurescript的作业, Reagent 等等
  • L28 高级功能编程 剑桥大学 Lecture NotesAssignmentsReadings
    • 本单元旨在教授学生如何使用现代类型函数编程语言(如OCaml,Haskell)的特性来设计和实现库和DSL. 它旨在说明这些技术如何提高正确性和效率. 希望学习该模块的学生应该具有一些类型化函数编程语言的经验和对类型推理的理解.
    • 这个特别的会议由一位着名的OCaml程序员,开源贡献者和现实世界OCaml的作者Anil Madhavapeddy博士讲授.

Algorithms

  • CS 61B 数据结构 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes Readings
    • 在本课程中,您将学习高级编程技术,包括数据结构,封装,抽象数据类型,接口以及用于排序和搜索的算法,您将体验“软件工程” - 大型程序的设计和实现.
    • Full Lecture Materials 2016年春季讲座.该网站包含完整的matrials,包括视频链接,实验室,家庭作业,项目. 非常适合自学者. 也是Java的一个良好开端. 它包括一些其他有用的资源,用于Java文档,数据结构资源,Git / GitHub和Java开发资源. Resources
    • Labs 实验室和项目的链接包含在网站中.
    • Lecture Videos
  • CS 97SI 竞赛规划简介 斯坦福大学 Assignments Lecture Notes
    • 为有兴趣参加ACM-ICPC的学生提供各种主题的理论和实践问题的神奇知识库.
    • Lectures and Assignments
  • CS 224 高级算法 哈佛大学 Lecture Videos Assignments Lecture Notes
    • CS 224是算法设计的高级课程,我们将讨论的主题包括RAM模型,数据结构,摊销,在线算法,线性规划,半定规划,近似算法,散列,随机算法,快速指数时间算法,图算法和计算几何.
    • Lecture Videos (Youtube)
    • Assignments
  • CS 261 算法的第二个课程 斯坦福大学 Lecture Videos Assignments Lecture Notes
    • 网络优化算法:最大流量,最小成本流量,匹配,分配和最小割问题. 线性编程简介. 使用LP对偶性来设计和分析算法. NP完全问题的近似算法,例如Steiner树,旅行推销员和调度问题. 随机算法. 在线算法简介.
    • Lecture Notes, Videos & Assignments (Youtube)
  • CS 473/573 基本算法 *伊利诺伊大学,Urbana-Champaign * Assignments Lecture Notes
    • 算法类,包括递归,随机化,摊销,图算法,网络流和硬度. Erikson教授的讲义非常全面,可以自己成为一本书. 强烈推荐!
    • Lecture Notes
    • Labs and Exams
  • CS 2150 计划和数据表示 弗吉尼亚大学 Assignments Lecture Notes
    • 此数据结构课程介绍C ++,链接列表,堆栈,队列,树,数字表示,哈希表,优先级队列,堆,霍夫曼编码,图形和x86汇编.
    • Lectures
    • Assignments
  • CS 4820 算法分析介绍 康奈尔大学 Assignments Lecture Notes Readings
    • 本课程开发用于算法设计和分析的技术,重点是计算应用中出现的问题. 示例应用程序来自系统和网络,人工智能,计算机视觉,数据挖掘和计算生物学. 本课程包括四种主要的算法设计技术(贪婪算法,分而治之,动态编程和网络流程),侧重于不确定性的可计算性理论,侧重于NP完全性的计算复杂性,以及针对难处理问题的算法技术,包括结构化特殊的识别案例,近似算法和局部搜索启发式.
    • Lectures
    • Syllabus
  • CSCI 104 数据结构和面向对象设计 Assignments Lecture Notes 南加州大学(USC)
  • CSCI 135 软件设计与分析I Assignments Lecture Notes CUNY Hunter College
    • 目前是对程序开发和解决问题的密集介绍. 它的重点是设计,实施和评估小规模计划的过程. 它不应该是一门C ++编程课程,尽管课程的大部分内容都花在了C ++的细节上. C ++是一种非常庞大且复杂的编程语言,其中许多功能以意想不到的方式进行交互. 人们不需要知道甚至一半的语言就能很好地使用它.
    • Lectures and Assignments
  • CSCI 235 软件设计与分析II * CUNY Hunter College * Assignments Lecture Notes
    • 介绍一些常见问题的算法,例如排序. 实际上,它通过递归,指针和异常处理等主题进一步提高了学生的编程技能,并提供了提高软件工程技能的机会,并为学生提供了更高效的编程实践经验.
    • Lectures and Assignments
  • CSCI 335 软件设计和分析III Assignments Lecture Notes CUNY Hunter College
    • 这包括引入哈希,堆,各种形式的树和图表. 它还从比前传中提出的更高的角度重新审视了递归和排序问题. 最重要的是,它旨在介绍算法分析的方法.
    • Lectures and Assignments
  • CSE 331 软件设计和实施 华盛顿大学 Assignments Lecture Notes
    • 探索用现代高级语言设计和构建可靠和可维护软件系统的概念和技术; 程序结构和设计; 程序正确性方法,包括测试.
    • Lectures, Assignments, and Exams
  • CSE 373 算法分析 石溪大学 Lecture Videos Assignments Lecture Notes Readings
  • ECS 122A 算法设计和分析 加州大学戴维斯分校 Lecture Videos Assignments Lecture Notes
    • 教导 Dan Gusfield 在2010年,本课程是算法设计和分析的本科入门. 它具有传统主题,例如Big Oh表示法,以及实现特定算法的重要性. 还有特色是排序(线性时间),图形算法,深度优先搜索,字符串匹配,动态编程,NP完全性,近似和随机化.
    • Syllabus
    • Lecture Videos
    • Assignments
  • ECS 222A Graduate Level Algorithm Design and Analysis UC Davis Lecture Videos Assignments Lecture Notes
    • 这是ECS 122A本科算法课程的研究生水平补充 Dan Gusfield 它假定已经在算法中采用了本科课程,并且在学习一些本科算法主题的同时,更多地关注日益复杂和先进的算法.
    • Lecture Videos
    • Syllabus
    • Assignments
  • 6.INT 黑客谷歌面试 * MIT * Readings
    • 2009年麻省理工学院独立活动期间讲授的这门课程针对苹果,谷歌和Facebook等高度选择性公司的软件工程师访谈的常见访谈问题. 它们涵盖了时间复杂度,哈希表,二进制搜索树以及您应该已经在不同课程中介绍过的其他常见算法主题,但更深入地介绍了您在课堂上无法学习的内容 - 如按位逻辑和解决问题的技巧.
    • Handouts
    • Topics Covered
  • 6.006 算法简介 * MIT * Lecture VideosAssignments Readings
    • 本课程介绍计算问题的数学建模. 它涵盖了用于解决这些问题的常用算法,算法范例和数据结构. 该课程强调算法和编程之间的关系,并介绍这些问题的基本性能测量和分析技术.
    • Lecture Videos
    • Assignments
    • Readings
    • Resources
    • Old Exams
  • 6.046J/18.410J 算法的设计和分析 * MIT * Lecture VideosLecture Notes Assignments Readings
    • 这是一门中级算法课程,重点是高效算法设计和分析的教学技巧,强调应用方法. 主题包括分而治之,随机化,动态编程,贪婪算法,增量改进,复杂性和加密. 本课程假设学生知道如何分析简单的算法和数据结构 6.006 . 它向学生介绍了计算机算法的设计,以及复杂算法的分析.
    • Lecture Videos
    • Lecture Notes
    • Assignments
    • Resources
    • Old Exams
  • 6.851 高级数据结构 * MIT * Lecture Videos Assignments Lecture Notes
  • 6.854/18.415J 高级算法 * MIT * Lecture Videos Assignments Lecture Notes
    • David Karger博士的算法高级课程,内容涉及摊销,随机化,指纹识别,字级并行,比特缩放,动态编程,网络流程,线性编程,固定参数算法和近似算法等主题.
    • 注册 NB 访问 problem set and lectures.
  • 6.854J/18.415J 高级算法 * MIT * Lecture NotesAssignments Readings
    • 本课程是算法的第一年研究生课程. 重点放在算法设计,分析和实现的基本算法和高级方法上. 要涵盖的技术包括摊销,随机化,指纹识别,字级并行,比特缩放,动态编程,网络流,线性编程,固定参数算法和近似算法. 域包括字符串算法,网络优化,并行算法,计算几何,在线算法,外部存储器,缓存和流式算法以及数据结构. 几乎在计算机科学的每个领域都出现了对高效算法的需求. 但是要解决的问题类型,算法“高效”的概念,甚至计算模型在不同地区之间的差异很大.在算法的第二类中,我们将调查许多适用的技术广泛地用于高效算法的设计,并研究它们在广泛的应用领域和计算模型中的应用.目标是使课程更广泛而不是深入.我们的计划是触及以下领域.这是一个暂定的课程中可能涵盖的主题列表;我们将根据学生的背景,兴趣和进度来自适应地选择材料.
    • Lecture Videos - Spring 2016
    • Lecture Notes
    • Assignments
    • Readings
    • Resources
  • 15-451/651 算法 卡内基梅隆大学 Lecture Notes
    • 所需的算法类,深入到所有基本算法及其背后的证明. 这是此页面上较重的算法课程之一. 由Avrim Blum教授 Manuel Blum 由于他对算法的贡献而获得图灵奖. 课程链接包括Avrim Blum提供的一套非常全面的参考笔记.
  • 16s-4102 算法 弗吉尼亚大学 Lecture Videos Assignments

CS Theory

  • CIS 500 软件基础 宾夕法尼亚大学 Assignments Lecture Notes
    • 使用Coq证明助手对软件进行正式验证的介绍. 主题包括逻辑的基本概念,计算机辅助定理证明,函数编程,操作语义,Hoare逻辑和静态类型系统.
    • Lectures and Assignments
    • Textbook
  • CS 103 Mathematical Foundations of Computing Stanford University Assignments Lecture Notes
    • CS103是离散数学,可计算性理论和复杂性理论的第一门课程. 在本课程中,我们将探讨计算机能力的极限,探究为什么某些问题比其他问题更难解决,并看看如何用数学确定性推理.
    • 所有讲座笔记和作业的链接直接在课程页面上
  • CS 173 离散结构 伊利诺伊大学香槟分校 Assignments Lecture Notes Readings
    • 本课程介绍计算机科学的理论方面. 在其中,您将学习如何构建校对,读写有文化的形式数学,快速了解关键理论主题,并熟悉计算机科学中常用的一系列标准数学概念.
    • Textbook 由教授撰写. 包括教练指南.
    • Assignments
    • Exams
  • CS 276 密码学基础 加州大学伯克利分校 Lecture Notes
    • 本课程讨论了现代密码学的复杂性理论基础,并着眼于该领域的最新成果,如全同态加密,不可区分混淆,MPC等.
  • CS 278 复杂性理论 加州大学伯克利分校 Lecture Notes
    • 关于复杂性理论的研究生课程,介绍P与NP,随机性,平均情况复杂性,近似硬度等等.
  • CS 374 计算算法和模型(2014年秋季) 伊利诺伊大学厄巴纳 - 香槟分校 Lecture Videos Assignments Lecture Notes
    • CS 498第374节(非正式“CS 374”)涵盖了理论计算机科学的基本工具和技术,包括算法的设计和分析,形式语言和自动机,可计算性和复杂性. 具体主题包括常规和无上下文语言,有限状态自动机,递归算法(包括分而治之,回溯,动态编程和贪婪算法),基本图算法(包括深度和广度优先搜索,拓扑排序,最小值)生长树和最短路径),不可判定性和NP完整性. 该课程还强调明确的技术交流.
    • Assignments/Exams
    • Lecture Notes/Labs
    • Lecture videos
  • CS 3110 数据结构和功能编程 康奈尔大学 Assignments Lecture NotesReadings
    • CS 3110(原CS 312)是计算机科学课程中的第三门编程课程,遵循CS 1110/1112和CS 2110.该课程的目标是帮助学生成为能够设计和实施软件的优秀程序员和软件设计师.优雅,高效,正确,其代码可以维护和重用.
    • Syllabus
    • Lectures
    • Assignments
  • CS 3220 科学计算概论 康奈尔大学 Assignments Lecture NotesReadings
    • 在这个为期一个学期的调查课程中,我们介绍了用于求解线性和非线性方程,插值数据,计算积分和求解微分方程的数值方法,并且我们描述了在解决科学问题时如何明智地使用这些工具(我们希望!).
    • Syllabus
    • Lectures
    • Assignments
  • CS 4300 信息检索 康奈尔大学 Assignments Lecture NotesReadings
    • 研究用于在大规模系统中搜索和发现信息的方法. 重点是应用于文本材料的信息检索,但也有一些其他格式的讨论.课程包括搜索,浏览和过滤信息的技术以及分类系统和词典的使用. 这些技术通过网络搜索和数字图书馆的例子进行说明.
    • Syllabus
    • Lectures
    • Assignments
  • CS 4810 计算理论导论 康奈尔大学 Assignments Lecture Notes Readings
    • 本科课程对计算机科学的数学基础进行了广泛的介绍. 我们将研究基本的计算模型,尤其是图灵机. 目标是了解在这些模型中可以或不可以解决哪些问题.
    • Syllabus
    • Lectures
    • Assignments
  • CS 6810 计算理论 康奈尔大学 Assignments Lecture Notes Readings
    • 这个研究生课程广泛介绍复杂性理论,包括经典结果和最近的发展. 复杂性理论旨在理解有效计算的力量(当时间和空间等计算资源有限时). 在这种背景下出现了许多引人注目的概念问题 大多数这些问题(令人惊讶地?)很难解决. 尽管如此,在理解它们方面取得了很多进展(以及它们为何难以理解). 我们将在本课程中了解这些进展. 主题将是具有类似随机属性的组合结构,例如,扩展器图和纠错码. 一些例子:
      • 找到解决方案本质上比验证它更困难吗?
      • 更多的计算资源意味着更多的计算能力?
      • 找到近似解决方案比准确解决方案更容易吗?
      • 随机算法比确定性算法更强大吗?
      • 在一般情况下解决问题比在最坏情况下更容易吗?
      • 量子计算机比传统计算机更强大吗?
    • Syllabus
    • Lectures
    • Assignments
  • CSCE 3193 编程范例 阿肯色大学(费耶特维尔) Assignments Lecture Notes
    • 以不同范式编程,重点是面向对象编程,网络编程和函数编程. 调查编程语言,事件驱动编程,并发,软件验证.
    • Syllabus
    • Notes
    • Assignments
    • Practice Exams
  • 6.045 理论计算机科学的伟大构想 * MIT * Lecture Notes Lecture Videos Readings
    • 本课程对理论计算机科学的一些核心思想进行了具有挑战性的介绍. 从古代开始,课程将通过有限自动机,电路和决策树,图灵机和可计算性,有效算法和可约性,P与NP问题,NP完全性,随机性,加密和单向函数,计算学习理论和量子计算. 它检查了各种机器可以解决和不能解决的问题类别. 它试图解释影响其能力的计算模型之间的关键差异.
    • Syllabus
    • Lecture Notes
    • Lecture Videos

Introduction to CS

  • CS 10 计算的美丽和喜悦 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes
    • CS10是UCB的入门计算机科学课程,使用初学者的拖放语言进行教学. 学生将学习历史,社会影响,伟大的原则和计算的未来. 他们还学习使用友好的图形语言编程计算机的乐趣,并将完成与他们的兴趣相关的实质性团队编程项目.
    • Snap! (基于麻省理工学院的Scratch).
    • Curriculum
  • CS 50 计算机科学概论 哈佛大学 Lecture Videos Assignments Lecture Notes
    • CS50x is Harvard College's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan.
    • Lectures
    • Problem Sets
    • 课程也可以从 edX.
    • 该课程的OpenCourseware所在地 here
  • CS 61A 计算机程序的结构和解释[Python] 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes
    • 在CS 61A中,我们有兴趣教你编程,而不是如何使用一种特定的编程语言. 我们考虑一系列控制程序复杂性的技术,例如函数编程,数据抽象和面向对象编程. 掌握特定编程语言是研究这些通用技术的非常有用的副作用. 但是,我们希望,一旦你学会了编程的本质,你会发现选择一种新的编程语言只需要几天的工作.
    • Lecture Resources by Type
    • Lecture Resources by Topic
    • Additional Resources
    • Practice Problems
    • Extra Lectures
  • CS 61AS 计算机程序的结构和解释[球拍] 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes
    • CS61课程的自定进度版本,但在Racket / Scheme中. 61AS是一个很棒的入门课程,可以让您轻松学习未来CS课程所涵盖的所有惊人概念,因此请记住保持开放的心态,享受乐趣,并始终尊重数据抽象
    • Lecture Videos
    • Assignments and Notes
  • CS 101 计算机科学101 斯坦福大学 Lecture Videos Assignments Lecture Notes
    • CS101为零度先验体验的受众教授计算机科学的基本思想. 参与者使用短小的“计算机代码”进行游戏和实验,以实现计算机的强大功能和局限性.
    • 讲座视频将在注册后免费提供.
  • CS 106A 编程方法 斯坦福大学 Lecture Videos Assignments Lecture Notes
    • 本课程是最大的入门编程课程,是斯坦福大学最大的课程之一. 主题侧重于计算机应用程序工程的介绍,强调现代软件工程原理:面向对象的设计,分解,封装,抽象和测试. 编程方法学教授广泛使用的Java编程语言以及良好的软件工程原理.
    • Lecture Videos
    • Assignments
    • All materials in a zip file
  • CS 106B Programming Abstractions Stanford University Lecture Videos Assignments Lecture Notes
  • CS 107 编程范式 斯坦福大学 Lecture Videos Assignments Lecture Notes
    • 主题:C和C ++的高级内存管理功能; 命令式和面向对象范式之间的差异. 功能范例(使用LISP)和并发编程(使用C和C ++)
    • Lectures
    • Assignments
  • CS 109 使用Scala编程实践 * KAIST * Assignments Lecture Notes
    • 本课程介绍编程和计算机科学的基本概念,例如动态和静态类型,动态内存分配,对象和方法,数字的二进制表示,使用命令行中的编辑器和编译器,使用命令行中的参数运行程序,使用库,以及使用基本数据结构,如数组,列表,集合和映射. 我们将使用Scala进行本课程.
    • [Lectures] (http://otfried.org/courses/cs109/index.html)
    • [作业](http://otfried.org/courses/cs109/index.html
  • CS 1109 基本编程概念 康奈尔大学 Assignments Lecture Notes
    • This course provides an introduction to programming and problem solving using a high-level programming language. It is designed to increase your knowledge level to comfortably continue to courses CS111x. Our focus will be on generic programming concepts: variables, expressions, control structures, loops, arrays, functions, pseudocode and algorithms. You will learn how to analyze problems and convert your ideas into solutions interpretable by computers. We will use MATLAB; because it provides a productive environment, and it is widely used by all engineering communities.
    • Syllabus
    • Lectures
    • Assignments
  • CS 1110 使用Python进行计算简介 康奈尔大学 Assignments Lecture NotesReadings
    • 使用Python编程和解决问题. 强调软件开发,样式和测试的原则. 主题包括过程和函数,迭代,递归,数组和向量,字符串,过程和函数调用的操作模型,算法,异常,面向对象的编程和GUI(图形用户界面). 每周实验室在计算机上提供指导练习,工作人员在场提供帮助. 作业使用图形和图形用户界面来帮助提高流畅性和理解力.
    • Syllabus
    • Lectures
    • Assignments
  • CS 1112 Introduction to Computing Using Matlab Cornell University Assignments Lecture NotesReadings
    • 使用MATLAB编程和解决问题. 强调算法和程序的系统开发. 主题包括迭代,函数,数组和向量,字符串,递归,算法,面向对象编程和MATLAB图形. 分配旨在建立对复杂性,维度,模糊数据,不精确算术,随机性,模拟和近似作用的理解. 没有编程经验是必要的; 需要一些关于微积分的知识.
    • Syllabus
    • Lectures
    • Assignments
    • Projects
  • CS 1115 使用Matlab图形用户界面介绍计算科学与工程 康奈尔大学 Assignments Lecture NotesReadings
    • 使用MATLAB编程和解决问题. 强调算法和程序的系统开发. 主题包括迭代,函数,数组和向量,字符串,递归,算法,面向对象编程和MATLAB图形. 分配旨在建立对复杂性,维度,模糊数据,不精确算术,随机性,模拟和近似作用的理解. 没有编程经验是必要的; 需要一些关于微积分的知识.
    • Syllabus
    • Lectures
    • Projects
  • CS 1130 过渡到OO编程 康奈尔大学 Assignments Lecture NotesReadings
    • 使用Java介绍面向对象的概念. 假设使用MATLAB,C,C ++或Fortran等语言编程知识. 已经学习过Java但没有严重暴露于OO编程的学生也欢迎.
    • Syllabus
    • Lectures
    • Assignments
  • CS 1133 过渡到Python 康奈尔大学 Assignments Lecture NotesReadings
    • Python编程语言简介. 涵盖了Python的基本编程结构,包括赋值,条件,迭代,函数,面向对象设计,数组和向量化计算. 假设使用Java,Matlab,C,C ++或Fortran等语言编写知识.
    • Syllabus
    • Lectures
    • Assignments
  • CS 1410-2CS2420-20 Computer Science I 和 II for Hackers University of Utah Assignments Lecture Notes Readings
  • CS 2110 面向对象的编程和数据结构 康奈尔大学 Assignments Lecture NotesReadings
    • CS 2110是一门中级编程课程和计算机科学入门. 主题包括程序设计和开发,调试和测试,面向对象编程,正确性证明,复杂性分析,递归,常用数据结构,图算法和抽象数据类型. Java是主要的编程语言. 通过查看链接可以轻松提取课程大纲 lectures.
    • Syllabus
    • Lectures
    • Assignments
  • CS 4302 网络信息系统 康奈尔大学 Assignments Lecture NotesReadings
    • 本课程将向您介绍在万维网上构建以数据为中心的信息系统的技术,展示此类系统的实际应用,并通过研究公民科学等跨领域问题来讨论其设计及其社会和政策背景.数据新闻和开放政府. 课程作业包括讲座和阅读以及每周的家庭作业,以及一个为期一学期的项目,学生在这个项目中展示他们在构建以数据为中心的Web信息系统方面的专业知识.
    • Syllabus
    • Lectures
    • Assignments
  • CSCE 2004 编程基础I 阿肯色大学(费耶特维尔) Assignments Lecture NotesReadings
    • 为计算机科学或计算机工程专业的学生提供入门课程. 软件开发过程:问题规范,程序设计,实现,测试和文档. 编程主题:数据表示,条件和迭代语句,函数,数组,字符串,文件I / O和类. 在UNIX环境中使用C ++.
    • Syllabus
    • Notes
    • Assignments
    • Practice Exams
  • CSCI E-1 了解计算机和互联网 哈佛大学扩展学院 Lecture VideosAssignments Lecture Notes
    • 本课程的全部内容都是为了理解:了解当您打开开关时计算机内部发生了什么,为什么技术支持让您不断重新启动计算机,您在互联网上所做的一切都可以被其他人观看,以及您的计算机如何运行只是通过打开感染蠕虫. 该课程专为每天使用计算机和互联网但未完全了解其工作原理的学生而设计,填补了这一空白. 通过关于硬件,软件,互联网,多媒体,安全,隐私,网站开发,编程等的讲座,本课程“关闭”了计算机和互联网,以便学生了解它的工作原理和原因. 通过对当前事件的讨论,学生们还可以了解最新技术.
    • Lecture Videos
    • Syllabus
    • Notes / Recaps
    • Assignments
  • CS-for-all CS for All * Harvey Mudd College * Assignments Lecture Notes Readings
    • 本书(和课程)采用了独特的方法来介绍“Intro CS”.简而言之,我们的目标是将计算机科学作为一个智力丰富且充满活力的领域,而不是专注于计算机编程. 虽然编程肯定是我们方法的一个重要且普遍的元素,但我们强调概念和解决问题而不是语法和编程语言特性.
    • Lectures and Other resources
  • 6.001 计算机程序的结构和解释 * MIT * Lecture Videos Assignments Lecture Notes
    • 使用Scheme编程语言教授大图计算概念. 学生将使用各种不同的编程范例(功能,面向对象,逻辑)来实现程序. 重点强调函数组合,代码作为数据,控制抽象和连续,以及通过宏进行语法抽象. 如果您希望构建一个可以悬挂您的编程知识的心理框架,那么这是一个很好的课程.
    • Lectures
    • Textbook (epub, pdf)
    • IDE
  • 6.005 软件构建,2016年秋季 Assignments Lecture Notes
    • 本课程介绍软件开发的基本原理和技术. 学生将学习如何编写安全的软件,易于理解,并随时可以进行更改. 主题包括规范和不变量; 测试,测试用例生成和覆盖; 国家机器; 抽象数据类型和表示独立性; 面向对象编程的设计模式; 并发编程,包括消息传递和共享并发,以及防范种族和死锁; 和使用不可变数据和高阶函数的函数式编程.
    • Lectures Notes/Assignments

Machine Learning

  • DEEPNLP 自然语言处理的深度学习 牛津大学 Assignments Lecture Notes
    • 这是一门应用课程,侧重于使用递归神经网络分析和生成语音和文本的最新进展. 我们介绍相关机器学习模型的数学定义,并推导出它们相关的优化算法. 该课程涵盖NLP中神经网络的一系列应用,包括分析文本中的潜在维度,将语音转录为文本,在语言之间进行翻译以及回答问题. 本课程由Phil Blunsom组织,并与 DeepMind自然语言研究组合作.
    • Lectures
    • 组织页面上的分配可用“实用”
  • CS20si 深度学习研究的Tensorflow 斯坦福大学 Assignments Lecture Notes
    • 本课程将介绍用于深度学习研究的Tensorflow库的基础知识和当代用法. 我们的目标是帮助学生理解Tensorflow的图形计算模型,探索它提供的功能,并学习如何构建和构建最适合深度学习项目的模型. 通过本课程,学生将使用Tensorflow构建不同复杂度的模型,从简单的线性/逻辑回归到卷积神经网络和带LSTM的递归神经网络,可以解决单词嵌入,翻译,光学字符识别等任务. 学生还将学习构建模型和管理研究实验的最佳实践.
    • Assignments 可以在Github上找到.
  • COMS 4771 机器学习 哥伦比亚大学 Assignments Lecture Notes
    • 课程授课 Tony Jebara 介绍机器学习中的主题,用于生成和判别估计. 材料将包括最小二乘法,高斯分布,线性分类,线性回归,最大似然,指数族分布,贝叶斯网络,贝叶斯推理,混合模型,EM算法,图形模型,隐马尔可夫模型,支持向量机和内核方法.
    • Lectures and Assignments
  • CS 109 数据科学 哈佛大学 Assignments Lecture Notes Readings
    • 从数据中学习,以获得有用的预测和见解. 本课程介绍了调查的五个关键方面:数据争用,清理和抽样,以获得合适的数据集; 数据管理能够快速可靠地访问大数据; 探索性数据分析,以产生假设和直觉; 基于回归和分类等统计方法的预测; 通过可视化,故事和可解释的摘要传达结果.
    • Lectures
    • Slides
    • Labs and Assignments
    • 2014 Lectures
    • 2013 Lectures (稍微好一些)
  • CS 156 从数据中学习 加州理工学院 Lecture Videos Assignments Lecture NotesReadings
    • 这是机器学习(ML)的入门课程,涵盖了基本理论,算法和应用程序. ML是大数据以及许多金融,医疗,商业和科学应用中的关键技术. 它使计算系统能够根据观察到的数据积累的经验自适应地改善其性能. ML已成为当今最热门的研究领域之一,由来自加州理工学院15个不同专业的本科生和研究生接手. 本课程平衡理论和实践,涵盖数学和启发方面.
    • Lectures
    • Homework
    • Textbook
  • CS 189 机器学习简介 加州大学伯克利分校 Assignments Lecture Notes
    • 介绍ML课程涵盖广泛的主题:从最小二乘到卷积神经网络
    • Notes
    • Homework
  • CS 224d 自然语言处理的深度学习 斯坦福大学 Lecture Videos Assignments Lecture Notes
    • 自然语言处理(NLP)是信息时代最重要的技术之一. 理解复杂的语言话语也是人工智能的重要组成部分. NLP的应用无处不在,因为人们用语言交流大多数东西:网络搜索,广告,电子邮件,客户服务,语言翻译,放射学报告等.有各种各样的基础任务和机器学习模型为NLP应用程序提供动力. 最近,深度学习方法在许多不同的NLP任务中获得了非常高的性能. 这些模型通常可以使用单个端到端模型进行培训,而不需要传统的,针对任务的特征工程. 在这个春季课程中,学生将学习如何实施,训练,调试,可视化和发明他们自己的神经网络模型. 该课程深入探讨了应用于NLP的深度学习的前沿研究.
    • Syllabus
    • Lectures and Assignments
  • CS 229r 大数据算法 哈佛大学 Lecture Videos Assignments Lecture Notes
    • 大数据是如此之大的数据,以至于它不适合单个机器的主存储器,并且需要通过有效的算法处理大数据,这在互联网搜索,网络流量监控,机器学习,科学计算,信号处理和其他几个方面. 本课程将涵盖用于开发此类算法的数学严谨模型,以及在这些模型中运行的算法的一些可证明的限制.
    • Lectures (Youtube)
    • Assignments
  • CS 231n 用于视觉识别的卷积神经网络 斯坦福大学 Assignments Lecture Notes Lecture Videos
    • 计算机视觉已经在我们的社会中无处不在,应用于搜索,图像理解,应用程序,绘图,医学,无人驾驶飞机和自动驾驶汽车. 本课程深入探讨深度学习架构的细节,重点是学习这些任务的端到端模型,尤其是图像分类. 在为期10周的课程中,学生将学习如何实施,训练和调试他们自己的神经网络,并详细了解计算机视觉的前沿研究.
    • Lecture Notes
    • Lecture Videos
    • Github Page
  • CS 287 高级机器人 加州大学伯克利分校 Assignments Lecture Notes
    • 该课程介绍了最先进的机器人系统下的数学和算法. 这些技术中的大多数都是基于概率推理和优化 - 这两个领域在现代人工智能中具有广泛的适用性. 该课程的预期副作用是通常加强您在这两个领域的专业知识.
    • Lectures Notes
    • Assignments
  • CS 395T 科学计算的统计和离散方法 德克萨斯大学 Lecture Videos Lecture Notes Assignments
    • 将现代统计技术应用于实际数据的实践课程,特别是生物信息数据和大数据集. 重点在于高效计算和简洁编码,主要是在MATLAB和C ++中. 涵盖的主题包括概率论和贝叶斯推理; 单变量分布; 中心极限定理; 随机偏差的产生; 尾(p值)测试; 多重假设校正; 经验分布; 模型拟合; 误差估计; 列联表; 多元正态分布; 系统发育聚类; 高斯混合模型; EM方法; 最大似然估计; 马尔可夫链蒙特卡罗; 主成分分析; 动态规划; 隐马尔可夫模型; 分类器的性能指标; 支持向量机; 维纳过滤; 小波; 多维插值; 信息论.
    • Lectures and Assignments
  • CS 4780 机器学习 康奈尔大学 Lecture NotesReadings
    • 本课程将向您介绍在万维网上构建以数据为中心的信息系统的技术,展示此类系统的实际应用,并通过研究公民科学等跨领域问题来讨论其设计及其社会和政策背景.数据新闻和开放政府. 课程作业包括讲座和阅读以及每周的家庭作业,以及一个为期一学期的项目,学生在这个项目中展示他们在构建以数据为中心的Web信息系统方面的专业知识.
    • Syllabus
    • Lectures
  • CS 4786 数据科学的机器学习 康奈尔大学 Assignments Lecture Notes Readings
    • 机器学习入门课程,重点是数据建模和相关方法以及数据科学的学习算法. 暂定主题清单:
      • 降维,如主成分分析(PCA)和奇异值分解(SVD),典型相关分析(CCA),独立分量分析(ICA),压缩感知,随机投影,信息瓶颈. (我们希望涵盖这些主题中的一些,但可能不是全部).
      • 聚类,例如k均值,高斯混合模型,期望最大化(EM)算法,基于链接的聚类. (我们不期望涵盖分层或谱聚类.).
      • 概率建模主题,例如图形模型,潜变量模型,推理(例如,置信传播),参数学习.
      • 如果时间允许,将涵盖回归.
    • Assignments
    • Lectures
  • CVX 101 凸优化 斯坦福大学 Assignments Lecture Notes Readings
    • 课程重点是识别和解决应用程序中出现的凸优化问题. 讨论的主题包括以下内容. 凸集,函数和优化问题. 凸分析的基础知识. 最小二乘,线性和二次规划,半定规划,极小极大,极值体积和其他问题. 最优性条件,对偶理论,替代定理和应用. 内点法. 应用于信号处理,统计和机器学习,控制和机械工程,数字和模拟电路设计以及金融.
    • Textbook
    • Lectures and Assignments
  • DS-GA 1008 深度学习 纽约大学 Lecture Videos Lecture Notes Assignments
    • 这个越来越受欢迎的课程通过纽约大学的数据科学中心讲授. 最初由介绍 Yann Lecun,它现在由 Zaid Harchaoui 虽然有传言称Lecun教授仍不时停下来. 它涵盖了用于在计算机视觉和自然语言处理中实现机器学习任务的高精度的理论,技术和技巧. 作业在Lua中并在Kaggle上托管.
    • Course Page
    • Recorded Lectures
  • EECS E6893 & EECS E6895 大数据分析和高级大数据分析 哥伦比亚大学 Assignments Readings Lecture Notes
    • 学生将获得分析大数据的知识. 它是研究生的入门课程,他们期望在工作场所和研究环境中面对大数据存储,处理,分析,可视化和应用问题.
    • 教导 Dr. Ching-Yung Lin
    • Course Site
    • 作业 - 课程幻灯片中包含作业
  • EECS E6894 计算机视觉和自然语言处理的深度学习 哥伦比亚大学 Lecture Notes Assignments Readings
    • 这个研究生水平的研究课侧重于视觉和自然语言处理问题的深度学习技术. 它概述了各种深度学习模型和技术,并调查了相关领域的最新进展. 本课程使用Theano作为主要的编程工具. GPU编程经验是首选,但不是必需的. 预计频繁的纸质演示和繁重的编程工作量.
  • Readings
  • Assignments
  • Lecture Notes
  • EE103 矩阵方法介绍 斯坦福大学 Assignments Lecture Notes Readings
    • The course covers the basics of matrices 和 vectors, solving linear equations, least-squares methods, 和 many applications. It'll cover the mathematics, but the focus will be on using matrix methods in applications such as tomography, image processing, data fitting, time series prediction, finance, 和 many others. EE103 is based on a book that Stephen BoydLieven V和enberghe 正在写作. 学生将使用一种叫做的新语言 Julia to do computations with matrices 和 vectors.
    • Lectures
    • Book
    • Assignments
    • Code
  • Fast.ai Introduction to Machine Learning for Coders * Fast.ai /旧金山大学* Lecture Videos Lecture Notes Assignments Readings
    • 大约有24小时的课程,您应该计划每周花费大约8小时,为期12周,以完成材料. 该课程以旧金山大学数据科学硕士课程记录的课程为基础. 我们假设您至少有一年的编码经验,要么记住您在高中数学中学到的知识,要么准备做一些独立的学习来更新您的知识.
    • Lecture Videos
    • Lecture Notes
    • Jupyter Notebooks
  • Info 290 使用Twitter分析大数据 加州大学伯克利分校信息学院 Lecture Videos
    • 在本课程中,加州大学伯克利分校的教授和Twitter工程师提供有关应用于Twitter数据的最先进的数据分析算法和软件工具的讲座. 主题包括应用自然语言处理算法,如情绪分析,大规模异常检测,实时搜索,信息传播和爆发检测,社交流中的趋势检测,推荐算法和分布式计算的高级框架.
    • Lecture Videos
    • Previous Years coursepage
  • Machine Learning: 2014-2015 牛津大学 Lecture Videos Lecture Notes Assignments
    • 课程重点关注神经网络并使用 Torch 深度学习库(在Lua中实施)用于练习和作业. 主题包括:逻辑回归,反向传播,卷积神经网络,最大边缘学习,暹罗网络,递归神经网络,LSTM,使用递归神经网络的手写,变分自动编码器和图像生成以及强化学习
    • Lectures and Assignments
    • Source code
  • StatLearning 统计学习简介 斯坦福大学 Assignments Lecture Notes Readings Lecture Videos
    • 这是一个监督学习的入门级课程,重点是回归和分类方法. 课程提纲包括:线性和多项式回归,逻辑回归和线性判别分析; 交叉验证和引导,模型选择和正则化方法(脊和套索); 非线性模型,样条和广义加性模型; 基于树木的方法,随机森林和提升; 支持向量机.
    • 讲座涵盖了所有材料 An Introduction to Statistical Learning, with Applications in R 这是一个更平易近人的版本 Elements of Statistical Learning (或ESL)书.
  • 10-601 机器学习 卡内基梅隆大学 Assignments Lecture Notes Readings Lecture Videos
    • 本课程从各个角度介绍了机器学习的理论和实用算法. 它涵盖了贝叶斯网络,决策树学习,支持向量机,统计学习方法,无监督学习和强化学习等主题. 课程涵盖理论概念,如归纳偏见,PAC学习框架,贝叶斯学习方法,基于边际的学习和奥卡姆剃刀. 简短的编程任务包括使用各种学习算法的动手实验. 本课程旨在为研究生水平的学生提供在机器学习研究中目前所需的方法,技术,数学和算法的全面基础.
    • 由一位机器学习领域的顶尖专家讲授 - Tom Mitchell
    • Lectures
    • Project Ideas and Datasets
  • 10-708 概率图形模型 卡内基梅隆大学 Lecture Videos Lecture Notes Assignments Readings
    • 人工智能,统计学,计算机系统,计算机视觉,自然语言处理和计算生物学等许多领域中的许多问题可以被视为从本地信息中寻找一致的全球结论. 概率图形模型框架为这些广泛的问题提供了统一的视图,能够在具有大量属性和庞大数据集的问题中进行有效的推理,决策和学习. 这门研究生课程将为您提供强大的基础,既可以将图形模型应用于复杂问题,也可以解决图形模型中的核心研究课题.
    • Lecture Videos
    • Assignments
    • Lecture notes
    • Readings
  • 11-785 深度学习 卡内基梅隆大学 Assignments Readings
    • 该课程通过一系列研讨会和实验室介绍该主题,这些研讨会和实验室将从一开始就进行探索,并致力于一些最先进的技术. 研讨会将涵盖深度学习的基础知识和基础理论,以及应用它的广泛应用领域,以及从大量数据中学习的最新问题. 我们将主要(尽管不是完全)集中在最常与之相关的连接主义架构上. 讲座阅读笔记可在页面上找到.
  • CS246 挖掘大量数据集 斯坦福大学 Lecture Videos Lecture Notes Assignments Readings
  • CS276 信息检索和网络搜索 斯坦福大学 Lecture Notes Readings
    • 基于文本的信息系统的基本和高级技术:高效的文本索引; 布尔和向量空间检索模型; 评估和界面问题; Web搜索,包括爬网,基于链接的算法和Web元数据; 文本/ Web聚类,分类; 文本挖掘.
    • Lecture notes
    • Readings
  • Practical_RL 野外强化学习 * Yandex SDA * Lecture Videos Lecture Notes Assignments Readings
    • 关于野外强化学习的课程. 在HSE和Yandex SDA(俄语)的校园里讲授,并保持对在线学生(英语和俄语)友好.
    • Syllabus
  • UvA DEEP LEARNING UvA深度学习课程 阿姆斯特丹大学 Lecture Videos Lecture Notes Assignments Readings
    • 本课程在阿姆斯特丹大学人工智能硕士课程中讲授. 在本课程中,我们研究深度学习理论,即在大数据上训练的现代多层神经网络. 该课程特别关注计算机视觉和语言建模,这可能是深度学习理论中最容易识别和最令人印象深刻的两个应用.
    • Lecture Videos & Notes
    • Practicals
    • Readings

Security

  • CIS 4930 / CIS 5930 进攻性计算机安全 佛罗里达州立大学 Lecture Videos Assignments Lecture Notes
    • 课程授课 W. Owen RedwoodXiuwen Liu. It covers a wide range of computer security topics, starting from Secure C Coding 和 Reverse Engineering to Penetration Testing, Exploitation 和 Web Application Hacking, both from the defensive 和 the offensive point of view.
    • Lectures and Videos
    • Assignments
  • CS 155 计算机和网络安全 斯坦福 Lecture Notes Readings
    • 计算机系统安全原则. 攻击技术以及如何防御它们. 主题包括:网络攻击和防御,操作系统漏洞,应用程序安全(Web,电子邮件,数据库),病毒,社会工程攻击,隐私和数字版权管理. 课程项目专注于构建可靠的代码. 推荐:基本的Unix. 主要供老年人和一年级研究生使用.
  • CS 161 Computer Security UC Berkeley Lecture Notes
    • 计算机安全简介. 密码术,包括加密,身份验证,哈希函数,加密协议和应用程序. 操作系统安全,访问控制. 网络安全,防火墙,病毒和蠕虫. 软件安全性,防御性编程和基于语言的安全性. 来自现实世界系统的案例研究.
  • CS 259 安全建模和分析 斯坦福 Lecture Notes Assignments Readings
    • 该课程将涵盖各种现代网络协议和其他具有安全属性的系统. 课程目标是让学生亲身体验使用自动化工具和相关技术来分析和评估安全机制. 为了理解安全属性和要求,我们将研究几种网络协议及其属性,包括保密性,身份验证,密钥建立和公平性. 同时,本课程将介绍安全分析中使用的几种模型和工具,并检查它们的优点和局限性. 除了全自动有限状态模型检查技术,我们还将研究其他方法,如约束求解,过程代数,协议逻辑,概率模型检查,博弈论和基于逻辑编程的可执行模型.
  • CS 261 互联网/网络安全 加州大学伯克利分校 Lecture Notes Readings
    • 本课程旨在为有兴趣在该领域开展研究的学生提供适合网络安全的基础,以及对安全或网络更感兴趣的学生. 我们还将研究与网络安全相关的更广泛的互联网安全问题. 主题包括:拒绝服务; 能力; 网络入侵检测; 蠕虫; 取证; 扫描; 交通分析/推断活动; 建筑; 协议问题; 合法性和道德; 网络攻击; 匿名; 蜜罐; 僵尸网络; 垃圾邮件; 地下经济; 研究陷阱. 该课程的教学重点是开创性的论文,而不是针对特定主题的前沿.
  • CS 5430 系统安全 康奈尔大学 Assignments Lecture Notes Readings
    • 本课程讨论计算机和网络信息系统的安全性. 我们专注于实施军事和商业级安全系统的抽象,原则和防御.
    • Syllabus
    • Lectures
    • Assignments
  • CSCI 4968 现代二元开发 伦斯勒理工学院 Lecture NotesAssignments
  • CSCI 4976 恶意软件分析 伦斯勒理工学院 Lecture NotesAssignments
    • 此存储库包含由开发和使用的材料 RPISEC 至 教授恶意软件分析 Rensselaer Polytechnic Institute in 2015年秋季.这是一所大学课程,由学生独自开发和运营,主要使用
  • EECS 588 计算机和网络安全 密歇根大学 Lecture Notes Readings
  • 6.857 计算机和网络安全 * MIT * Lecture Notes
    • 强调应用加密技术,可能包括:系统安全的基本概念,加密散列函数,对称加密(一次性密码,流密码,分组密码),密码分析,秘密共享,验证码,公钥加密(加密,数字签名),公钥攻击,网络浏览器安全,生物识别,电子现金,病毒,电子投票,作业包括小组最终项目. 主题可能每年都有所不同. Lecture Notes References
  • 6.858 计算机系统安全 * MIT * Lecture Videos Lecture Notes Assignments Readings
  • 18-636 浏览器安全 斯坦福 Lecture Videos Lecture Notes
    • 作为零售交易,金融服务和快速发展的通信形式的平台,网络越来越受欢迎. 对于希望破坏用户系统或窃取其他站点数据的攻击者而言,它正成为一个越来越有吸引力的目标. 浏览器供应商必须通过提供支持安全Web应用程序的功能来领先于这些攻击. 本课程将研究现有Web浏览器及其呈现的应用程序中的漏洞,以及支持前所未有的Web应用程序的新技术. 该材料将主要基于当前的研究问题,学生将被批评和改进现有的防御. 研究主题包括(但不限于)浏览器加密,JavaScript安全性,插件安全性,沙盒,Web mashup和身份验证.

Artificial Intelligence

  • CS 188 人工智能简介 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes
    • 本课程将介绍智能计算机系统设计的基本思想和技术. 将特别强调统计和决策理论建模范式. 在本课程结束时,您将构建自主代理,在完全知情,部分可观察和对抗的环境中有效地做出决策. 您的代理人将在不确定的环境中得出推论并优化针对任意奖励结构的行动. 您的机器学习算法将对手写数字和照片进行分类. 您在本课程中学到的技巧适用于各种人工智能问题,并将作为您选择的任何应用领域进一步学习的基础.
    • Lectures
    • Projects
    • Exams
  • CS 4700 人工智能基础 康奈尔大学 Assignments Lecture Notes
    • 本课程将介绍计算机视觉,主题包括图像形成,特征检测,运动估计,图像马赛克,3D形状重建,以及物体和面部检测和识别. 这些技术的应用包括构建3D地图,创建虚拟角色,组织照片和视频数据库,人机交互,视频监控,自动车辆导航和移动计算机视觉. 这是一个基于项目的课程,您将在整个学期中实施多个计算机视觉算法.
    • Assignments
    • Lectures
  • CS 6700 高级人工智能 康奈尔大学 Lecture Notes Readings
  • 6.868J 心灵社会 * MIT * Lecture Notes Assignments Readings
  • 本课程由教授介绍. Marvin Minsky ,试图解释思维是如何从简单过程的集合中产生的理论. 它将思维的这些方面视为视觉,语言,学习,推理,记忆,意识,理想,情感和个性. 它结合了心理学,人工智能和计算机科学的思想来解决理论问题,如整体与部分,结构与功能描述,陈述与程序表征,符号与联结主义模型,以及逻辑与常识理论.学习.
  • Lectures
  • Assignments
  • Readings

Computer Graphics

  • CAP 5415 计算机视觉 佛罗里达中央大学 Lecture Videos Lecture Notes Assignments
  • CIS 581 计算机视觉和计算摄影 宾夕法尼亚大学 Assignments Lecture Notes
    • 计算机视觉和计算摄影的入门课程,主要关注四个主题:图像特征,图像变形,形状匹配和图像搜索.
    • Lectures
    • Assignments
  • CMU 462 计算机图形学 卡内基梅隆大学 Lecture Notes Assignments Readings
    • 本课程提供计算机图形学的全面介绍. 重点介绍基本概念和技术,以及它们与图形(渲染,动画,几何,成像)中多个问题域的交叉关系. 主题包括:采样,锯齿,插值,光栅化,几何变换,参数化,可见性,合成,滤波,卷积,曲线和曲面,几何数据结构,细分,网格划分,空间层次,光线跟踪,辐射测量,反射,光场,几何光学,蒙特卡罗渲染,重要性采样,相机模型,高性能光线追踪,微分方程,时间积分,数值微分,基于物理的动画,优化,数值线性代数,逆运动学,傅立叶方法,数据拟合,基于实例合成.
    • Lectures and Readings
    • Assignments and Quizes
  • CS 378 使用计算机视觉进行3D重建 * UTexas * Assignments Lecture Notes
    • 在这个基于实验室的课程中,我们将深入研究3D重建的实际应用,结合硬件和软件从头开始构建我们自己的3D环境. 我们将使用像OpenCV这样的开源框架来完成繁重的工作,重点是理解和应用几何计算机视觉的最先进方法
    • Lectures
  • CS 4620 计算机图形学概论 康奈尔大学 Assignments Lecture Notes Readings
    • 在计算机中创建,操作和使用可视图像的研究.
    • Assignments
    • Exams
  • CS 4670 计算机视觉入门 康奈尔大学 Assignments Lecture Notes Readings
    • 本课程将介绍计算机视觉,主题包括图像形成,特征检测,运动估计,图像马赛克,3D形状重建,以及物体和面部检测和识别. 这些技术的应用包括构建3D地图,创建虚拟角色,组织照片和视频数据库,人机交互,视频监控,自动车辆导航和移动计算机视觉. 这是一个基于项目的课程,您将在整个学期中实施多个计算机视觉算法.
    • Assignments
    • Lectures
  • CS 6670 计算机视觉 康奈尔大学 Assignments Lecture Notes
    • 计算机视觉入门. 主题包括边缘检测,图像分割,立体视觉,运动和光流,图像马赛克,3D形状重建和对象识别. 学生需要实施课程中涵盖的几种算法并完成最终项目.
    • Syllabus
    • Lectures
    • Assignments
  • CSCI 1230 计算机图形学概论 布朗大学 Assignments Lecture Notes
    • 本课程深入探索2D和3D计算机图形学的基本概念. 它介绍了2D光栅图形技术,包括扫描转换,简单图像处理,交互技术和用户界面设计. 本课程的大部分内容专门用于3D建模,几何变换以及3D查看和渲染.
    • Lectures
    • Labs
    • Demos
  • CSCI-GA.2270-001 研究生计算机图形学 纽约大学 Assignments Lecture Notes Readings
    • 逐步学习计算机图形学,每次讲座都有阅读和作业(2015年秋季)
    • Lectures

Misc

  • AM 207 蒙特卡罗方法和随机优化 哈佛大学 Lecture Videos Lecture Notes Assignments
    • 本课程介绍蒙特卡罗技术的重要原理,并通过简单(但非常有用)的应用演示这些技术的强大功能. 所有这些都在Python中!
  • Lecture Videos
  • Assignments
  • Lecture Notes
  • CS 75 游戏开发简介 塔夫茨大学 Assignments Lecture Notes
    • 讲授的课程 Ming Y. Chow 最初通过Python在PyGame中教授游戏开发,然后继续解决游戏开发的各个方面. 主题包括游戏物理,精灵,动画,游戏开发方法,声音,测试,MMORPG和在线游戏,以及Android,HTML5和iOS中的移动开发. 大部分开发都集中在PyGame的学习原则上
    • Text Lectures
    • Assignments
    • Labs
  • CS 50 游戏开发简介 哈佛大学 Lecture VideosAssignments Lecture Notes
    • 本课程适用于哈佛学院的课程 CS50 离开,专注于2D和3D互动游戏的发展. 学生们探索超级马里奥兄弟,塞尔达传说和门户等童年游戏的设计,以了解如何实现视频游戏本身. 通过讲座和实践项目,本课程使用Unity等框架探索2D和3D图形,动画,声音和碰撞检测的原理. LÖVE 2D, as well as languages like Lua and C#. By class’s end, students will have programmed several of their own games and gained a thorough understanding of the basics of game design and development.
    • Assignments
    • Lecture Videos
  • CS 100 开源软件构建 * UC Riverside * Assignments Lecture Notes
    • 这是一个关于如何成为黑客的课程. 您的前四个家庭作业将引导您完成构建自己的unix shell的过程. 您将开发它作为一个开源项目,您将在不同的点上相互协作.
    • Github Page
    • Assignments
  • CS 108 面向对象的系统设计 斯坦福 Assignments Lecture Notes
    • 大型OOP库中的软件设计和构造. 用Java教授. 主题:OOP设计,设计模式,测试,图形用户界面(GUI)OOP库,软件工程策略,团队编程方法.
  • CS 168 计算机网络 加州大学伯克利分校Assignments Readings Lecture Notes
    • 这是一门本科课程,涵盖互联网中体现的网络基本概念. 该课程将涵盖广泛的主题; 请参阅讲座时间表了解更多详情. 虽然课程有教科书,但我们不会遵循其演示顺序,而是在涵盖每个主题时使用文本作为参考. 该课程还将有几个涉及编程的项目(在Python中).
    • 您应该了解编程,数据结构和软件工程. 在数学方面,你的代数应该是非常可靠的,你需要知道基本概率,你应该对抽象思考感到舒服. 技术顾问将花费很少的时间来审查不是特定于网络的材料. 我们假设您要么知道这些课程所涵盖的材料,要么愿意在必要时学习这些材料. 我们不会在讲座中介绍这些材料.
  • CS 193a Android应用程序开发,2016年春季 斯坦福大学 Lecture VideosAssignments Lecture Notes
    • 课程描述:本课程介绍如何为Android移动平台开发应用程序.
    • 先决条件:CS 106B或同等学历. 强烈推荐Java经验. OOP高度推荐.
    • 设备:访问推荐但不是必需的Android手机和/或平板电脑.
    • 视频:可以找到视频列表 here
    • 其他材料:由于登录要求,某些代码,讲义,家庭作业.....和讲义不能在网站上下载. 请前往我的Github回购 here 下载它们.
  • CS 193p 开发iOS应用 斯坦福大学 Lecture VideosAssignments Lecture Notes
    • 针对iOS 7进行了更新.使用iOS SDK为iPhone和iPad平台构建应用程序所需的工具和API. 用于移动设备的用户界面设计和使用多点触摸技术的独特用户交互. 面向对象的设计使用模型 - 视图 - 控制器范例,内存管理,Objective-C编程语言. 其他主题包括:面向对象的数据库API,动画,多线程和性能注意事项.
    • 先决条件:C语言和面向对象的编程经验
    • 推荐的: Programming Abstractions
    • Updated courses for iOS8 - Swift
    • Updated courses for iOS9 - Swift
  • CS 223A 机器人概论 斯坦福大学 Lecture Videos Assignments Lecture Notes
    • 本课程的目的是向您介绍机器人系统的建模,设计,规划和控制的基础知识. 本质上,本课程中处理的材料是对几何学,运动学,静力学,动力学和控制的相关结果的简要调查.
  • CS 262a 计算机系统高级主题 加州大学伯克利分校 Readings Lecture Notes
    • CS262a是计算机系统研究长达一年的第一个学期,包括操作系统,数据库系统和互联网基础设施系统. 该课程的目标是涵盖计算机系统中广泛的研究课题,并让您参与顶级系统研究. 第一学期致力于计算机系统的基本主题和基础技术,而第二学期则深入研究与可扩展,并行和分布式系统相关的主题. 该课程基于对重要研究论文和研究项目的讨论.
    • 部件:一些经典,持久存储,并发,高级模型,虚拟机,云计算,并行和分布式计算,百花香.
    • 先决条件:历史先决条件是在课堂上通过入学考试,其中包括本科操作系统材料(类似于 UCB's CS162 ). 不再考试了. 但是,如果你还没有参加过体面的本科OS课程,那么在上课之前你应该和我谈谈. 考试的好处是“分页”本科材料,这可能是其主要价值(因为合格率很高).
    • Readings & Lectures
  • CS 294 尖端网络技术 伯克利 Assignments Readings Lecture Notes
    • 想了解未来的网络技术是什么? 加入我们的课程,我们将深入了解许多最新网络技术的内部,分析和剖析它们. 我们将进行调查讲座,提供该地区的背景和概述,并邀请各个领先项目的客座讲师介绍他们的技术.
  • CS 411 软件架构设计 * Bilkent大学* Lecture Videos
    • 本课程讲授设计软件架构的基本概念,方法和技术. 主题包括:软件架构设计的基本原理,建模软件架构设计,架构风格/模式,架构需求分析,架构设计方法的比较和评估,基于综合的软件架构设计,软件产品线架构,领域建模,领域工程和应用工程,软件架构实现,评估软件架构设计.
  • CS 3152 电脑游戏开发简介 康奈尔大学 Assignments Lecture NotesReadings
    • 基于项目的课程,程序员和设计师合作制作计算机游戏. 本课程从技术,美学和文化的角度综合研究开发计算机游戏的理论和实践. 游戏架构的技术方面包括软件工程,人工智能,游戏物理,计算机图形和网络. 审美和文化包括艺术和造型,声音和音乐,游戏平衡和玩家体验.
    • Syllabus
    • Lectures
    • Assignments
  • CS 4152 计算机游戏开发高级主题 康奈尔大学 Assignments Lecture NotesReadings
    • 基于项目的CS / INFO 3152后续课程.学生在多学科团队中工作,开发包含创新游戏技术的游戏. 高级主题包括3D游戏开发,移动平台,多人游戏和非传统输入设备. 特别强调开发可以提交给节日和比赛的游戏,或者可以商业化的游戏.
    • Syllabus
    • Lectures
    • Assignments
  • CS 4154 分析驱动的游戏设计 康奈尔大学 Assignments Lecture NotesReadings
    • 基于项目的课程,程序员和设计师通过流行的游戏门户网站协作设计,实施和发布视频游戏. 在本课程中,学生将使用互联网匿名收集玩家的数据. 学生将分析这些数据,以便在多次迭代中改进他们的游戏. 本课程的技术方面包括编程,数据库架构和统计分析.
    • Syllabus
    • Lectures
    • Assignments
  • CS 4812 量子信息处理 康奈尔大学 Lecture Notes Readings
    • 利用量子现象的硬件可以极大地改变计算的本质. 尽管构建工作量子计算机是一项艰巨的技术挑战,但最近有许多实验进展. 此外,量子计算理论本身也很有意义,它对计算和信息的本质提供了截然不同的观点,并提供了对量子理论构成的概念难题的新见解. 该课程既适用于不熟悉计算复杂性理论或密码学的物理学家,也适用于不熟悉量子力学的计算机科学家和数学家. 先决条件是对复数,有些标准群理论和二进制计数能力的有限维向量空间的熟悉性(和舒适性).
    • Syllabus
    • Lectures
  • CS 4860 应用逻辑 康奈尔大学 Assignments Lecture Notes
    • 除了基本的一阶逻辑,当由计算机科学教授时,本课程涉及形式化方法和自动推理的要素. 形式化方法涉及证明算法的属性,指定编程任务和从证明合成程序. 我们将使用正式的方法工具,如交互式证明助理(见 www.nuprl.org ). 我们还将花两周时间研究建构型理论,即Coq和Nuprl证明助理使用的语言.
    • Syllabus
    • Lectures
    • Assignments
  • CS 5150 软件工程 康奈尔大学 Assignments Lecture Notes Readings
    • 介绍指定,设计,构建,测试和交付可靠软件系统的实际问题
    • Lectures
    • Assignments
  • CS 5220 并行计算机的应用 康奈尔大学 Assignments Lecture Notes Readings
    • 我们如何在现代计算机上快速解决大规模的科学问题? 我们如何衡量新的或现有的模拟代码的性能,以及我们可以做些什么来使它们运行得更快? 我们如何才能最好地利用多核处理器,矢量单元和图形协处理器等功能? 这些是我们将在CS 5220,并行计算机应用中提出的问题类型. 主题包括:
      • 单处理器架构,高速缓存和串行性能调整
      • 并行机器组织的基础知识
      • 使用MPI进行分布式存储器编程
      • 使用OpenMP进行共享内存编程
      • 并行模式:数据分区,同步和负载平衡
      • 并行数值算法的例子
      • 来自科学和工程的应用
    • Lectures
    • Assignments
  • CS 5540 分析临床数据的计算技术 康奈尔大学 Assignments Lecture NotesReadings
    • CS5540是一门硕士课程,涵盖了广泛的临床问题及其相关的计算挑战. 医学实践充满了关于患者的数字化信息,从EKG读数到MRI图像到电子健康记录. 这为从这些数据中理解的计算机工具提供了巨大的机会. 计算工具可用于回答关于单个患者的测试结果的看似简单的问题(“该患者是否具有正常的心律?”),或解决关于大量人群的重要问题(“是否存在影响风险的临床情况老年痴呆症”). 在CS5540中,我们将查看许多最重要的临床数据来源,并讨论用于分析的基本计算技术,包括从当前临床实践到最先进研究项目的复杂性.
    • Syllabus
    • Lectures
    • Assignments
  • CS 5724 进化计算 康奈尔大学 Assignments Lecture Notes
    • 本课程将涵盖进化算法的高级主题及其在开放式计算设计中的应用. 进化计算领域试图通过基于随机种群的方法解决大规模优化和规划问题. 它从自然界和工程学的进化过程中汲取灵感,也是这些现象的抽象模型. 进化过程通常是弱方法,几乎​​不需要关于问题域的信息,因此可以应用于各种各样的应用程序. 它们对于开放式问题域特别有用,因为这些域很少有正式知识,参数数量未定义,例如一般工程设计过程. 本课程将提供对各种进化计算范例的见解,例如遗传算法,遗传规划和进化策略,以及共同进化,军备竞赛和平庸稳定状态的治理动态. 还将介绍涉及共生模型和模式识别的新方法. 该材料将与各种问题领域(包括软件,电子和机械)中的设计问题的表示和结果的讨论交织在一起.
    • Syllabus
    • Lectures
    • Assignments
  • CS 6452 数据中心网络和服务 康奈尔大学 Lecture Notes
    • CS6452专注于数据中心网络和服务. 对Web服务和云计算的新兴需求已经产生了对大规模数据中心的需求. 数据中心的硬件和软件基础架构严格地决定了在该数据中心上运行的应用程序的功能,性能,成本和容错能力. 本课程将研究硬件(网络)基础架构和数据中心软件基础架构的设计备选方案.
    • Syllabus
    • Lectures
  • CS 6630 逼真的图像合成 康奈尔大学 Assignments Lecture Notes Readings
    • CS6630是对研究生水平的基于物理的渲染的介绍. 从光传输的基本原理出发,我们将研究渲染方程的公式,以及一系列蒙特卡罗方法,从顺序采样到多重要采样到马尔可夫链,用于求解制作图像的方程. 我们将研究表面的光反射和体积散射,灯具和环境的照明以及半透明材料的扩散模型. 我们将构建我们研究的许多算法的工作实现,并学习如何确保它们实际上正常工作. 观看积分和概率分布转化为略微过于完美的合成世界的照片是很有趣的.
    • Syllabus
    • Lectures
    • Assignments
    • Readings
  • CS 6640 计算摄影 康奈尔大学 Assignments Lecture Notes
    • 关于摄影计算新兴应用的课程. 可能的主题包括数码摄影,非传统相机和光学,光场相机,摄影图像处理,多种图像组合技术,高级图像编辑算法和投影仪相机系统.cornell.edu /courses/CS6630 / 120sp / about.stm )
    • Lectures
    • Assignments
  • CS 6650 计算动作 康奈尔大学 Readings
    • 涵盖广泛解释的运动的计算方面. 主题包括计算机表示,建模,分析和运动模拟,以及它与各个领域的关系,包括计算几何,网格生成,物理模拟,计算机动画,机器人,生物学,计算机视觉,声学和时空数据库. 学生实施课程中涵盖的几种算法并完成最终项目. 此产品还将探讨运动处理在基于物理的声音渲染中的特殊作用.
  • CS 6840 算法博弈论 康奈尔大学 Assignments Lecture Notes Readings
  • CSE 154 网页编程 华盛顿大学 Assignments Lecture Notes
    • 本课程介绍万维网的编程. 涵盖HTML,CSS,PHP,JavaScript,AJAX和SQL的使用.
    • Lectures
    • Assignments
  • ESM 296-4F GIS和空间分析 加州大学圣巴巴拉分校 Assignments Lecture Notes
    • 教导 James Frew, Ben Best, and Lisa Wedding
    • 重点介绍应用于环境问题空间分析的特定计算语言(如Python,R,shell)和工具(如GDAL / OGR,InVEST,MGET,ModelBuilder)
    • GitHub (includes lecture materials and labs)
  • ICS 314 软件工程 夏威夷大学 Assignments Lecture Notes Readings
  • IGME 582 人道主义自由和开源软件开发 罗彻斯特理工学院 Assignments Lecture Notes
    • 本课程为学生提供开源软件项目的设计,创建和制作方面的知识. 学生将被介绍到技术和知识产权的历史交叉点,并将熟悉开源开发过程,工具和实践.
  • I485 / H400 生物启发计算 印第安纳大学 Assignments Lecture Notes
    • 课程授课 Luis Rocha 关于受自然现象引发的多学科领域算法. 本课程介绍了以下领域:L系统,元胞自动机,突现,遗传算法,群体智能和人工免疫系统. 它的目标是覆盖基础知识,使读者能够熟练地将各种算法应用于实际问题.
    • Lectures
    • Assignments
  • Open Sourced Elective: Database and Rails Ruby on Rails简介 德克萨斯大学 Lecture VideosAssignments Lecture Notes
  • SCICOMP An Introduction to Efficient Scientific Computation Universität Bremen Lecture Videos
    • 这是由科学计算机创建和教授的研究生课程 Oliver Serang 2014年,其中涉及计算机科学和统计学的主题,以及生物学的应用. 课程自上而下设计,从问题开始,然后从头开始推导出各种解决方案.
    • 主题包括memoization,recurrence closed forms,字符串匹配(排序,哈希表,基数尝试和后缀尝试),动态编程(例如Smith-Waterman和Needleman-Wunsch),贝叶斯统计(例如包络悖论),图形模型( HMM,维特比,结点树,置信传播),FFT和概率卷积树.
    • Lecture videos on Youtube 并直接 download
  • 14-740 计算机网络基础 * CMU * Lecture Videos Assignments Readings Lecture Notes
    • 这是一个关于研究生网络的入门课程. 它遵循自上而下的方法来教授计算机网络,因此它从大多数学生熟悉的应用层开始,随着课程的解开,我们将更多地了解协议栈的传输,网络和链路层.
    • 就先决条件而言 - 需要基本的计算机,编程和概率论背景.
    • 课程网站包含讲座视频,阅读材料和作业的链接.