Pages

Saturday, June 24, 2006

Free Computer Science Video Lecture Courses

Here is a list of video lectures in computer science I had collected over the years.
This list is only two-thirds of all links I have in my bookmarks, I will go through the rest of links later. Check back.

For formal computer science education here is an overview of a bachelor degree in computer science.


Web Applications
Teaches basics of designing a dynamic web site with a database back end, including scripting languages, cookies, SQL, and HTML with the goal of building such a site as the main (group) project Emphasizes computer-human interface and the graphical display of information.


Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs has been MIT's introductory pre-professional computer science subject since 1981. It emphasizes the role of computer languages as vehicles for expressing knowledge and it presents basic principles of abstraction and modularity, together with essential techniques for designing and implementing computer languages. This course has had a worldwide impact on computer science curricula over the past two decades.


Structure and Interpretation of Computer Programs (a different course)
An introduction to programming and the power of abstraction, using Abelson and Sussman's classic textbook of the same name. Key concepts include: building abstractions, computational processes, higher-order procedures, compound data, data abstractions, controlling interactions, generic operations, self-describing data, message passing, streams and infinite data structures, meta-linguistic abstraction, interpretation of programming languages, machine model, compilation, and embedded languages.


Structure and Interpretation of Computer Programs
(a different course)
The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer's point of view. This first course concentrates mostly on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware. The next course, CS 61B, will deal with the more advanced engineering aspects of software on constructing and analyzing large programs and on techniques for handling computationally expensive programs. Finally, CS 61C concentrates on machines and how they carry out the programs you write.
In CS 61A, we are interested in teaching you about programming, not about any particular programming language. We consider a series of techniques for controlling program complexity, such as functional programming, data abstraction, object-oriented programming, and query systems. To get past generalities you must have programming practice in some particular language, and in this course we use Scheme, a dialect of Lisp. This language is particularly well-suited to the organizing ideas we want to teach. Our hope, however, is that once you have learned the essence of programming, you will find that picking up a new programming language is but a few days' work.


Data Structures
The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer’s point of view. CS 61A covered high-level approaches to problem-solving, providing you with a variety of ways to organize solutions to programming problems: as compositions of functions, collections of objects, or sets of rules. In CS 61B, we move to a somewhat more detailed (and to some extent, more basic) level of programming. As in 61A, the correctness of a program is important. In CS 61B, we’re concerned also with engineering. An engineer, it is said, is someone who can do for a dime what any fool can do for a dollar. Much of 61B will be concerned with the tradeoffs in time and memory for a variety of methods for structuring data. We’ll also be concerned with the engineering knowledge and skills needed to build and maintain moderately large programs.


Machine Structures
The subjects covered in this course include C and assembly language programming, how higher level programs are translated into machine language, the general structure of computers, interrupts, caches, address translation, CPU design, and related topics. The only prerequisite is that you have taken Computer Science 61B, or at least have solid experience with a C-related programming language.


Programming Languages
Goals: Successful course participants will:
• Master universal programming-language concepts (including datatypes, functions, continuations, threads,
macros, types, objects, and classes) such that they can recognize them in strange guises.
• Learn to evaluate the power, elegance, and definition of programming languages and their constructs
• Attain reasonable proficiency programming in a functional style
• Find relevant literature somewhat more approachable.



Principles of Software Engineering
Study of major developments in software engineering over the past three decades. Topics may include design (information hiding, layering, open implementations), requirements specification (informal and formal approaches), quality assurance (testing, verification and analysis, inspections), reverse and re-engineering (tools, models, approaches).


Object Oriented Program Design
The concepts of the Object-oriented paradigm using Java. The basic principles of software engineering are emphasized. We study how to design and think in an object oriented fashion.


Algorithms
The design and analysis of algorithms is studied. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Their applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms.

We study algorithm analysis - worst case, average case, and amortized, with an emphasis on the close connection between the time complexity of an algorithm and the underlying data structures. We study NP-Completeness and methods of coping with intractability. Techniques such as approximation and probabilistic algorithms are studied for handling the NP-Complete problems.


Introduction to Algorithms
This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


Systems
Topics on the engineering of computer software and hardware systems: techniques for controlling complexity, system infrastructure, networks and distributed systems, atomicity and coordination of parallel activities, recovery and reliability, privacy of information, impact of computer systems on society. Case studies of working systems and outside reading in the current literature provide comparisons and contrasts.


