大学课程

Awesome CS Courses Awesome

Introduction

There is a lot of hidden treasure lying within university pages scattered across the internet. This list is an attempt to bring to light those awesome CS courses which make their high-quality material i.e. assignments, lectures, notes, readings & examinations available online for free.

目录

Legend

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

Courses

Systems

  • CS 61C 计算机架构(机器结构)方面的好主意 * UC Berkeley * Lecture VideosLecture Notes Assignments Readings -本课程涵盖的主题包括:C和汇编语言编程,将高级程序转换为机器语言,计算机组织,缓存,性能测量,并行性,CPU设计,仓库规模计算以及相关主题.
  • CS 107 计算机组织与系统 斯坦福大学 Lecture Videos Assignments -CS107是斯坦福大学入门编程课程中的第三门课程. 该课程将从C编程语言一直到微处理器,以使机器不再神秘. 完全了解计算机系统如何执行程序和处理数据之后,您将成为一名更有效的程序员,尤其是在处理调试,性能,可移植性和鲁棒性方面.
  • CS 140 操作系统 斯坦福大学 Assignments Lecture Notes -本课程介绍现代操作系统中提供的基本功能. 该课程分为三个主要部分. 本课程的第一部分讨论并发. 本课程的第二部分解决了内存管​​理问题. 本课程的第三个主要部分涉及文件系统.
  • 6.004 计算结构 * MIT * Assignments Lecture Notes Lecture Videos -介绍数字系统的体系结构,强调各种技术共有的结构原理. 多层次实施策略; 使用较低级别的元素定义新的原语(例如,门,指令,过程,过程)及其机械化. 分析潜在的并发性; 优先约束和绩效指标; 流水线和多维系统. 指令集设计问题; 对当代软件结构的架构支持. 4个工程设计要点. 6.004介绍了数字系统的工程. 从MOS晶体管开始,该课程开发了一系列的构建模块逻辑门,组合和顺序电路,有限状态机,计算机以及最终的完整系统. 通过一系列设计示例探索了硬件和软件机制.
  • CS 162 操作系统和系统编程 * UC Berkeley * Lecture Videos Lecture Notes Assignments Readings -本课程的目的是讲授其他高级系统中出现的操作系统设计和操作系统概念. 我们将涵盖的主题包括操作系统,系统编程,网络和分布式系统以及存储系统的概念,包括多程序系统(进程,进程间通信和同步),内存分配(分段,分页),资源分配和调度,文件系统,基本网络(套接字,分层,API,可靠性),事务,安全性和隐私. -加州大学伯克利分校EECS主席举办的操作系统课程 David Culler - Lecture Videos 2015年春季讲座 - Lecture Notes 2015年春季讲座
  • CS 168 互联网简介:体系结构和协议 * UC Berkeley * Lecture Notes Assignments -本课程介绍了Internet体系结构. 我们将关注有助于互联网的可扩展性和健壮性的概念和基本设计原理,并研究此体系结构中使用的各种协议和算法. 主题包括分层,寻址,域内路由,域间路由,可靠传递,拥塞控制以及核心协议(例如TCP,UDP,IP,DNS和HTTP)和网络技术(例如以太网,无线).
  • CS 179 GPU编程 * Caltech * Assignments Lecture Notes -本课程将涵盖GPU的编程技术. 该课程将介绍NVIDIA的并行计算语言CUDA. 除了涵盖CUDA编程模型和语法之外,本课程还将讨论GPU架构,GPU上的高性能计算,并行算法,CUDA库以及GPU计算的应用.
  • CS 186 数据库系统简介 * UC Berkeley * Lecture Videos Assignments Readings Lecture Notes -在CS186中的项目分配中,您将编写一个称为SimpleDB的基本数据库管理系统. 对于本项目,您将专注于实现访问磁盘上存储的数据所需的核心模块. 在将来的项目中,您将添加对各种查询处理运算符以及事务,锁定和并发查询的支持.
  • CS 241 系统程式设计(2016年春季) 伊利诺伊大学香槟分校 Assignments Lecture Notes -系统编程是指编写具有程序员对操作系统支持优势的代码. 本课程旨在向您介绍系统编程. 在本课程结束时,您应该精通编写可以充分利用操作系统支持的程序. 具体而言,我们需要修复操作系统,并且需要选择一种编程语言来编写程序. 我们选择了在Linux / UNIX操作系统(在编程器和OS之间实现POSIX标准接口)上运行的C语言.
  • CS 425 分布式系统 伊利诺伊大学香槟分校 Assignments Readings -丰富的讲座和阅读材料集,涵盖了分布式时钟(如Vector Clocks,Consensus和Paxos)中的基本概念. 这是Indranil Gupta教授的2016版.
  • CS 452 实时编程 滑铁卢大学 Assignments Lecture Notes -用C编写实时OS微内核,并编写应用程序代码以响应实时传感器信息来操作模型集. 与火车的通讯以2400波特的速度运行,因此大约需要61毫秒来询问所有传感器有关火车可能位置的数据. 这使得挑战特别艰巨,因为火车在这段时间内可以移动约3厘米. 滑铁卢大学最具挑战性和最耗时的课程之一.
  • CS 2043 Unix工具和脚本 康奈尔大学 Assignments Lecture NotesReadings -类似UNIX的系统正越来越多地用于个人计算机,移动电话,Web服务器和许多其他系统上. 它们代表了一个很棒的编程环境家族,对计算机科学家和许多其他领域的人都有用,例如计算生物学和计算语言学,其中的数据自然用字符串表示. 本课程提供了深入的培训,以开发Unix命令行工具和脚本的技能,从而使大型而富挑战性的计算任务得以完成和自动化. 该课程将使学生从Shell基础知识和管道知识,到正则表达式处理工具,再到Shell脚本和Python.
  • CS 3410 计算机系统组织和编程 康奈尔大学 Assignments Lecture NotesReadings -CS3410提供了有关计算机组织,系统编程和硬件/软件接口的介绍. 主题包括指令集,计算机算术,数据路径设计,数据格式,寻址模式,包括高速缓存和虚拟内存的内存层次结构,I / O设备,基于总线的I / O系统以及多核体系结构. 学生学习汇编语言编程并设计流水线RISC处理器.
  • CS 4410 操作系统 康奈尔大学 Lecture NotesReadings -CS 4410涵盖系统编程以及操作系统的入门设计和实施. 我们将介绍操作系统的基础知识,即结构,并发性,调度,同步,内存管理,文件系统,安全性和网络连接. 该课程对所有精通CS3410 / ECE3140材料的本科生开放.
  • CS 4414 Operating Systems University of Virginia Lecture Videos Assignments -一门课程涵盖以下主题:分析过程的沟通与同步; 资源管理; 虚拟内存管理算法; 文件系统; 以及网络和分布式系统. 本课程的主要目标是提高您构建可扩展,健壮和安全的计算系统的能力. 它着重于通过理解现代计算机系统的核心抽象的基础来做到这一点.
  • CS 5412 Cloud Computing Cornell University Lecture Notes Readings -由该领域的一位坚强的教授Ken Birman教授授课,本课程有一组很棒的幻灯片,可以通过这些幻灯片. 教授 book 也是宝石,建议将其推荐为Google在 Distributed System Design
  • CSCE 3613 操作系统 阿肯色大学(费耶特维尔) Assignments Lecture NotesReadings -操作系统简介,包括系统结构,流程管理,存储管理,文件,分布式系统和案例研究的主题.
  • CSCI-UA.0202: Operating Systems (Undergrad) 操作系统 * NYU * Assignments Lecture Notes Readings -纽约大学的操作系统课程. 这是一门基础课程,重点介绍操作系统的基本概念,包括内存管理,进程调度,文件系统等. 它还包括一些推荐的阅读材料. 此外,还有一系列动手实验材料,可帮助您轻松理解OS.
  • CSCI 360 计算机架构3 * CUNY亨特学院* Assignments Lecture Notes -一门涵盖缓存设计,总线,内存层次结构,处理器外围接口以及多处理器(包括GPU)的课程.
  • CSCI 493.66 UNIX系统编程(以前为UNIX工具) * CUNY Hunter College * Assignments Lecture Notes -一门主要是针对UNIX API编写程序的课程,涵盖了内核接口和库的所有基本部分,包括文件,进程,终端控制,信号和线程.
  • CSCI 493.75 并行计算 * CUNY亨特学院* Assignments Lecture Notes -本课程介绍了使用消息传递接口(MPI)和OpenMP应用程序编程接口的C和C ++并行算法和并行编程. 它还包括对并行体系结构和互连网络的简要介绍. 它具有理论和实践意义,包括有关设计方法,性能分析和数学概念的材料,以及使用MPI和OpenMP进行编程的详细信息.
  • Hack the Kernel 操作系统简介 纽约布法罗的SUNY大学 Lecture Videos Assignments Lecture Notes -本课程介绍了操作系统的设计和实现. 我们研究操作系统是因为它们是解决一个困难的设计问题的成熟而优雅的解决方案的示例:如何安全有效地共享系统资源并提供对应用程序有用的抽象. -对于处理器,内存和磁盘,我们讨论了操作系统如何分配每种资源,并探讨了相关抽象的设计和实现. 我们还建立了测试和改善系统性能的技术,并介绍了硬件虚拟化的思想. 编程任务提供了在实际开发环境中实现核心操作系统组件的动手经验. 课程由 Dr.Geoffrey Challen
  • ECE 459 表演计划 滑铁卢大学 Lecture Notes Assignments -学习用于分析,重新配置和实施可处理工业规模输入的软件系统以及设计和构建关键软件基础结构的技术. 通过并行化,多线程,异步I / O,矢量化和GPU编程以及分布式计算来学习性能优化.
  • ECGR4101/5101 使用瑞萨电子RX63N处理器的嵌入式系统 北卡罗来纳大学夏洛特分校 Lecture Videos Readings -介绍使用汇编和C程序设计基于微控制器的嵌入式计算机系统的介绍. 检查实时操作系统及其对性能的影响. 将强调计算机工程应用. -本课程的目标是通过介绍微控制器的实际操作经验,巩固和增强学生的计算机组织知识. 学生还将研究一些用于商业和医疗产品的传感器,并学习如何将它们连接到微控制器系统中.
  • PODC 分布式计算原理 * ETH-Zurich * Assignments Readings Lecture Notes -在一组易于阅读的讲义中探索基本的算法思想和下限技术,基本上是分布式计算的“明珠”,并结合完整的练习和解决方案.
  • SPAC 平行与并发 华盛顿大学 Readings -从技术上讲,这不是一门课程,但是Dan Grossman教授在UWash向大二学生教授并行性和并发性概念时使用的材料真棒
  • 6.824 分布式系统 * MIT * Assignments Lecture Notes -麻省理工学院的研究生级DS课程,侧重于容错,复制和一致性,所有课程均通过Golang中的出色实验作业进行教授!
  • 6.828 操作系统 * MIT * Assignments Lecture Notes -MIT的操作系统课程侧重于OS设计的基础知识,包括引导,内存管理,环境,文件系统,多任务处理等. 在一系列实验任务中,您将构建JOS,这是用C编写的OS exokernel.
    • 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的邮政编码相同)!
  • 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服务的成本和性能对学生团队进行评估.
  • 15-418 并行计算机体系结构和编程 卡内基-梅隆大学 Lecture Videos Assignments Lecture Notes Readings -本课程的目的是深入了解设计现代并行计算系统所涉及的基本原理和工程取舍,并教授有效利用这些机器所需的并行编程技术. 由于编写好的并行程序需要了解关键的机器性能特征,因此本课程将涵盖并行硬件和软件设计.
  • 15-440 分布式系统 卡内基-梅隆大学 Assignments Lecture Notes -介绍分布式系统,重点介绍通过Go编程语言实施的项目的教学概念.
  • 15-721 数据库系统 卡内基-梅隆大学 Lecture Videos Assignments Readings -本课程是对现代数据库管理系统内部的全面研究. 它将涵盖在高性能事务处理系统(OLTP)和大规模分析系统(OLAP)中使用的组件的核心概念和基础. 全班将强调实施这些想法的效率和正确性. 所有的课堂项目都将在一个真正的内存多核数据库系统中进行. 该课程适用于软件系统的研究生和具有较强系统编程技能的高级本科生.
  • 15-445/645 数据库系统 卡内基-梅隆大学 Lecture Videos Assignments Readings -与CMU 15-721相比,本课程涵盖了DBMS的基本主题.
  • 15-749 工程分布式系统 卡内基-梅隆大学 Readings
    -专注于分布式系统的项目课程,提供了很棒的阅读清单
  • 18-447 计算机架构简介 * CMU * Lecture Videos Assignments Readings -有关计算机体系结构的非常全面的材料-绝对不仅仅是“介绍”. 在线资料非常人性化,甚至在线提供了朗诵视频. 这是Prof. Onur Mutlu

