你所讀的計算機科學方向,有哪些不錯的講義(Notes)?
相關問題:你所讀的(基礎)數學方向,有哪些不錯的講義(Notes)? - 書籍推薦
1. MIT、Berkeley等學校有些課程是不使用教材的,而是直接使用教授寫的講義,你看過的這些講義中有哪些是寫得比較好的?
2. 可以推薦一下自己看過的比較好的公開課(並不一定是Coursera等Mooc平台上的)。
我也來推薦幾個:
Compiler:
Stanford CS 143 (這個是編譯基礎課)https://www.coursera.org/course/compilersCompilers | Stanford Lagunita4CS 243 (編譯進階課,講優化的)這個是06版的講義,Ullman(龍書作者之一)寫的,感覺非常詳細,適合自學CS243 - Advanced Compiling Techniques這是新版的,感覺講義很多地方沒有寫清楚,不太適合自學CS243 - Program Analysis and OptimizationsCS343(這個是高階課,全是讀論文)http://web.stanford.edu/class/cs343/
CMU的編譯基礎課:15-411 Compiler Design / ScheduleCMU的進階課:http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15745-s14/www/handouts.htmlGraphics:
MIT的圖形學內容很多,講的也比較清楚Lecture NotesCMU系列課程,有21門:Carnegie Mellon Computer GraphicsStanford的:
CS148 圖形學基礎是有錄像的Courses in GraphicsAlgorithm:
只推薦Princeton的系列課程,每個演算法都有詳細解釋,Coursera上有教程而且每個演算法都有demo,講的很清楚,特別是紅黑樹部分(本來就是Sedgewick發明的,而且他在準備課程的時候想出了改進演算法),課程作業設計很好,Coursera版也有面試問題,適合找工作用,網站上還有很多經典演算法的java實現,代碼都很簡潔,還有詳細注釋Java Algorithms and ClientsPart 1:Coursera - Free Online Courses From Top UniversitiesPart 2:Coursera - Free Online Courses From Top Universities
這是其他版本的,注意多了Combinatorial Search部分,也值得看一下:COS 226, Fall 2012: Lectures這是進階版的:http://www.cs.princeton.edu/~wayne/kleinberg-tardos/Cryptography:
Part 1:Coursera - Free Online Courses From Top UniversitiesPart 2(一直沒開課不知道怎麼回事):https://www.coursera.org/course/crypto2Information Theory:
也是MIT的Lecture NotesTheory of Computation:
MIT的Automata, Computability, and Complexity進階版本:Advanced Complexity TheoryStanford的:這個也是Ullman講的Coursera - Free Online Courses From Top Universities
AI:
同樣MIT的,帶有視頻Artificial IntelligenceML:Stanford CS229CS 229: Machine Learninghttps://www.coursera.org/learn/machine-learningCS224d 錄像講義和幻燈片都有,資料很詳細Stanford University CS224d: Deep Learning for Natural Language Processing神經網路,Hinton 講的
Coursera - Free Online Courses From Top Universities只提到自己讀過的lecture notes, 所以一大半來自於UIUC.
基礎演算法:
Jeff Erickson"s Algorithms, Etc.組合優化:
基礎課18.433 Combinatorial Optimization覆蓋面廣的topics course18.438, Spring 2014CS 598CSC: Topics in Combinatorial Optimization: Home Page
幾乎整個課都是flowIEOR 6614, Spring 2012ORIE 633: Network FlowsCOS 528: Data Structures and Graph Algorithms(不知哪裡能找到很理論的好用的整數優化的lecture notes)圖的代數演算法:
CS367 -- Algebraic Graph Algorithms大數據有關的演算法:
CS 598CSC: Algorithms for Big Data: Home Page隨機演算法:
http://sarielhp.org/teach/13/b_574_rand_alg/lec/近似演算法:
CS 583: Approximation Algorithms: Home Page其他:15-859T: A Theorist"s Toolkit 2013很慚愧這個答案因為最近的一些熱點事件又被很多人關注了,現在審視一下一年前的自己,很多東西沒能深入了解,多有掉書袋之感,堆砌了很多資料。最近有空會重新整理一下這個答案的。
--------------------------------------------------------------------------------------------------好多同學要我寫一下別的領域的,但是我想說的是,其實屯了那麼多資料,不看的話其實一點用處都沒有。。。。
接下來寫的包含各個領域的,第一因為我研究領域在PLT和NLP方向,這些資料我無法甄別好壞,第二我也沒有都看完,質量無法保證,第三就是我選擇資料的第一條件是有好的assignment/lab/project 其次才是notes/slides/lectures, 因為我還是習慣看書,網上資料對我只是一個outline的作用。系統:- 6.828 / Fall 2014 這個,不用我多介紹了吧,xv6 和jos 的代碼都值得好好讀的。
- 6.858 / Fall 2014
/ Schedule 這是很多人忽視的6.858, computer system security方面的,lab都做完以後真·受益匪淺,還有video和notes,不能更良心。
- 6.033 | Spring 2015 著名的CSE,我是把裡面提到的論文都掃過一遍,很有用。
- 6.824 Home Page: Spring 2015 讀paper 和notes, 這個要注意的是現在的lab是用go寫的,以前的是C++,兩個都值得做(
- http://www.cs.nyu.edu/~mwalfish/classes/15sp/index.html 其實這個才是我最OS的入門課程,一應俱全,lab比較簡單。
- 15-213 不多說。
- 2014/Syllabus harvard的系統方面的入門課,個人認為質量不比15-213差。
- http://www.cs.cmu.edu/~dga/15-440/F12/ 同樣用go實現,沒看完,不評價。
- CMSC 412: Operating Systems Fall 2015 6.828 補充。
系統方面的主要是project把。。其實那麼多我自己也沒看完-。-
網路:沒什麼研究,自取吧。- CS144: Introduction to Computer Networking
- Machine Learning 4771
- COS 511: Assignments
- CS 760 - Machine Learning
- 10701/15781 Machine Learning
- http://www.cs.cmu.edu/~tom/10701_sp11/lectures.shtml
- Topics covered in CMSC858L, Foundations of Machine Learning, Fall 2015
- COS 598C, Spring 2012: Home Page
- http://www.inf.ed.ac.uk/teaching/courses/iaml/
- CS 229: Machine Learning (Course handouts)
- CSE 705: Deep Learning
- 11-785 DEEP LEARNING
- CSE 446 - Machine Learning
- https://computing.ece.vt.edu/~f15ece6504/#schedule
- CS231n Convolutional Neural Networks for Visual Recognition
自取吧-。-
========分割線============
寫一些PLT和NLP領域的吧。我只寫我看過的,質量有保證的notes...PLT:
15-312: 15-312 Foundations of Programming Languages / Schedule 其實感覺跟PFPL差不多。。outline上差不多,當初就是靠這個進的坑。。UW CSE505, Fall 2012 這個也已經詳細到可以當notes來讀了。。CS 5510: Schedule and Homework 這個好處在於還有配套的racket代碼。。CS 4110 - Programming Languages and Logics cornell這個講了些跟logic有關的https://pl.barzilay.org/resources.html 用racket實現Compiler:
cs143 之前有人推薦過了。。。靠這個混過了編譯考試。。15-411 Compiler Design / Schedule 這個是強推看一遍的。。Static analysis:
Computer LaboratoryUCLA CS 232 Static Program Analysis軟體分析技術15-819 O: Program AnalysisCS243 - Program Analysis and OptimizationsAbstract Interpretation分析方面其實主要還是看paper和綜述了(NLP:
COMS E6998: Machine Learning for Natural Language ProcessingCOMS W4705: Natural Language Processing (Spring 2015)Stanford University CS224d: Deep Learning for Natural Language Processing其實我存貨還有好多。。。系統,網路,還有ML方面。。都有。。但是我好多還沒看。。不敢貼上來誤人子弟,畢竟報道上出了偏差我是要負責的。。我覺得牛津的Haskell創始者之一的這篇講義非常好,對函數式編程的數據結構設計從伴隨函子的角度來分析,將抽象代數引入到了程序設計中。http://www.cs.ox.ac.uk/ralf.hinze/LN.pdf
OS, ML, NLP 方向的大家都說的很多了,我推薦一個比較接地氣的吧:
lecture notes for CS 61A at UC Berkeley: Composing Programs
一個基於 Structure and Interpretation
of Computer Programs 但使用 Python 作為教學語言的講義
我一直比較關注 CSE (Computer Science Education),所以研究了很多學校的 CS1 [1] 課程,UCB 的 CS61A 可以說是其中的一個標杆,這門課的講義不僅得到了包括 Peter Norvig,Brian Harvey 等人在內的早期反饋,還經過了長期的教學實踐的歷練,並將逐漸整理成書。
由 @飛龍 翻譯的 SICP Python 描述 中文版: https://github.com/wizardforcel/sicp-py-zh
---
感謝那些致力於計算機科學教育的工作者,敬禮。
[1]: What do "CS1" and "CS2" mean?
悄悄腿兩個:Sinclair的MCMC:CS294 MARKOV CHAIN MONTE CARLO: FOUNDATIONS APPLICATIONS, FALL 2009O"Donnell的boolean function:15-859S / 21-801A: Analysis of Boolean Functions 2012
The Blind Spot, 主要講證明論,作者是大名鼎鼎的J.Y.Girard。。
另:多說一句,千萬不要指望通過離散數學來學數理邏輯。。15-819 Homotopy Type Theory,Robert Harper的課,他學生做的notes
MIT Course 16.399: ? Abstract Interpretation,Patrick Cousot親自講。。
Decision Procedures,Slide不錯,也出了本書。。
Static Program Analysis, 講得淺顯易懂。大概寫一下ML方向自己讀過的或者在讀的(偏理論)
CS229 (General introduction),CS231n( deep learning cv ) ,CS224d( nlp )這種有人說就不說了
Numerical analysis:
J. Solomon: CS205a Mathematical Methods for Robotics, Vision, and Graphicshttps://www.youtube.com/playlist?list=PLprpITDfpBdfjxZLX2Kj2dELP3mNNGPiwCS 205A: Mathematical Methods for Robotics, Vision, and Graphics (Spring 2016)才發現Justin大神現在去mit了。。。Convex Optimization:
S. Boyd: ee364a/bEE364a: Convex Optimization IEE364b: Convex Optimization IIee364a有視頻,是基礎內容和幾個經典演算法,ee364b就是現代的內容了看了ee364a的基礎部分後直接去看ee364b的ADMM之類的也行PGM:
Eric Xing: 10708 Probabilistic Graphical Models10708 Probabilistic Graphical Models14版有視頻,不過16版材料安排的更好Algorithm (Advanced) :
Ankur Moitra: 18.409: Algorithmic Aspects of Machine Learning18.409 Algorithmic Aspects of Machine Learning, Spring 2015https://www.youtube.com/playlist?list=PLB3sDpSRdrOvI1hYXNsa6Lety7K8FhPpx講義寫的比較簡略,但是課講的非常好,這課的視頻感覺是上課的學生自己拍的。。。Sanjeev Arora: CS521 Advanced Algorithm DesignPrinceton University CS Dept COS521: Advanced AlgorithmDesign Fall 2015CS598D Overcoming Intractability in Machine LearningCOS598D Princeton University Overcoming Intractability in
Machine LearningArora的。。。沒什麼好解釋的
Learn on Code Studio
迪士尼出的一小時編程項目。兒童可視化編程。有4+和6+。目前帶8歲孩子學到階段三,已經理解了循環語句,正在理解函數和條件。個人感覺比scratch(小貓程序)更容易上手,趣味性更強50 頁 Martin-L?f Type Theory,快糙猛http://www.csie.ntu.edu.tw/~b94087/ITT.pdf
https://github.com/prakhar1989/awesome-courses
關於 Quantum Computing 的話, 入門書除了少數新一些的東西, 基本上可讀性都不超過 NielsenChuang...課的話類似, 大概 Assignment 值得做, 何況即使是國內不少學校也在開了. 當然側重點可能不一樣.
更進一步的材料, 我覺得伍驍迪老師推薦的這些(CIS 410/510 Introduction to Quantum Information Theory: Reference)已經很全了, 下面摘錄一些:- John Watrous 的 Theory of Quantum Information(Theory of Quantum Information). 今年出了新版(多了些線索), 處理非常數學化, 基本沒啥圖像(相反, NielsenChuang 的圖像就非常清晰). 另外大量使用了 Semidefinite Programming 處理 superoperator 的範數之類的. 在 IQC 的課程序列中大概算 level II 的, 純粹證明導向的課.
- John Preskill 的 Quantum Computation(Physics 219 Course Information). 作者是物理學家, 所以圖像還是很清楚的. 成書較早, 亮點之一大概是後面有一章的拓撲量子計算.
- Scott Aaronson 的 Quantum Computational Complexity(6.845 Class Home). 比較少見的量子計算複雜性的課, Notes 寫於2008年, 所以一些新的重要結果並沒有涉及(比如 QIP=PSPACE). 純粹是計算複雜性導向, 也介紹了一些量子演算法.
- Andrew Childs 的 Quantum algorithms(Quantum algorithms (CO 781/CS 867/QIC 823, Winter 2013)). 目前最好的量子演算法課, 涉及了 Hidden Subgroup Problem, Hamiltonian Simulation(絕熱量子計算相關), Quantum walk, Query Complexity, Span Problem 和 Jones Polynomial的估計演算法(DQC1-Complete, 看起來很意外). 也是 IQC 的課程序列里 level II 的.
- Thomas Vidick 的 Around the quantum PCP conjecture(CS286). 極其少見的關於 Quantum Hamiltonian Complexity 的課程. 從 PCP theorem 和 QMA-Complete 出發, 討論 quantum PCP conjecture, entangled game(多個 prover), area law 和 Hamiltonian complexity.
OS:
xv6 book: https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdfHomework: http://gaming.jhu.edu/~phf/2015/fall/cs318/Machine Learning:
CS229 :CS 229: Machine Learning (Course handouts)Gradient revisited: https://www.cs.cmu.edu/~ggordon/10725-F12/slides/05-gd-revisited.pdfIdiot"s guide to SVM: http://www.cs.ucf.edu/courses/cap6412/fall2009/papers/Berwick2003.pdfLagrange Multipliers Tutorial in the Context of Support Vector Machines: http://www.engr.mun.ca/~baxter/Publications/LagrangeForSVMs.pdfTopic Model: Topic ModelsHMM: http://www.cs.columbia.edu/~mcollins/courses/6998-2012/lectures/lec6.3.pdfhttp://personal.ee.surrey.ac.uk/Personal/P.Jackson/tutorial/hmm_tut4.pdfhttp://www.clsp.jhu.edu/~sanjeev/520.666/Spring15/BaumWelch4Gaussians.pdfVariational Inference: https://www.cs.princeton.edu/courses/archive/fall11/cos597C/lectures/variational-inference-i.pdfPCA: http://www.stat.columbia.edu/~fwood/Teaching/w4315/Spring2010/PCA/slides.pdfhttp://people.maths.ox.ac.uk/richardsonm/SignalProcPCA.pdfRandom Forest:https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htmNLP (Jason Eisner):
600.465 - Natural Language ProcessingMachine Translation (Philipp Koehn)Statistical Machine Translationhttp://link.springer.com/bookseries/558 LNCS 9000多卷,任君食用
這麼多人都要視頻了 點個贊吧...
-------------------------------------------------------------------------講義+在線課程 總共安利一個 CMU 15-213 安利了身邊好幾個人在看了 CSAPP書也很不錯 不枉費這160刀評論里有人要在線視頻:https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22b96d90ae-9871-4fae-91e2-b1627b43e25e%22
可以用右上角subscribe to itunes即可以podcast下載//飛機上不擔心沒事情做了Lectures in Advanced Data Structures (6.851) Erik 的 Advanced Data Structure,萌萌噠~
圖形學,物理模擬(Physically Based Animation)方向Siggraph每年的Course都不錯Bridson有一本書講流體的,https://www.amazon.ca/Simulation-Computer-Graphics-Robert-Bridson/dp/1568813260下面內容都是關於Physically Based Animation,搬運自http://www.physicsbasedanimation.com/resources-courses/:
Baraff
Witkin』s SIGGRAPH Course notes on physically based modeling (particle
systems, rigid bodies, constrained dynamics, etc.) (2001)
Nealen et al. Eurographics State of the Art Report on Physically Based Deformable Models in Computer Graphics (2005)
Bridson』s SIGGRAPH Course notes on Fluids (2007)
Wojtan et al. SIGGRAPH course on Liquid Simulation with Mesh-Based Surface Tracking (2011)
Bender et al. Eurographics State of the Art Report on Interactive Simulation of Rigid Body Dynamics in Computer Graphics (2012)
Barbic and Sifakis』 SIGGRAPH Course notes on FEM / Model Reduction (2012)
Ihmsen et al. Eurographics State of the Art Report on SPH Fluids in Computer Graphics (2014)
Kavan』s Physics-based Animation course on YouTube (2014)
Bender et al. Eurographics Tutorial: Position-Based Simulation Methods in Computer Graphics (2015)
Lecture note in Computer Science下面是它的訪問鏈接。http://link.springer.com/bookseries/558
普林斯頓大學演算法課程Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne有書,有講義【演算法描述通俗易懂,排版也不錯】,有代碼,好像還有視頻...PS:講義截圖如下:
平民級PL系列 (
Data Structures and Functional Programming CS3110 Spring 2012 Lecture Notes
Coursera Programming Language UW CSE341, Spring 2013History of Programming Languages ScheduleNotes on Programming by Alexander Stepanov http://www.stepanovpapers.com/notes.pdf推薦閱讀:
※計算機專業原版教材值得讀嗎?
※想開始初步學習計算機有什麼建議嗎?
※基於RNN的seq2seq與基於CNN的seq2seq區別,為什麼後者效果更好?
※對比JIT和AOT,各自有什麼優點與缺點?
※C++ 為什麼沒有 function 關鍵字?