Computer System Engineering
This course covers topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; recovery and reliability; privacy, security, and encryption; and impact of computer systems on society. We will also look at case studies of working systems and readings from the current literature provide comparisons and contrasts, and do two design projects.


Graduate Computer Architecture
This course focuses on the techniques of quantitative analysis and evaluation of modern computing systems, such as the selection of appropriate benchmarks to reveal and compare the performance of alternative design choices in system design. The emphasis is on the major component subsystems of high performance computers: pipelining, instruction level parallelism, memory hierarchies, input/output, and network-oriented interconnections.


Computer Architecture
The purpose of this course is to give you a broad understanding of the concepts behind several advanced microarchitectural features in today’s microprocessors and to illustrate those concepts with appropriate (usually modern) machine examples. We will cover the rationale for and the designs of strategies for instruction sets, dynamic branch prediction, multiple-instruction issue, dynamic (out-of-order) instruction scheduling, multithreaded processors, shared memory multiprocessors, and, if there is time, dataflow machines. Some of these topics require some understanding from what is normally thought of as undergraduate material; for these, we’ll briefly review that material, and then go on from there.

You will augment your knowledge of the architectural schemes by doing experimental studies that examine and compare the performance of several alternative implementations for a particular feature. Here you will learn how to design architectural experiments, how to choose metrics that best illustrate a feature’s performance, how to analyze performance data and how to write up your experiment and results - all skills computer architects, and, actually, researchers and developers in any applied subfield of computer science, use on a regular basis.


Operating Systems and System Programming
The purpose of this course is to teach the design of operating systems and other systems. Topics we will cover include concepts of operating systems and systems programming; utility programs, subsystems, multiple-program systems; processes, interprocess communication, and synchronization; memory allocation, segmentation, paging; loading and linking, libraries; resource allocation, scheduling, performance evaluation; I/O systems, storage devices, file systems; basic networking, protocols, and distributed file systems, protection, security, and privacy.


How Computers Work
Includes the basics of digital logical design, computer organization and architecture including assembly language, processor design, memory hierarchies and pipelining. Students examine the detailed construction of a very simple computer. A higher level view of a modern RISC architecture is studied, using the Patterson and Hennessey introductory text, from both the programmer's point of view and the hardware designer's point of view. The distinction between RISC and CISC architectures is emphasized.


Performance Analysis
This course is intended to provide a broad introduction to computer system performance evaluation techniques and their application. Approaches considered include measurement/benchmarking, stochastic and trace driven simulation, stochastic queueing networks, and timed Petri


Database Management Systems
A more formal approach to Relational Database Management Systems, compared the way they were covered during Web Applications. Database systems are discussed from the physical layer of B-trees and file servers to the abstract layer of relational design. Also includes alternative and generic approaches to database design and database management system including relational, object-relational, and object-oriented systems, SQL standards, algebraic query languages, integrity constraints, triggers, functional dependencies, and normal forms. Other topics include tuning database transactions, security from the application perspective, and data warehousing.


Database Management Systems
Databases are at the heart of modern commercial application development. Their use extends beyond this to many applications and environments where large amounts of data must be stored for efficient update and retrieval. The purpose of this course is to provide an introduction to the design and use of database systems, as well as an appreciation of the key issues in building such systems, and working with multiple database systems.
We begin by covering basis aspcts of SQL, and illustrating several data management concepts through SQL features (e.g., views, constraints and triggers). Next, we study conceptual database design and normalization theory. We then study management of XML data, and cover the XPath and XQuery languages. We consider the issues arising in data integration from multiple databases, and more generally, issues in managing meta-data. Finally, we cover the basic aspects of the internals of database systems.


Transaction Processing for E-Commerce
Course covers Database Concurrency Control, Database Recovery, Basic Application Servers, Two-Phase Commit, Queuing, Replication, Application Servers.


Practical Aspects of Modern Cryptography
Course covers Symmetric Key Ciphers and Hashes, Public Key Ciphers, Analysis of Block Ciphers, AES and Attacks on Cryptographic Hashes, Certificates, Trust & PKI, Public Key Cryptography, Digital Rights Management, The Politics of Cryptography


Theory of Computation
A theoretical treatment of what can be computed and how fast it can be don. Applications to compilers, string searching, and control circuit design will be discussed. The hierarchy of finite state machines, pushdown machines, context free grammars and Turing machines will be analyzed, along with their variations. The notions of decidability, complexity theory and a complete discussion of NP-Complete problems round out the course.