Programming Languages / Compilers

  • CS 75 编译器设计原理 斯威斯摩学院 Lecture Videos Assignments Lecture Notes -模仿有影响力的论文 incremental approach to compiler design,本课程教您如何在OCaml中构建编译器
  • CS 91 编程语言简介 斯威斯摩学院 Lecture Notes Assignments -使用 Pyret 编程语言和 PAPL 本书了解编程语言的基础知识.
  • CIS 194 Haskell简介* Penn Engineering * Assignments Lecture Notes -使用Haskell作为工具,探索函数式编程的乐趣. 本课程的目的是使您可以使用Haskell轻松便捷地编写实用程序.
    • Previous 也有一个学期,有更多的练习
  • CIS 198 锈编程 * UPenn * Lecture Notes Assignments -本课程介绍了Rust如此独特的原因,并将其应用于实际的系统编程问题. 涵盖的主题包括特征和泛型; 内存安全(移动语义,借用和生存期); Rust的丰富宏系统; 关闭; 和并发.
  • Clojure Functional Programming with Clojure University of Helsinki 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的目标是使学生具备设计,实施和扩展编程语言的能力. 在整个课程中,学生将设计和实现几种相关的语言,并将探索解析,语法查询,数据流分析,编译为字节码,类型系统和语言互操作.
  • COS 326 函数式编程 普林斯顿大学 Assignments Lecture Notes -使用OCaml编程语言介绍了函数式编程概念,例如闭包,尾调用递归和并行性
  • CS 143 编译器构建 斯坦福大学 Lecture NotesAssignments -CS143是斯坦福大学有关编译器构造的实践和理论方面的课程.
  • CS 164 使用您的语言! 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes -通过设计和实现特定领域的语言来介绍编程语言.
  • CS 173 程序语言 布朗大学 Lecture Videos Assignments -Krishnamurthi教授的课程( HtDP)以及其他 awesome books 关于编程语言. 使用定制设计 Pyret 编程语言来教授概念. 有一个 online class 于2012年举办,其中包括所有演讲视频供您欣赏.
  • CS 223 榆树中的纯功能数据结构 芝加哥大学 Assignments Lecture Notes -本课程根据Chris Okazaki的书并使用Elm编程语言教授函数式反应式编程和纯函数式数据结构.
  • CS 240h Haskell的功能系统 斯坦福大学 Assignments Lecture Notes -在Haskell中构建软件系统
  • CS 421 程序语言和编译器 伊利诺伊大学香槟分校 Lecture Videos Assignments Lecture Notes 使用OCaml教授功能编程和编程语言设计的课程.
  • CS 3110 数据结构和函数编程 康奈尔大学 Assignments Lecture Notes -另一门使用OCaml讲授替代编程范例的课程,尤其是函数式和并发编程.
  • CS 4120 编译器简介 康奈尔大学 Assignments Lecture NotesReadings -介绍现代编译器的规范和实现. 涵盖的主题包括词法扫描,解析,类型检查,代码生成和翻译,优化介绍以及对现代编程语言的编译时和运行时支持. 作为课程的一部分,学生将为面向对象的语言构建有效的编译器.
  • CS 4400 程序语言 东北大学 Assignments Lecture Notes Readings -这是一门学习,设计和实现编程语言的课程. -该课程在两个同时进行的水平上进行工作:首先,我们将使用一种编程语言来演示各种编程范例. 其次,使用这种语言,我们将通过实现我们自己的语言来学习编程语言背后的机制. 两级方法通常意味着我们将经常看到如何使用某个功能,并继续实现它.
  • CS 4610 程序语言和编译器 弗吉尼亚大学 Assignments Lecture Notes -使用OCaml教授功能编程和编程语言设计的课程. 每个分配都是类似于Java的面向对象语言的解释器和编译器的一部分,并且您需要为每个分配使用不同的语言(即,从Python,JS,OCaml,Haskell,Ruby中选择4).
  • CS 5114 网络编程语言 康奈尔大学 Lecture NotesReadings -本课程介绍了用于计算机网络编程的语言. 它将检查基于逻辑,功能和分布式语言的最新建议,以及使用自动求解器,模型检查器和校对助手建立正确性的工具.
  • CS 5142 脚本语言 康奈尔大学 Lecture NotesAssignments -Perl,PHP,JavaScript,VisualBasic-它们通常是求职技能,但是我们大多数人没有时间了解它们的全部内容. 在本课程中,您将学习如何使用脚本语言进行快速原型设计,Web编程,数据处理和应用程序扩展. 本课程除了涵盖适用于脚本的传统编程语言概念(例如,动态键入和作用域)之外,还研究传统语言中很少发现的新概念(例如,字符串插值,哈希和多语言代码). 通过一系列小项目,您可以使用不同的语言来完成编程任务,从而突出显示脚本的优缺点. 副作用是,您练习自己教新语言.
  • CS 5470 编译器 犹他大学 Assignments Lecture Notes Readings -如果您是马特(Matt)教授对他的著作的粉丝 fantastic blog 您应该尝试一下. 该课程涵盖了编译器的设计和实现,并探讨了相关主题,例如解释器,虚拟机和运行时系统. 除了教授的机智之外 cheating 该页面上有许多有趣的程序语言,解析和编译器链接.
  • CS 6118 类型和语义 康奈尔大学 Lecture NotesReadings -类型和语义是关于设计和理解编程语言的,无论它们是特定于领域的还是通用的. 此类的目的是提供各种工具,用于为手头的任务设计自定义(编程)语言. 其中的一部分将是关于语言如何工作的各种见解,以及与学者和业界合作创建新语言(例如锡兰和科特林)的经验. 该课程着重于类型和语义以及它们之间的相互作用. 这意味着类别理论和建设性类型理论(例如Coq和更丰富的变体形式)是班级的辅助主题. 该课程还涵盖非常规语义领域,例如经典线性类型理论,以使学生摆脱常规思维,并提供强大的目标,这些能力能够规范化思想,例如网络协议,资源敏感的计算和并发构造. 课堂项目旨在设计和形式化(编程)语言以供学生选择,并且作业旨在确保学生在课堂项目中最终掌握这些技能之前,有机会练习运用课堂上学到的技术.
  • CSC 253 CPython内部:通过Python解释器源代码进行的十小时代码演练 罗切斯特大学 Lecture VideosReadings -九场讲座讲解了CPython的内部结构,CPython是用C实现的规范化的Python解释器.这些讲座来自2014年秋季在罗切斯特大学开设的“动态语言和软件开发”课程.
  • CSE 341 程序语言 华盛顿大学 Lecture Videos Assignments Lecture Notes -涵盖非命令式范例和语言,例如Ruby,Racket和ML,以及编程语言的基础知识.
  • CSE P 501 编译器构建 华盛顿大学 Lecture Videos Assignments -理解现代编译器的结构以及将代码从高级语言转换为机器语言的主要算法. 最好的方法是实际构建一个可运行的编译器,因此将有一个重要的项目来实现,该项目将用Java的核心子集编写的程序转换为可执行的x86汇编语言. 编译器本身将使用扫描器和解析器生成器工具,默认的实现语言是Java.
  • DMFP 离散数学与函数编程 惠顿学院 Lecture Videos Assignments -通过函数式编程教授离散数学概念的课程
  • Lecture Videos
  • Assignments
  • PCPP 实用的并行和并行编程 哥本哈根IT大学 Lecture NotesAssignmentsReadings -在本课程中,您将学习如何在标准的共享内存多核硬件上主要使用Java编写正确有效的并发和并行软件. -该课程涵盖了线程,锁和共享内存之类的基本机制,以及诸如批量数据的并行流,事务性内存,消息传递以及具有比较和交换功能的无锁数据结构之类的更高级的机制. -它涵盖了原子性,安全性,活跃性和僵局等概念. -它涵盖了如何衡量和理解并行程序的性能和可伸缩性. -它涵盖了在并发程序中查找错误的工具和方法.
  • 6.945 高级符号编程冒险 * MIT * Lecture NotesAssignmentsReadings -由SICP知名度的Gerald Sussman讲授,该课程涉及概念和技术,这些概念和技术用于设计大型软件系统的实现,这些软件可以适应设计人员无法预期的用途. 应用程序包括编译器,计算机代数系统,演绎系统和一些人工智能应用程序.
    • Assignments :使用MIT / GNU方案进行大量编程. 学生应该在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 数据结构 * UC伯克利* Lecture Videos Assignments Lecture Notes Readings -在本课程中,您将学习先进的编程技术,包括数据结构,封装,抽象数据类型,接口以及用于排序和搜索的算法,并且您会领会“软件工程”,即大型程序的设计和实现.
    • Full Lecture Materials 2016年春季讲课.该网站包含完整的材料,包括视频链接,实验室,家庭作业,项目. 对于自学者来说非常好. 对于Java来说也是一个好的开始. 它包括Java文档,数据结构资源,Git / GitHub和Java开发资源的其他有用资源. Resources
    • Labs 网站上包含指向实验室和项目的链接.
    • Lecture Videos
  • CS 97SI 竞争性程序设计导论 斯坦福大学 Assignments Lecture Notes -涵盖了各种主题的理论和实践问题的绝佳知识库,适合有兴趣参加ACM-ICPC的学生.
  • CS 224 高级算法 哈佛大学 Lecture Videos Assignments Lecture Notes -CS 224是一门算法设计的高级课程,我们将讲授的主题包括单词RAM模型,数据结构,摊销,在线算法,线性编程,半定性编程,近似算法,哈希,随机算法,快速指数时间算法,图形算法和计算几何.
  • CS 261 算法第二门课程 斯坦福大学 Lecture Videos Assignments Lecture Notes -网络优化算法:最大流量,最小成本流量,匹配,分配和最小切割问题. 线性编程简介. LP对偶用于设计和分析算法. NP完全问题(如Steiner树,旅行商和调度问题)的近似算法. 随机算法. 在线算法简介.
  • CS 473/573 基础算法 伊利诺伊大学香槟分校 Assignments Lecture Notes -涵盖递归,随机化,摊销,图算法,网络流量和硬度的算法类. 埃里克森教授的讲义十分全面,足以使自己成为一本书. 强烈推荐!
  • CS 2150 程序和数据表示形式 弗吉尼亚大学 Assignments Lecture Notes -本数据结构课程介绍C ++,链接列表,堆栈,队列,树,数字表示,哈希表,优先级队列,堆,霍夫曼编码,图形和x86汇编.
  • CS 4820 算法分析导论 康奈尔大学 Assignments Lecture Notes Readings -本课程开发用于算法设计和分析的技术,重点是计算应用程序中出现的问题. 示例应用程序来自系统和网络,人工智能,计算机视觉,数据挖掘和计算生物学. 本课程涵盖四种主要的算法设计技术(贪婪算法,除法与征服,动态编程和网络流),侧重于不可判定性的可计算性理论,侧重于NP完整性的计算复杂性以及解决棘手问题的算法技术,包括结构化特殊算法的识别案例,近似算法和本地搜索启发式算法.
  • CSCI 104 数据结构和面向对象的设计 Assignments Lecture Notes 南加州大学(USC)
  • CSCI 135 软件设计与分析I Assignments Lecture Notes
  • CUNY亨特学院* -目前,它是程序开发和问题解决的深入介绍. 它的重点是设计,实施和评估小型程序的过程. 尽管本课程的大部分时间都花在C ++的细节上,但它不应该是C ++编程课程. C ++是一种非常庞大和复杂的编程语言,具有许多功能,它们以意外的方式交互. 一个人甚至不需要知道一半的语言就可以很好地使用它.
  • CSCI 235 软件设计与分析II 纽约市立大学亨特学院 Assignments Lecture Notes -介绍一些常见问题(例如排序)的算法. 实际上,它通过诸如递归,指针和异常处理等主题来提高学生的编程技能,并为提高软件工程技能和为学生提供更高效编程的实践经验提供了机会.
  • CSCI 335 软件设计与分析III Assignments Lecture Notes
  • CUNY亨特学院* -这包括引入哈希,堆,各种形式的树和图形. 它还从比前传中更高的角度重新审视了递归和排序问题. 在此之上,它旨在介绍算法分析的方法.
  • CSE 331 软件设计与实现 华盛顿大学 Assignments Lecture Notes -探索以现代高级语言设计和构建可靠且可维护的软件系统的概念和技术; 程序结构和设计; 程序正确性方法,包括测试.
  • CSE 373 算法分析 石溪大学 Lecture Videos Assignments Lecture Notes Readings -在算法方面,史蒂文·斯基埃纳(Steven Skiena)教授对任何学生都不陌生. 他的开创性 book 被许多人吹捧为最好 getting that job in Google . 此外,他还以辅导学生竞争能力而闻名 programming competitions . 如果您希望重新学习有关算法的知识,那么本课程不会错.
  • ECS 122A 算法设计与分析 * UC Davis * Lecture Videos Assignments Lecture Notes -授课 Dan Gusfield in 2010, this course is an undergraduate introduction to algorithm design and analysis. It features traditional topics, such as Big Oh notation, as well as an importance on implementing specific algorithms. Also featured are sorting (in linear time), graph algorithms, depth-first search, string matching, dynamic programming, NP-completeness, approximation, and randomization.
  • ECS 222A Graduate Level Algorithm Design and Analysis UC Davis Lecture Videos Assignments Lecture Notes -这是ECS 122A本科算法课程的研究生水平的补充 Dan Gusfield 假设您在2011年学习过本科课程,并且在学习一些本科算法主题时,将重点更多地放在了日益复杂和高级的算法上.
  • 6.INT 无法接受Google采访 * MIT * Readings -该课程在2009年的麻省理工学院“独立活动时期”教授了针对普通面试问题的通用解决方案,供苹果,谷歌和Facebook等高度精选公司的软件工程师面试使用. 它们涵盖了时间复杂性,哈希表,二进制搜索树以及您应该已经在其他课程中涵盖的其他常见算法主题,但是更深入地介绍了您在课堂上不会学到的东西,例如按位逻辑和问题解决技巧.
  • 6.006 算法简介* MIT * Lecture VideosAssignments Readings -本课程介绍计算问题的数学建模. 它涵盖了用于解决这些问题的常见算法,算法范例和数据结构. 该课程强调算法与编程之间的关系,并介绍针对这些问题的基本性能指标和分析技术.
  • 6.046J/18.410J 算法的设计和分析 * MIT * Lecture VideosLecture Notes Assignments Readings -这是一门中级算法课程,重点是用于设计和分析有效算法的教学技术,强调应用方法. 主题包括分治法,随机化,动态编程,贪婪算法,增量改进,复杂性和密码学. 本课程假设学生知道如何通过学习简单的算法和数据结构来进行分析. 6.006 . 它向学生介绍计算机算法的设计以及对复杂算法的分析.
  • 6.851 高级数据结构 * MIT * Lecture Videos Assignments Lecture Notes -这是一门高级DS课程,您必须完成 Advanced Algorithms 当然要先尝试一下.
  • 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 -本课程是算法类一年级研究生课程. 重点放在基本算法和算法设计,分析和实现的高级方法上. 涉及的技术包括摊销,随机化,指纹识别,字级并行性,位缩放,动态编程,网络流,线性编程,固定参数算法和近似算法. 域包括字符串算法,网络优化,并行算法,计算几何结构,在线算法,外部存储器,缓存和流算法以及数据结构. 几乎在计算机科学的每个领域都需要高效的算法. 但是要解决的问题的类型,什么算法是“有效的”的概念,甚至计算模型也可能因地区而异.在第二类算法中,我们将研究许多适用的技术广泛地设计高效算法,并研究它们在广泛的应用领域和计算模型中的应用,目标是使课程更加广泛而不是深入,我们的计划是着眼于以下领域.该课程可能涵盖的主题列表;我们将根据学生的背景,兴趣和学习进度自适应地选择材料.
  • 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逻辑和静态类型系统.
  • CS 103 Mathematical Foundations of Computing Stanford University Assignments Lecture Notes -CS103是离散数学,可计算性理论和复杂性理论的第一门课程. 在本课程中,我们将探讨计算机功能的局限性,探讨为什么某些问题比其他问题更难解决,并了解如何以数学确定性进行推理. -所有讲座笔记和作业的链接都直接在课程页面上
  • CS 173 离散结构 伊利诺伊大学厄本那-香槟分校 Assignments Lecture Notes Readings -本课程介绍了计算机科学的理论方面. 在其中,您将学习如何构造证明,读写文盲形式的数学,快速入门关键理论主题并熟悉计算机科学中常用的一系列标准数学概念.
  • CS 276 密码学基金会 加州大学伯克利分校 Lecture Notes -本课程讨论了现代密码学的复杂性理论基础,并探讨了该领域的最新成果,例如全同态加密,不可区分性混淆,MPC等.
  • CS 278 复杂性理论 * UC Berkeley * Lecture Notes -复杂度理论的研究生课程,介绍P对NP,随机数的幂,平均情况的复杂度,近似硬度等.
  • CS 374 计算算法和模型(2014年秋季) 伊利诺伊大学香槟分校 Lecture Videos Assignments Lecture Notes -CS 498第374节(非正式地称为“ CS 374”)涵盖了理论计算机科学的基本工具和技术,包括算法的设计和分析,形式语言和自动机,可计算性和复杂性. 特定主题包括常规语言和无上下文语言,有限状态自动机,递归算法(包括分而治之,回溯,动态编程和贪婪算法),基本图算法(包括深度和广度优先搜索,拓扑排序,最小值生成树和最短路径),不确定性和NP完整性. 该课程还着重于清晰的技术交流.
  • CS 3110 数据结构和函数编程 康奈尔大学 Assignments Lecture NotesReadings -CS 3110(以前称为CS 312)是计算机科学课程中的第三门编程课程,仅次于CS 1110/1112和CS2110.该课程的目的是帮助学生成为优秀的程序员和软件设计师,他们可以设计和实现可以优雅,高效,正确,并且可以维护和重用其代码.
  • CS 3220 科学计算导论 康奈尔大学 Assignments Lecture NotesReadings -在这个为期一个学期的调查课程中,我们介绍了用于求解线性和非线性方程式,对数据进行插值,计算积分和求解微分方程式的数值方法,并描述了解决科学问题时如何明智地使用这些工具(我们希望!).
  • CS 4300 信息检索 康奈尔大学 Assignments Lecture NotesReadings -研究用于在大型系统中搜索和发现信息的方法. 重点是应用于文本材料的信息检索,但对其他格式也有一些讨论.该课程包括搜索,浏览和过滤信息的技术以及分类系统和同义词库的使用. 通过Web搜索和数字图书馆的示例说明了这些技术.
  • CS 4810 计算理论导论 康奈尔大学 Assignments Lecture Notes Readings -该本科课程广泛介绍了计算机科学的数学基础. 我们将研究基本的计算模型,尤其是图灵机. 目的是了解在这些模型中可以解决或不能解决的问题.
  • CS 6810 计算理论 康奈尔大学 Assignments Lecture Notes Readings -该研究生课程广泛介绍了复杂性理论,包括经典成果和最新进展. 复杂性理论旨在了解有效计算的能力(当时间和空间等计算资源受到限制时). 在这种情况下出现了许多令人信服的概念性问题. 这些问题中的大多数(令人惊讶地?)很困难,并且还没有得到解决. 尽管如此,在理解它们(以及为什么困难)方面已经取得了很多进展. 我们将在本课程中了解这些进展. 主题将是具有类似随机属性的组合构造,例如扩展器图和纠错码. 一些例子: -找到解决方案本质上比验证困难吗? -更多的计算资源意味着更多的计算能力吗? -查找近似解比精确解容易吗? -随机算法是否比确定性算法更强大? -在一般情况下比在最坏情况下解决问题容易吗? -量子计算机是否比传统计算机强大?
  • CSCE 3193 程式设计范例 阿肯色大学(费耶特维尔) Assignments Lecture Notes -以不同的范例进行编程,重点是面向对象的编程,网络编程和功能编程. 编程语言调查,事件驱动的编程,并发,软件验证.
  • 6.045 理论计算机科学的伟大思想 * MIT * Lecture Notes Lecture Videos Readings -本课程对理论计算机科学的一些中心思想进行了具有挑战性的介绍. 从古代开始,该课程将通过有限的自动机,电路和决策树,图灵机和可计算性,有效的算法和可约性,P对NP问题,NP完备性,随机性,密码学和单向函数,计算能力进行发展学习理论和量子计算. 它研究了各种机器可以解决和不能解决的问题. 它试图解释影响计算能力的计算模型之间的关键差异.

Introduction to CS

  • CS 10 计算的美丽与欢乐 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes -CS10是UCB的入门计算机科学课程,使用初学者的拖放语言进行授课. 学生将了解历史,社会影响,伟大的原则以及计算机的未来. 他们还将学习使用友好的图形语言对计​​算机进行编程的乐趣,并将完成与他们的兴趣相关的大量团队编程项目.
  • 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] * UC Berkeley * Lecture Videos Assignments Lecture Notes -在CS 61A中,我们有兴趣教给您有关编程的知识,而不是教您如何使用一种特定的编程语言. 我们考虑了一系列用于控制程序复杂度的技术,例如功能编程,数据抽象和面向对象的编程. 掌握特定的编程语言是研究这些通用技术的非常有用的副作用. 但是,我们的希望是,一旦您了解了编程的本质,就会发现采用一种新的编程语言只是几天的工作.
  • CS 61AS 计算机程序的结构和解释[球拍] 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes -CS61课程的自定进度版本,但在球拍/方案中. 61AS是一门很好的入门课程,它将使您轻松理解将来的CS课程将涵盖的所有令人惊奇的概念,因此请记住保持开放的态度,玩得开心,并始终尊重数据抽象
  • CS 101 计算机科学101 斯坦福大学 Lecture Videos Assignments Lecture Notes -CS101为零经验的读者讲授计算机科学的基本思想. 参与者玩弄并尝试了一些“计算机代码”,以使计算机的功能和局限性栩栩如生. -演讲视频注册后将免费提供.
  • CS 106A 编程方法 斯坦福大学 Lecture Videos Assignments Lecture Notes -这门课程是编程入门课程中最大的课程,也是斯坦福大学最大的课程之一. 主题着重介绍计算机应用程序工程,重点介绍现代软件工程原理:面向对象的设计,分解,封装,抽象和测试. 编程方法论教授了广泛使用的Java编程语言以及良好的软件工程原理.
  • CS 106B 编程抽象 斯坦福大学 Lecture Videos Assignments Lecture Notes -本课程是“编程方法论”的自然继承者,涵盖了使用C ++编程语言(类似于C和Java)的高级编程主题,例如递归,算法分析和数据抽象.
  • CS 107 编程范例 斯坦福大学 Lecture Videos Assignments Lecture Notes -主题:C和C ++的高级内存管理功能; 命令式和面向对象范例之间的差异. 功能范例(使用LISP)和并发编程(使用C和C ++)
  • CS 109 使用Scala进行编程实践 * KAIST * Assignments Lecture Notes -本课程介绍编程和计算机科学的基本概念,例如动态和静态类型输入,动态内存分配,对象和方法,数字的二进制表示,从命令行使用编辑器和编译器,从命令行运行带有参数的程序,使用库以及使用基本数据结构(例如数组,列表,集合和映射). 我们将在本课程中使用Scala.
  • 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(图形用户界面). 每周的实验室在计算机上提供有指导的实践,并有工作人员在场. 作业使用图形和GUI来帮助提高流畅性和理解力.
  • CS 1112 Introduction to Computing Using Matlab Cornell University Assignments Lecture NotesReadings -使用MATLAB进行编程和问题解决. 强调算法和程序的系统开发. 主题包括迭代,函数,数组和向量,字符串,递归,算法,面向对象的程序设计和MATLAB图形. 作业旨在对复杂性,维度,模糊数据,不精确的算术,随机性,模拟和逼近作用有所了解. 无需编程经验; 需要一些微积分知识.
  • CS 1115 使用Matlab图形用户界面的计算科学与工程简介 康奈尔大学 Assignments Lecture NotesReadings -使用MATLAB进行编程和问题解决. 强调算法和程序的系统开发. 主题包括迭代,函数,数组和向量,字符串,递归,算法,面向对象的程序设计和MATLAB图形. 作业旨在对复杂性,维度,模糊数据,不精确的算术,随机性,模拟和逼近作用有所了解. 无需编程经验; 需要一些微积分知识.
  • CS 1130 过渡到OO编程 康奈尔大学 Assignments Lecture NotesReadings -使用Java的面向对象概念的介绍. 假定使用诸如MATLAB,C,C ++或Fortran之类的语言来编程. 欢迎学习过Java但不熟悉OO编程的学生.
  • CS 1133 转换为Python 康奈尔大学 Assignments Lecture NotesReadings -Python编程语言简介. 涵盖Python的基本编程构造,包括赋值,条件,迭代,函数,面向对象的设计,数组和向量化计算. 假定使用Java,Matlab,C,C ++或Fortran等语言的编程知识.
  • CS 1410-2CS2420-20 Computer Science I 和 II for Hackers University of Utah Assignments Lecture Notes Readings -本着SICP精神设计的入门课程 Professor Matthew Flatt (Racket的首席设计师之一,HtDP的作者). 主要是Racket和C,以及一些Java,并解释了高级功能编程概念与OOP程序设计之间的关系. 如果SICP太多,请在SICP之前执行此操作...
  • CS 2110 面向对象的程序设计和数据结构 康奈尔大学 Assignments Lecture NotesReadings -CS 2110是中级编程课程,是计算机科学的入门课程. 主题包括程序设计和开发,调试和测试,面向对象的编程,正确性证明,复杂性分析,递归,常用数据结构,图形算法和抽象数据类型. Java是主要的编程语言. 通过查看以下链接可以轻松提取课程大纲 lectures.
  • CS 4302 网络信息系统 康奈尔大学 Assignments Lecture NotesReadings -本课程将向您介绍在万维网上构建以数据为中心的信息系统的技术,展示此类系统的实际应用,并通过研究诸如公民科学,数据新闻和开放政府. 课程工作包括讲座和阅读以及每周的家庭作业,以及一个学期的项目,在该项目中,学生将展示他们在构建以数据为中心的Web信息系统方面的专业知识.
  • CSCE 2004 程序设计基础I 阿肯色大学(费耶特维尔) Assignments Lecture NotesReadings -为计算机科学或计算机工程专业的学生开设的入门课程. 软件开发过程:问题规范,程序设计,实现,测试和文档. 编程主题:数据表示,条件和迭代语句,函数,数组,字符串,文件I / O和类. 在UNIX环境中使用C ++.
  • CSCI E-1 了解计算机和互联网 哈佛大学扩展学院 Lecture VideosAssignments Lecture Notes -本课程的主要目的是了解:了解按下开关时计算机内部的情况,为什么技术支持会不断重启计算机,他人如何监视您在Internet上所做的一切以及计算机如何能够只需打开电源即可感染蠕虫. 该课程专为每天使用计算机和互联网但不完全了解其工作原理的学生而设计,可填补空白. 通过关于硬件,软件,Internet,多媒体,安全性,隐私,网站开发,编程等的讲座,本课程“摆脱了计算机和Internet的束缚”,使学生了解其全部工作原理和原因. 通过对时事的讨论,学生还可以接触到最新技术.
  • CS-for-all 全民CS * 哈维穆德学院 Assignments Lecture Notes Readings -本书(和课程)对“ Intro CS”采用了独特的方法. 简而言之,我们的目标是对计算机科学进行介绍,这是一个知识丰富且充满活力的领域,而不是仅专注于计算机编程. 虽然编程无疑是我们方法的重要且普遍的元素,但是我们强调语法和编程语言功能方面的概念和问题解决方案.
  • 6.001 计算机程序的结构和解释 * MIT * Lecture Videos Assignments Lecture Notes -使用Scheme编程语言教授大图像计算概念. 学生将以各种不同的编程范例(功能,面向对象,逻辑)实施程序. 重点强调函数组成,作为数据的代码,具有连续性的控制抽象以及通过宏的句法抽象. 如果您希望建立一个思维框架来挂起编程知识,那么这是一门极好的课程.
  • 6.005 软件建设,2016年秋季 麻省理工学院 Assignments Lecture Notes -本课程介绍软件开发的基本原理和技术. 学生将学习如何编写可避免错误,易于理解且随时可以更改的软件. 主题包括规范和不变式. 测试,测试用例的生成和覆盖; 状态机 抽象数据类型和表示独立性; 面向对象编程的设计模式; 并发编程,包括消息传递和共享并发,以及防止竞争和死锁; 以及具有不变数据和高阶函数的函数式编程.