Artificial Intelligence (4 lectures)
An quick overview of AI from both the technical and the philosophical points of view. Topics discussed include search, A*, Knowledge Representation, Neural Nets.


Applications of Artificial Intelligence
Introduction to the use of Artificial Intelligence tools and techniques in industrial and company settings. Topics include: foundations (search, knowledge representation) and tools such as expert systems, natural language interfaces and machine learning techniques.



Related Posts

  • Google Tech-Talk Computer Science Video Lectures
    (Lectures on theoretical and practical aspects of computer science such as: creative commons licensing issues, grid clusters, debian linux testing, python programming language, computer security, networking, click fraud, reusable software components, ruby programming language, privacy, service monitoring)

  • More Mathematics and Theoretical Computer Science Video Lectures
    (Includes algebra, elementary statistics, applied probability, finite mathematics, trigonometry with calculus, mathematical computation, pre-calculus, analytic geometry, first year calculus, business calculus, mathematical writing (by Knuth), computer science problem seminar (by Knuth), dynamic systems and chaos, computer musings (by Knuth) and other Donald E. Knuth lectures)

  • Computer Science Lectures
    (Courses include higher computing (intro to theory of computation), intro to computer science, data structures, compiler optimization, computers and internet, intro to clojure, the akamai story, cryptography, EECS colloquium videos at Case Western Reserve University)

  • Computer Science Courses
    (Includes introduction to computer science and computing systems, computational complexity and quantum computing, the c programming language, multicore programming, statistics and data mining, combinatorics, software testing, evolutionary computation, deep learning, data structures and algorithms and computational origami.)

101 comments:

  1. Wow, this is awesome.

    Thank you so much!

    ReplyDelete
  2. keep up the good work.
    thanks!!!!!!!!!!!!

    let your wishes come true

    ReplyDelete
  3. I love you for posting this.
    I am studying CS at UKC and this makes it so much easier for me to learn extra stuff.

    ReplyDelete
  4. Very nice list mate!!

    ReplyDelete
  5. Here's a list of more than two dozen sites which host computer science videos: http://www.peerbox.com:8668/space/start/2006-05-16/1
    .

    ReplyDelete
  6. This stuff is great! do you know of any other classes other than comp science? and mirors/torrent incase some of these go down..

    ReplyDelete
  7. hi
    its a gr8 job done by you
    i was in a gr8 need of these ... you have made my day.
    thanks for sharing ur collection with everyone.

    bye

    ReplyDelete
  8. great work men , very good collection and good spirits of spreading knowledge , keep it updating for eryone's benifit !!

    ReplyDelete
  9. thanx for sharing this valueable information wid us

    ReplyDelete
  10. thank you thank you thank you thank you !

    ReplyDelete
  11. WOW Great work!!, Tank You VERY MUCH!!!!!!!!!!!!!!!

    ReplyDelete
  12. Its vary important and useful work.Congratulations!

    ReplyDelete
  13. There is GeekTube
    http://geektube.blogspot.com

    ReplyDelete
  14. thats very very very goood job please share these links they are very helpful

    thank you guys very much

    ReplyDelete
  15. Good collection and Good sharing

    ReplyDelete
  16. do anybody have similar video lectures in Signal processing(in IISc).

    ReplyDelete
  17. Hi, check also this

    "YouTube for Computer Science researchers"

    http://videolectures.net

    ReplyDelete
  18. Do you know www.osotis.com ? There you can manage your e-Lectures.

    ReplyDelete
  19. An Excellent collection of resources. Knowledge shared is knowledge gained. Keep it up!!!


    --Murali

    ReplyDelete
  20. Thank you very much for compiling this list. Very helpful.

    ReplyDelete
  21. This stuff is amazing..........great job, I appreciate that. Really you saved lot of time for us

    ReplyDelete
  22. Excellent blog.
    I appreciate your efforts in putting all these collections online.
    Plz post more such video lectures/video tutorials.
    Thank you

    ReplyDelete
  23. Wonderful blog!
    See this:
    http://www2.toki.or.id/book/AlgDesignManual/INDEX.HTM

    This is the homepage of The Algorithm Design Manual (State University of New York).
    (Hypertext edition, source code, audio lectures, ...)

    ReplyDelete
  24. Thank You!!!
    I always wanted to start working with video, your post made it possible.
    I’d like to join to all guys. Respect! We want MORE!!!

    ReplyDelete
  25. Video Lecture Courses... Finally found really useful information on the topic, thank you.

    ReplyDelete
  26. TOOOOOO GOOD !!!
    If i was gay or girl, i wud offer to sleep with you :P

    ReplyDelete
  27. Your online videos have good material for those students who are doing the computer courses.
    Such a great effort.


    Thank you
    Damon Thomas

    ReplyDelete
  28. this is a beautiful thing you're doing; information wants to be free. thanks for your work.

    ReplyDelete
  29. Thanks for the great list! Comment by Robert H. Goretsky of Hoboken, NJ

    ReplyDelete
  30. This is really good!! So many free coupons on computers are available here try and enjoy.... at Couponalbum.com!!!!

    ReplyDelete
  31. Really good..!! I like computer and usually shop online for the best quality at most discounted prices...!

    ReplyDelete
  32. Did not know more about the online courses but this is really good and many students take advantages using the free computer science video lecture courses.

    Thank you
    Damon Thomas
    http://www.outlookrecovery.net

    ReplyDelete
  33. its not often we find people who understand these issues and feel as passionately about them as you. Thank you. From

    your friends at Unix Commerce Web Design

    ReplyDelete
  34. thanks for all these links... they r very useful... can you please tell how we can download the Berkeley videos for offline viewing?

    ReplyDelete
  35. u are doing an excellent job thanks for all ur links. keeping posting .
    i think u should extend ur research to other streams of engineering also
    any have thank u very much

    ReplyDelete
  36. nice work . ur the best. very very useful stuff. i am studying in india. and these resources will be very usefull for the people around the world. plzz can u give me ur email id. just for communication .
    plzz this is my email id : mydreamyaar@gmail.com

    ReplyDelete
  37. I discovered your blog not too long ago and thank you for doing all of this work! It's very cool what you've put together on this blog and I never knew there were so many interesting online videos in all of these different areas.

    ReplyDelete
  38. Wonderfule site.. I might have got this link before.

    Thanks a lot for such a great initiative. Now i feel with these videos i am at one of the best university. I also advice others to bookmark this site.

    ReplyDelete
  39. Thanks for collating all this wonderful stuff. Have you contacted science.tv about this?

    ReplyDelete
  40. Hey whatever your name is im absolutely greatfull for ur help by putting all these video lectures.i can remember so many months i have been searching for video lectures and they were very expensive becs i have to pay in srilanka Rs. thank u very much.

    ReplyDelete
  41. good work
    since i am a self learner its a precious stuff for me

    ReplyDelete
  42. has anyone by chance taken on the work of converting some of the streams into audio/video files?

    ReplyDelete
  43. May you live for a thousand years!

    ReplyDelete
  44. This is a fantastic site. I'm trying to learn the basics of computer science and this helps immensely.

    ReplyDelete
  45. i want freedownload video classes/lectures for the following topics in java:
    Exception handling,multithreading,
    packages&interfaces,servlets,
    swings,ftp,applets,beans,
    inheritence,......
    plz help me

    ReplyDelete
  46. thanks for the such great resources. Really appreciated your such great efforts.

    ReplyDelete
  47. Web site design and computer science has come a long way and using your own skills or software is ok unless you want a professional commerce site , used a web design leeds company for my site and it was a great job, it incorporated everything I wanted and things I did not know I needed, professionals are always helpful.

    ReplyDelete
  48. I came here to learn about Physics and Mathematics. I found some useful tips on these subjects.

    ReplyDelete
  49. Very good collection of video tutorial sites.

    You can have free tech books at
    FreeTechBooks

    ReplyDelete
  50. Thanks lot !!
    This is true knowledge sharing :-)

    ReplyDelete
  51. also has a good collection of lecture notes, if some1 is interested

    ReplyDelete
  52. thanks everybody
    It is so useful to me

    ReplyDelete
  53. Thank you very much Mr. Krumins. You are of great help to me :)

    ReplyDelete
  54. Have a great work.....
    weldone

    ReplyDelete
  55. Very Good article , this article make some interesting points .

    Computer Software And Services dir

    ReplyDelete
  56. What happen if one of the pharaohs
    or roman come back to our temporary age and see the computer

    ReplyDelete
  57. Research paper writing on Computer science used to drive me into academic dead-end, that's why ordering Computer science papers from professional custom writing sites became the single salvation.

    ReplyDelete
  58. I haven't ever thought that custom Cheap research papers on Computer science which I ordered from special companies could lead me to academic recognition.

    ReplyDelete
  59. Hi Peteris!
    Your blog is marvellous and a great path-shower. I direly needed some vidoe lectures in computer science subjects and help provided by your blog cannot be reciprocated by me. I wish great success and perpetual hapiness in your life. - P K Joshi

    ReplyDelete
  60. This is very awesome. Thanks !

    ReplyDelete
  61. nice and well formated blog....
    good ollection of informations..
    awesome work ....

    please visit my blog and leave ur valuable comments
    MY BLOG:

    techmk22.blogspot.com

    ReplyDelete
  62. fantastic collection ! I have already started the torrent download for a few. I love sharing knowledge and appreciate to like minded people like you who believe in the same.

    ReplyDelete
  63. This is absolutely incredible. Great work dude...

    Many many thanks...

    Arun Nadesh

    ReplyDelete
  64. Hi there, great blog! I was wondering if you would like to exchange links with my IT training blog? Could add our sites to each others blogroll?

    ittrainingscotland.co.uk

    let me know via my email

    ReplyDelete
  65. Just saying thanks for having the links to the lectures. I listen to them quite a bit.

    ReplyDelete
  66. Hi,
    I like your "strategy" ideas.
    It is a very nice and good post.

    ReplyDelete
  67. Your blog is very nice

    ReplyDelete
  68. nice brother.

    this is good job blog..
    have you visit my blogsite?
    http://computerdux.net


    I am newbie.. :)

    ReplyDelete
  69. This is really a nice freebie... I am interested with computer hardware and networking. Do they also have those kind of lectures?

    ReplyDelete
  70. Wow! This site has some incredible material. I can't wait to dig into some more of these lectures! Thanks!

    ReplyDelete
  71. a heatily thank you for sharing all your colleted links.feeling proud of you man

    ReplyDelete
  72. this is a great help for me, esp. im an IT Educator.

    Keep it up.

    ReplyDelete
  73. hi thisa is wonderful for all
    if u want to get more imformation click here www.choosegreatone.blogspot.com

    ReplyDelete
  74. Instead of live streaming you can download the lecturs of "Priciples of Software Engineering" university of washington from link
    http://www.cs.washington.edu/education/courses/csep503/CurrentQtr/lectures/

    ReplyDelete
  75. Thats a very interesting post. I have been inspired. Thanks.

    ReplyDelete
  76. your work is so great. It helps me a lot. Thanks a lot.

    ReplyDelete
  77. God Bless you... Thanks a lot more than you can expect...

    ReplyDelete
  78. can't thank you enough.
    you are doing a great job.
    saves lot of time.
    thanx once more.

    ReplyDelete
  79. If you have problem your computer, visit this
    htt://e-bookscomputer.blogspot.com
    Try it may be will help you...

    ReplyDelete
  80. Very useful information provided and get more information on Choose a Rackmount Monitors that suits well with your requirements and is compatible with your business. Log on to http://www.rackmountsales.com/

    ReplyDelete
  81. This is so awesome that I would want to make a blogger account just to comment on it. Thanks a lot

    ReplyDelete
  82. I don;t usually approve with online education, but the courses described here seem interesting.

    ReplyDelete
  83. Thanks for the useful information. It is very hard to earn money chao!

    ReplyDelete
  84. Awesome post friend... Its very helpful. Fully informative and knowledgeable Post... Great work.. Keep going like this.. N Thanks for sharing with us..

    Thanks

    high school exchange programs australia

    ReplyDelete
  85. Creator of the Analytical Engine - the first general-purpose digital computer (1833)
    The Analytical Engine was not built until 1943 (in the form of the Harvard Mark I)http://camnetway.blogspot.com/

    ReplyDelete
  86. Good Work.....
    Very Informative....
    Upload still videos...

    ReplyDelete
  87. Many institutions limit access to their online information. Making this information available will be an asset to all.

    ReplyDelete
  88. Thank you. Thank you for sharing. I found college information which provides Computer Programming & Information Technology. This program is designed for people who plan to pursue careers as programmer analysts, web developers, and applications programmers. Students take courses in computer architecture, operating systems, advanced programming techniques, database management, network administration & design, developing internet applications using ASP and Java, and general education….You can also visit...

    ReplyDelete
  89. Thanks for sharing the information.that is very helpful for increasing my knowledge in this field.having a very good collection of lectures

    ReplyDelete