Machine Learning

  • DEEPNLP 用于自然语言处理的深度学习 牛津大学 Assignments Lecture Notes -这是一门应用课程,着重于使用递归神经网络分析和生成语音和文本的最新进展. 我们介绍了相关机器学习模型的数学定义,并推导了它们相关的优化算法. 该课程涵盖了NLP中神经网络的一系列应用,包括分析文本中的潜在维度,将语音转录为文本,在语言之间进行翻译以及回答问题. 本课程由Phil Blunsom组织,并与“ DeepMind自然语言研究组”合作提供.
    • Lectures -分配在组织页面上标题为“实践”
  • CS20si 用于深度学习研究的Tensorflow 斯坦福大学 Assignments Lecture Notes -本课程将涵盖Tensorflow库用于深度学习研究的基础知识和当代用法. 我们旨在帮助学生理解Tensorflow的图形计算模型,探索其提供的功能,并学习如何构建和构建最适合深度学习项目的模型. 在整个课程中,学生将使用Tensorflow构建不同复杂度的模型,从简单的线性/逻辑回归到卷积神经网络,再到具有LSTM的递归神经网络,以解决诸如单词嵌入,翻译,光学字符识别等任务. 学生还将学习最佳实践,以构建模型和管理研究实验.
  • COMS 4771 机器学习 哥伦比亚大学 Assignments Lecture Notes -课程由 Tony Jebara 介绍了机器学习中用于生成和判别估计的主题. 资料将包括最小二乘法,高斯分布,线性分类,线性回归,最大似然,指数族分布,贝叶斯网络,贝叶斯推断,混合模型,EM算法,图形模型,隐马尔可夫模型,支持向量机和核方法.
  • CS 109 数据科学 哈佛大学 Assignments Lecture Notes Readings -从数据中学习,以获得有用的预测和见解. 本课程介绍了调查的五个主要方面的方法:数据整理,清理和采样以获取合适的数据集; 数据管理能够快速可靠地访问大数据; 探索性数据分析以产生假设和直觉; 基于统计方法(例如回归和分类)进行预测; 以及通过可视化,故事和可解释的摘要传达结果.
  • CS 156 从数据中学习 * Caltech * Lecture Videos Assignments Lecture NotesReadings -这是一门机器学习(ML)入门课程,涵盖基础理论,算法和应用. ML是大数据以及许多金融,医疗,商业和科学应用中的关键技术. 它使计算系统能够利用从观测数据中积累的经验来自适应地提高其性能. ML已成为当今最热门的研究领域之一,由加州理工学院15个不同专业的本科生和研究生攻读. 该课程平衡了理论和实践,涵盖了数学和启发式方面.
  • CS 189 机器学习简介 * UC伯克利* Assignments Lecture Notes -入门级ML课程涵盖广泛的主题:从最小二乘法到卷积神经网络
  • CS 224d 用于自然语言处理的深度学习 斯坦福大学 Lecture Videos Assignments Lecture Notes -自然语言处理(NLP)是信息时代最重要的技术之一. 了解复杂的语言话语也是人工智能的关键部分. NLP的应用无处不在,因为人们可以使用语言交流几乎所有内容:网络搜索,广告,电子邮件,客户服务,语言翻译,放射学报告等.为NLP应用提供支持的基础任务和机器学习模型种类繁多. 最近,深度学习方法已在许多不同的NLP任务中获得了很高的性能. 通常可以使用单个端到端模型来训练这些模型,并且不需要传统的,特定于任务的功能工程. 在本春季课程中,学生将学习实现,训练,调试,可视化和发明自己的神经网络模型. 本课程深入探讨了应用于NLP的深度学习的前沿研究.
  • CS 229r 大数据算法 哈佛大学 Lecture Videos Assignments Lecture Notes -大数据是指无法容纳在一台机器的主存储器中的大数据,在互联网搜索,网络流量监控,机器学习,科学计算,信号处理和其他几个方面. 本课程将涵盖用于开发此类算法的严格数学模型,以及在这些模型中运行的算法的可证明的局限性.
  • CS 231n 用于视觉识别的卷积神经网络 斯坦福大学 Assignments Lecture Notes Lecture Videos -计算机视觉已经在我们的社会中变得无处不在,其应用包括搜索,图像理解,应用,地图,医学,无人机和自动驾驶汽车. 本课程深入探讨了深度学习架构的细节,重点是学习这些任务的端到端模型,尤其是图像分类. 在为期10周的课程中,学生将学习实现,训练和调试自己的神经网络,并获得对计算机视觉前沿研究的详细了解.
  • CS 287 高级机器人 加州大学伯克利分校 Assignments Lecture Notes -本课程介绍了最先进的机器人系统下的数学和算法. 这些技术中的大多数很大程度上基于概率推理和优化-这两个领域在现代人工智能中具有广泛的适用性. 该课程的预期副作用是通常会增强您在这两个领域的专业知识.
  • CS 395T 科学计算的统计和离散方法 德克萨斯大学 Lecture Videos Lecture Notes Assignments -将现代统计技术应用于实际数据,特别是生物信息学数据和大型数据集的实践课程. 重点是高效的计算和简洁的编码,主要是在MATLAB和C ++中. 涵盖的主题包括概率论和贝叶斯推理; 单变量分布; 中心极限定理; 产生随机偏差; 尾部(p值)测试; 多重假设校正; 经验分布 模型拟合; 误差估计; 列联表; 多元正态分布; 系统发生聚类; 高斯混合模型; 电磁法 最大似然估计; 马尔可夫链蒙特卡洛 主成分分析; 动态编程 隐藏的马尔可夫模型; 分类器的性能指标; 支持向量机; 维纳滤波; 小波 多维插值 信息论.
  • CS 4780 机器学习 康奈尔大学 Lecture NotesReadings -本课程将向您介绍在万维网上构建以数据为中心的信息系统的技术,展示此类系统的实际应用,并通过研究诸如公民科学,数据新闻和开放政府. 课程工作包括讲座和阅读以及每周的家庭作业,以及一个学期的项目,在该项目中,学生将展示他们在构建以数据为中心的Web信息系统方面的专业知识.
  • CS 4786 数据科学机器学习 康奈尔大学 Assignments Lecture Notes Readings -机器学习入门课程,重点是数据建模和相关方法以及数据科学的学习算法. 暂定主题列表: -降维,例如主成分分析(PCA)和奇异值分解(SVD),典范相关性分析(CCA),独立成分分析(ICA),压缩感知,随机投影,信息瓶颈. (我们希望涵盖其中一些(但可能不是全部)主题). -聚类,例如k均值,高斯混合模型,期望最大化(EM)算法,基于链接的聚类. (我们不希望覆盖层次或频谱聚类.) -概率建模主题,例如图形模型,潜在变量模型,推理(例如,信念传播),参数学习. -如果时间允许,将涵盖回归.
  • CVX 101 凸优化 斯坦福大学 Assignments Lecture Notes Readings -本课程着重于识别和解决应用中出现的凸优化问题. 解决的主题包括以下内容. 凸集,函数和优化问题. 凸分析的基础. 最小二乘,线性和二次规划,半定规划,极小极大,极值体积和其他问题. 最优性条件,对偶理论,替代定理和应用. 内点法. 在信号处理,统计和机器学习,控制和机械工程,数字和模拟电路设计以及金融方面的应用.
  • DS-GA 1008 深度学习 纽约大学 Lecture Videos Lecture Notes Assignments -该课程越来越受欢迎,是通过纽约大学数据科学中心教授的. 最初由 Yann Lecun, it is now led by Zaid Harchaoui ,尽管有传言说勒昆教授仍会不时停下来. 它涵盖了用于在计算机视觉和自然语言处理中实现机器学习任务的非常高精度的理论,技术和技巧. 作业在Lua中进行,并托管在Kaggle上.
  • EECS E6893 & EECS E6895 大数据分析和高级大数据分析 哥伦比亚大学 Assignments Readings Lecture Notes -学生将获得有关分析大数据的知识. 对于希望在工作场所和研究环境中面对大数据存储,处理,分析,可视化和应用程序问题的研究生,它是入门课程. -授课 Dr. Ching-Yung Lin
  • EECS E6894 用于计算机视觉和自然语言处理的深度学习 哥伦比亚大学 Lecture Notes Assignments Readings -此研究生级别的研究班侧重于解决视觉和自然语言处理问题的深度学习技术. 它概述了各种深度学习模型和技术,并调查了相关领域的最新进展. 本课程使用Theano作为主要的编程工具. 首选GPU编程经验,尽管不是必需的. 预计会出现频繁的论文演讲和繁重的编程工作.
  • Readings
  • Assignments
  • Lecture Notes
  • EE103 矩阵方法简介 斯坦福大学 Assignments Lecture Notes Readings -本课程涵盖矩阵和向量的基础知识,求解线性方程式,最小二乘法和许多应用程序. 它将涵盖数学,但是重点将放在在层析成像,图像处理,数据拟合,时间序列预测,财务等许多应用程序中使用矩阵方法. EE103基于一本 Stephen BoydLieven V和enberghe 目前正在写作. 学生将使用一种称为 Julia to do computations with matrices 和 vectors.
  • Fast.ai Introduction to Machine Learning for Coders * Fast.ai /旧金山大学* Lecture Videos Lecture Notes Assignments Readings -大约有24小时的课程,您应该计划每周花8个小时左右的时间来学习12周. 该课程以旧金山大学为数据科学理学硕士课程记录的课程为基础. 我们假设您至少有一年的编码经验,并且或者记住您在高中数学中学到的知识,或者准备进行一些独立的学习来刷新您的知识.
  • Info 290 使用Twitter分析大数据 加州大学伯克利分校信息学院 Lecture Videos -在本课程中,加州大学伯克利分校的教授和Twitter工程师提供有关应用于Twitter数据的最前沿算法和数据分析软件工具的讲座. 主题包括应用的自然语言处理算法,例如情感分析,大规模异常检测,实时搜索,信息扩散和爆发检测,社交流中的趋势检测,推荐算法以及用于分布式计算的高级框架.
  • Machine Learning: 2014-2015 牛津大学 Lecture Videos Lecture Notes Assignments -本课程着重于神经网络并使用 Torch 用于练习和作业的深度学习库(在Lua中实现). 主题包括:逻辑回归,反向传播,卷积神经网络,最大余量学习,暹罗网络,递归神经网络,LSTM,带有递归神经网络的手写体,变分自动编码器以及图像生成和强化学习
  • 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学习框架,贝叶斯学习方法,基于余量的学习和Occam的Razor. 简短的编程作业包括使用各种学习算法的动手实验. 本课程旨在为研究生级别的学生提供全面的基础知识,以从事机器学习研究的人员当前所需的方法,技术,数学和算法. -由机器学习领域的领先专家之一授课-汤姆·米切尔
  • 10-708 概率图形模型 卡内基梅隆大学 Lecture Videos Lecture Notes Assignments Readings -人工智能,统计,计算机系统,计算机视觉,自然语言处理和计算生物学等许多其他领域的问题,可以看作是从本地信息中寻求一致的全球性结论. 概率图形模型框架为这一广泛的问题提供了一个统一的视图,从而可以对具有大量属性和庞大数据集的问题进行有效的推理,决策和学习. 本研究生课程将为您将图形模型应用于复杂问题以及解决图形模型中的核心研究主题提供坚实的基础.
  • 11-785 深度学习 卡内基梅隆大学 Assignments Readings -本课程通过一系列研讨会和实验室来介绍该主题,这些主题将从早期开始对其进行探索,并逐步发展为最新技术. 研讨会将涵盖深度学习的基础知识和基础理论,以及已应用深度学习的应用领域的广度,以及有关从大量数据中学习的最新问题. 我们将主要(尽管不是全部)专注于最常与之关联的连接主义体系结构. 讲座阅读笔记在页面上可用.
  • CS246 挖掘海量数据集 斯坦福大学 Lecture Videos Lecture Notes Assignments Readings -本课程将讨论用于分析大量数据的数据挖掘和机器学习算法. 重点将放在Map Reduce上,它是一种用于创建可以处理大量数据的并行算法的工具.
  • CS276 信息检索和网络搜索 斯坦福大学 Lecture Notes Readings -用于基于文本的信息系统的基本和高级技术:有效的文本索引; 布尔和向量空间检索模型; 评估和接口问题; Web搜索,包括爬网,基于链接的算法和Web元数据; 文本/ Web聚类,分类; 文本挖掘.
  • Practical_RL 野外强化学习 * Yandex SDA * Lecture Videos Lecture Notes Assignments Readings -野外强化学习课程. 在HSE和Yandex SDA(俄语)上在校园授课,并保持对在线学生(英语和俄语)友好.
  • UvA DEEP LEARNING UvA深度学习课程 阿姆斯特丹大学 Lecture Videos Lecture Notes Assignments 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.
  • CS 155 计算机和网络安全 斯坦福 Lecture Notes Readings -计算机系统安全性原则. 攻击技巧以及如何防御它们. 主题包括:网络攻击和防御,操作系统漏洞,应用程序安全性(Web,电子邮件,数据库),病毒,社会工程学攻击,隐私和数字版权管理. 课程项目侧重于构建可靠的代码. 推荐:基本Unix. 主要面向高年级和一年级研究生.
  • CS 161 Computer Security UC Berkeley Lecture Notes -计算机安全简介. 密码学,包括加密,身份验证,哈希函数,密码协议和应用程序. 操作系统安全性,访问控制. 网络安全,防火墙,病毒和蠕虫. 软件安全性,防御性编程和基于语言的安全性. 来自实际系统的案例研究.
  • CS 259 安全建模和分析 斯坦福 Lecture Notes Assignments Readings -该课程将涵盖各种现代网络协议和其他具有安全性的系统. 该课程的目标是为学生提供使用自动化工具和相关技术来分析和评估安全机制的实践经验. 为了了解安全属性和要求,我们将研究几种网络协议及其属性,包括保密性,身份验证,密钥建立和公平性. 同时,本课程将研究安全分析中使用的几种模型和工具,并检查其优势和局限性. 除了全自动的有限状态模型检查技术,我们还将研究其他方法,例如约束解决,过程代数,协议逻辑,概率模型检查,博弈论和基于逻辑编程的可执行模型.
  • CS 261 互联网/网络安全 * UC Berkeley * Lecture Notes Readings -本课程旨在为有兴趣在该领域进行研究的人员以及对安全性或网络性更感兴趣的学生提供全面的网络安全基础. 我们还将研究与网络安全相关的更广泛的问题,网络在其中发挥了作用. 主题包括:拒绝服务; 能力; 网络入侵检测; 蠕虫 法证; 扫描; 流量分析/推断活动; 建筑; 协议问题; 合法性和道德; 网络攻击; 匿名; 蜜罐 僵尸网络; 垃圾邮件; 地下经济 研究陷阱. 该课程的教学重点是开创性论文,而不是特定主题的前沿知识.
  • CS 5430 系统安全 康奈尔大学 Assignments Lecture Notes Readings -本课程讨论计算机和网络信息系统的安全性. 我们专注于实现军事和商业级安全系统的抽象,原理和防御.
  • CSCI 4968 现代二进制开发 伦斯勒理工学院 Lecture NotesAssignments -该存储库包含由以下人员开发和使用的材料 RPISEC 至 教现代二进制开发 Rensselaer Polytechnic Institute in 2015年春季.这是一门大学课程,由学生自行开发并教授 漏洞研究,逆向工程和二进制开发方面的技能.
  • CSCI 4976 恶意软件分析 伦斯勒理工学院 Lecture NotesAssignments -该存储库包含由以下人员开发和使用的材料 RPISEC 至 在以下位置教授恶意软件分析 Rensselaer Polytechnic Institute in 2015年秋季.这是一门大学课程,由学生自行开发和运营,主要使用
  • EECS 588 计算机和网络安全 密歇根大学 Lecture Notes Readings -授课 J. Alex Halderman 谁分析了电子投票机的安全性 USover seas. -这个密集的研究研讨会涵盖了计算机系统安全的基础工作和当前主题.
  • 6.857 计算机和网络安全 * MIT * Lecture Notes -强调应用密码学,其中可能包括:系统安全性的基本概念,密码学哈希函数,对称密码学(一次性密码,流密码,分组密码),密码分析,秘密共享,身份验证代码,公钥密码学(加密,数字签名),公钥攻击,Web浏览器安全性,生物识别技术,电子现金,病毒,电子投票,分配包括小组最终项目. 主题可能每年不同. Lecture Notes References
  • 6.858 计算机系统安全 * MIT * Lecture Videos Lecture Notes Assignments Readings -安全计算机系统的设计和实现. 根据最近的研究论文,讲座涵盖了威胁模型,危害安全性的攻击以及实现安全性的技术. 主题包括操作系统(OS)安全性,功能,信息流控制,语言安全性,网络协议,硬件安全性和Web应用程序中的安全性. -授课 James MickensNickolai Zeldovich
  • 18-636 浏览器安全 斯坦福 Lecture Videos Lecture Notes -作为零售交易,金融服务和快速发展的通信形式的平台,Web继续变得越来越流行. 对于希望破坏用户系统或从其他站点窃取数据的攻击者而言,它正成为越来越有吸引力的目标. 浏览器供应商必须通过提供支持安全Web应用程序的功能来防范这些攻击. 本课程将研究现有Web浏览器及其呈现的应用程序中的漏洞,以及启用前所未有的Web应用程序的新技术. 该材料将主要基于当前的研究问题,并且将要求学生批评和改进现有的防御措施. 研究主题包括(但不限于)浏览器加密,JavaScript安全性,插件安全性,沙箱,Web混搭和身份验证.

Artificial Intelligence

  • CS 188 人工智能简介 加州大学伯克利分校 Lecture Videos Assignments Lecture Notes -本课程将介绍智能计算机系统设计的基本思想和技术. 具体重点将放在统计和决策理论建模范式上. 在本课程结束时,您将建立自治的代理程序,这些代理程序可以在充分了解情况,部分可观察的和对抗性情况下有效地做出决策. 您的代理商将在不确定的环境中进行推断,并针对任意奖励结构优化行动. 您的机器学习算法将对手写数字和照片进行分类. 您在本课程中学习的技术适用于各种各样的人工智能问题,并将作为您选择追求的任何应用领域的进一步研究的基础.
  • CS 4700 人工智能基金会 康奈尔大学 Assignments Lecture Notes -本课程将介绍计算机视觉,主题包括图像形成,特征检测,运动估计,图像镶嵌,3D形状重建以及对象和面部检测与识别. 这些技术的应用包括构建3D地图,创建虚拟角色,组织照片和视频数据库,人机交互,视频监视,自动车辆导航和移动计算机视觉. 这是一门基于项目的课程,您将在整个学期中实施几种计算机视觉算法.
  • CS 6700 高级人工智能 康奈尔大学 Lecture Notes Readings -设计在世界上性能最高的十大系统中(人机,计算机或混合人机).
  • 6.868J 心灵学会 * MIT * Lecture Notes Assignments Readings -这门课程是导论. Marvin Minsky, to the theory that tries to explain how minds are made from collections of simpler processes. It treats such aspects of thinking as vision, language, learning, reasoning, memory, consciousness, ideals, emotions, and personality. It incorporates ideas from psychology, artificial intelligence, and computer science to resolve theoretical issues such as wholes vs. parts, structural vs. functional descriptions, declarative vs. procedural representations, symbolic vs. connectionist models, and logical vs. common-sense theories of learning.
  • Lectures
  • Assignments
  • Readings

Computer Graphics

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

Misc

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