Free Science and Video Lectures Online!
Free education online is possible.

Great news! New Science Site launched: Free Science Videos and Lectures

Another great news! My Programming Site launched: Good coders code, great reuse

More great news! I started my own company: Browserling - Cross-browser testing.

Sunday, September 30, 2007

Programming Language Video Lectures

This month I present to you my findings on programming language video lectures. I found some good introductory lectures on C++, Java, Perl, Python and a full blown course on Symbolic Programming from UC Berkeley. Have fun! :)


Introduction to Symbolic Programming (University of California Berkeley)

Topics covered are the following:
  1. Exploration: introduction to the course and to programming.
  2. Procedures and functions: evaluation, words and lists, functional programming.
  3. Variables: data types, inputs to procedures and functions, scope of variables, assignment.
  4. Predicates: conditional evaluation.
  5. Recursion (several models): linear- and tree-recursive operations.
  6. Planning and debugging.
  7. Functional operators.
  8. Other control structures, e.g. iteration, non-local exit.
  9. Other data structures, e.g. trees, hash tables, property lists, files.
  10. Programs as data.

C++ for Particle Physicists

Series of 13 lectures that was presented at CERN in Geneva by Paul Kunz from Stanford University. The lectures are very clear and start with the basics in an attempt to teach C++ to Particle Physicists. Each lecture is about an hour and a half long.

More information about these 13 lectures can be found here: http://www.wlap.org/cern/lectures/tech/c/


C++ Programming Tutorial


Bjarne Stroustrup’s Video Lecture on C++0x Standard

Dr. Bjarne Stroustrup is the original designer and implementer of the C++ Programming Language.

Quoting Him: "A good programming language is far more than a simple collection of features. My ideal is to provide a set of facilities that smoothly work together to support design and programming styles of a generality beyond my imagination. Here, I briefly outline rules of thumb (guidelines, principles) that are being applied in the design of C++0x. Then, I present the state of the standards process (we are aiming for C++09) and give examples of a few of the proposals such as concepts, generalized initialization, being considered in the ISO C++ standards committee. Since there are far more proposals than could be presented in an hour, I'll take questions."



Java Programming basics

An excellent video lecture course in Java Programming.
Students who view the complete video course will:
  • Understand fundamentals of programming such as variables, conditional and iterative execution, methods, etc.
  • Understand fundamentals of object-oriented programming, including defining classes, invoking methods, using class libraries, etc.
  • Gain exposure to the important topics and principles of software development.
  • Have the ability to write computer programs to solve specified problems.
  • Be able to use a software development environment to create, debug, and run programs.


Introduction to Perl: The Friendly Programming Language

Adam Trickett gives a short talk introducing the Perl scripting / programming language. This talk does not require any previous knowledge of Perl.

The talk covers history of Perl, Perl's parent programming languages, Hello world program, Perl's books, CPAN (Comprehensive Perl Archive Network) and Useful Perl resources/websites.



Beginning Perl for Nonprogrammers

This is an instructional video outlining the basics of the Perl scripting language.


Audrey Tang - Perl 6 Today


Introducing Python

This 24 minute video contains interviews with luminaries from the Python community interspersed with A Python Love Story. It was created for use as an introductory activity in a computer science course using Python.


Why I Like Python

Jim Dennis gives a short talk on the aspects of the Python programming language that he most appreciates. This talk requires some basic programming knowledge.


Intro to programming with Python and Tkinter

(Sorry, I couldn't find lectures 1 and 2). Starts with lecture 3:

More details on these tutorials at Intro to programming with Python and Tkinter wiki.



Related Posts
  • Free Computer Science Video Lecture Courses
    (Courses include web application development, lisp/scheme programming, data structures, algorithms, machine structures, programming languages, principles of software engineering, object oriented programming in java, systems, computer system engineering, computer architecture, operating systems, database management systems, performance analysis, cryptography, artificial intelligence)

  • Programming Lectures and Tutorials
    (Lectures include topics such as software engineering, javascript programming, overview of firefox's firebug extension, document object model, python programming, design patterns in python, java programming, delphi programming, vim editor and sqlite database design)

  • Programming, Networking Free Video Lectures and Other Interesting Ones
    (Includes lectures on Python programming language, Common Lisp, Debugging, HTML and Web, BGP networking, Building scalable systems, and as a bonus lecture History of Google)

  • 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 and Programming Lectures
    (Includes Haskell functional programming lecture, C++ and object oriented programming course, Java programming and Java app. development course, operating systems course, data mining course, cluster computing and map reduce lectures, internetworking & networking lectures, information systems lectures, computers and society course, human-computer interaction lecture course, java and web framework comparison lectures)

  • 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.)

Labels: , , , , , , , , ,

Saturday, May 26, 2007

Programming Video Education Lectures

Recently there's been a surge of programming video lectures on the net. Like all the big companies Yahoo and Google getting their internal lectures out. So I am writing about some of them. Have fun!

And btw, I have launched a new science site which currently has just cool science/technology/education video clips but later will also have much, much more free education stuff. The site is here: Free Science Lectures and Education


The JavaScript Programming Language (by Douglas Crockford)
Yahoo! JavaScript Architect Douglas Crockford provides a comprehensive introduction to the JavaScript Programming Language in this four-part video:
  • JavaScript Video Lecture Part I (Yahoo Video)
    JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world's most popular programming languages. Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use. JavaScript's popularity is due entirely to its role as the scripting language of the WWW. Despite its popularity, few know that JavaScript is a very nice dynamic object-oriented general-purpose programming language. How can this be a secret? Why is this language so misunderstood?

  • JavaScript Video Lecture Part II
    JavaScript's C-like syntax, including curly braces and the clunky for statement, makes it appear to be an ordinary procedural language. This is misleading because JavaScript has more in common with functional languages like Lisp or Scheme than with C or Java. It has arrays instead of lists and objects instead of property lists. Functions are first class. It has closures. You get lambdas without having to balance all those parens.

  • JavaScript Video Lecture Part III
    Nearly all of the books about JavaScript are quite awful. They contain errors, poor examples, and promote bad practices. Important features of the language are often explained poorly, or left out entirely. I have reviewed dozens of JavaScript books, and I can only recommend one: JavaScript: The Definitive Guide (5th Edition) by David Flanagan.

  • JavaScript Video Lecture Part IV
    Most of the people writing in JavaScript are not programmers. They lack the training and discipline to write good programs. JavaScript has so much expressive power that they are able to do useful things in it, anyway. This has given JavaScript a reputation of being strictly for the amateurs, that it is not suitable for professional programming. This is simply not the case.

  • Lecture Slides (zipped pdf)


Advanced JavaScript (by Douglas Crockford)
Yahoo! JavaScript Architect Douglas Crockford lectures on the nuances of the JavaScript programming language in this three-part video:
  • Advanced JS Part I (Yahoo Video)
    Douglas Crockford teaches "Advanced JavaScript." This course is broken into three clips; this is the first of those three clips. Note that when Douglas begins the talk referring to the "third installment", he's referring to "Advanced JavaScript" being the third class in a series; this is indeed the first of the three clips comprising the "Advanced JavaScript" class.

  • Advanced JS Part II
    No programming language is perfect. JavaScript has its share of design errors, such as the overloading of + to mean both addition and concatenation with type coercion, and the error-prone with statement should be avoided. The reserved word policies are much too strict. Semicolon insertion was a huge mistake, as was the notation for literal regular expressions. These mistakes have led to programming errors, and called the design of the language as a whole into question.

  • Advanced JS Part III
    The official specification for the language is published by ECMA. The specification is of extremely poor quality. It is difficult to read and very difficult to understand. This has been a contributor to the Bad Book problem because authors have been unable to use the standard document to improve their own understanding of the language. ECMA and the TC39 committee should be deeply embarrassed.

  • Lecture Slides

Advanced JavaScript with Libraries (by John Resig)
John Resig of Mozilla Corp., author of the popular JQuery JavaScript library, describes the role of libraries in the world of frontend engineering, the problems they solve, and the things we can learn from how developers use and think about libraries in their projects.


Maintainable JavaScript (by Nicholas Zakas)
Nicholas Zakas is an engineer on the team that brings you My Yahoo!, one of the most popular personalized portals on the web. In this talk, Zakas focuses on some fundamental concepts in the world of frontend engineering with an eye toward making code more maintainable.


An Inconvenient API: The Theory of the DOM [Document Object Model] (by Douglas Crockford)
Yahoo! JavaScript Architect Douglas Crockford discusses the nexus between JavaScript and the browser, exploring the history of the BOM and DOM APIs and their impact on frontend engineering today. This presentation is archived in three parts:

Welcome to FireBug 1.0 (by John Hewitt)
Joe Hewitt is a Mozilla developer who has written software dear to the heart of all web developers, including the original Mozilla DOM Inspector. Joe's newest Mozilla tool is Firebug, an integral logging and debugging extension for Firefox that sets a new standard for its category. Joe provided a power-user tour while announcing Firebug 1.0's release on January 25, 2007, at Yahoo!.

New Features in the Next C++ Standard
The upcoming C++ standard will have many new features, several major and many minor. The major features are concurrency, template concepts, move semantics, generalized constant expressions, automatic variable typing, and garbage collection. We will present an overview of the major features and breeze through a list of other features, commenting on their likeliness to make the standard.


Advanced Python (Or Understanding Python)
The Python language, while object-oriented, is fundamentally different from both C++ and Java. The dynamic and introspective nature of Python allow for language mechanics unlike that of static languages. This talk aims to enlighten programmers new to Python about these fundamentals, the language mechanics that flow from them and how to effectively put those to use. Among the topics covered are duck-typing, interfaces, descriptors, decorators, metaclasses, reference-counting and the cyclic-garbage collector, the divide between C/C++ data and Python objects and the CPython implementation in general.

This talk is part of the Advanced Topics in Programming Languages series. The goal of this series is to encourage all of the people at Google who know and love programming languages to share their knowledge.



Python Design Patterns (by Alex Martelli)
Design Patterns must be studied in the context on the language in which they'll get implemented (the Gang of Four made that point very strongly in their book, though almost everybody else seems not to have noticed :-). This talk explores several categories of classic "elementary" DPs in a Python context -- Creational, Masquerading, Adaptation, and Template.


Learning Java Programming - Video Tutorial


Delphi Training Series: Programming 101 (by 3DBuzz)
Ever wanted to become a programmer? The Delphi Training Series: Programming 101 is a sequence of training videos designed to teach the complete beginner how to become a programmer using Delphi.
  • Dephi Programming Episode 1 (YouTube video)
    In this episode, the viewer is shown where they can download the free Integrated Development Environment (IDE) known as Turbo Delphi, as well as how to get it installed and registered. Once launched the video will walk the viewer through the creation of their first simple program.

  • Dephi Programming Episode 2

  • Dephi Programming Episode 3
    Episode 3 explores simple game design!

  • Dephi Programming Episode 4
    In this episode, the viewer is introduced to the concept of variables.
    This video is the first in a mini-series aimed at the creation of your own MP3 player.


  • Dephi Programming Episode 5
    In this episode, the viewer is exposed to the world of Procedures and Functions.
    This video continues the series with focus on writing your own mp3 player.


  • Dephi Programming Episode 6
    In this episode, the viewer is presented with lecture covering DLLs, handles, the BASS library, and all steps required to write the foundation of a simple MP3 player.

  • Dephi Programming Episode 7
  • Dephi Programming Episode 8
    In the eighth installment of the Delphi Training Series, we take a short break away from the MP3 player we were writing to introduce you to a new aspect of programming: The IF statement.

  • Dephi Programming Episode 9
    The ninth episode of the Delphi Training Series is another theory-driven exploration, stepping away from the MP3 player to take a look at looping and how it works inside of Object Pascal.


Vim: 7 Habits For Effective Text Editing (by Bram Moolenaar)
A large percentage of time behind the computer screen is spent on editing text. Investing a little time in learning more efficient ways to use a text editor pays itself back fairly quickly. This presentation will give an overview of the large number of ways of using Vim in a smart way to edit programs, structured text and documentation. Examples will be used to make clear how learning a limited number of habits will avoid wasting time and lower the number of mistakes. Bram Moolenaar is mostly known for being the benevolent dictator of the text editor Vim. His roots are in electrical engineering and for a long time he worked on inventing image processing algorithms and software for big photo copying machines. At some point his work on Open-Source software became more important, making the development of Vim his full time job. He also did the A-A-P project in between Vim version 6.0 and 7.0. Now he works for Google in Zurich, still improving Vim on the side.


Bonus Lecture this Month:
An Introduction to SQLite (by Richard Hipp)
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. SQLite implements a large subset of SQL-92 and stores a complete database in a single disk file. The library footprint is less than 250 KB making is suitable for use in embedded devices and applications where memory space is scarce.

This talk provides a quick overview of SQLite, its history, its strengths and weaknesses, and describes situations where it is much more useful than a traditional client/server database. The talk concludes with a discussion of the lessons learned from the development of SQLite and how those lessons can be applied to other projects.



Related Posts
  • Free Computer Science Video Lecture Courses
    (Courses include web application development, lisp/scheme programming, data structures, algorithms, machine structures, programming languages, principles of software engineering, object oriented programming in java, systems, computer system engineering, computer architecture, operating systems, database management systems, performance analysis, cryptography, artificial intelligence)

  • Programming, Networking and Other Interesting Lectures
    (Lectures include artificial intelligence, python programming, lisp programming, debugging, bgp networking, large scale systems, google history and google search)

  • 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.)

Labels: , , , , , , , , , , , ,

Monday, April 30, 2007

Programming, Networking Free Video Lectures and Other Interesting Ones

Ok, I am back to real science video lectures and this month I present to you the best (in my opinion) computer science video lectures I could find on Google Tech Talk.


OSS Speaker Series: Python for Programmer
Python is a popular very-high-level programming language, with a clean and spare syntax, simple and regular semantics, a large standard library and a wealth of third-party extensions, libraries and tools. With several production-quality open-source implementations available, many excellent books, and growing acceptance in both industry and academia, Python can play some useful role within a huge variety of software development projects.

Moreover, Python is really easy to learn, particularly (though not exclusively) for programmers who are skilled at such languages as Java, C++ and C. This talk addresses software developers who are experienced in other languages but have had limited or no exposure to Python yet, and offers a rapid overview of the main characteristics of the language, plus a brief synopsis of its main implementations, its standard library, and third-party extension packages.



Python 3000
The next major version of Python, nicknamed Python 3000 (or more prosaically Python 3.0), has been anticipated for a long time. For years the author of Python has been collecting and exploring ideas that were too radical for Python 2.x, and it's time to stop dreaming and start coding. In this talk he will present the community process that will be used to complete the specification for Python 3000, as well as some of the major changes to the language and the remaining challenges.


Practical Common Lisp
In the late 1920's linguists Edward Sapir and Benjamin Whorf hypothesized that the thoughts we can think are largely determined by the language we speak. In his essay "Beating the Averages" Paul Graham echoed this notion and invented a hypothetical language, Blub, to explain why it is so hard for programmers to appreciate programming language features that aren't present in their own favorite language. Does the Sapir-Whorf hypothesis hold for computer languages? Can you be a great software architect if you only speak Blub? Doesn't Turing equivalence imply that language choice is just another implementation detail? Yes, no, and no says Peter Seibel, language lawyer (admitted, at various times, to the Perl, Java, and Common Lisp bars) and author of the award-winning book Practical Common Lisp. In his talk, Peter will discuss how our choices of programming language influences and shapes our pattern languages and the architectures we can, or are likely to, invent. He will also discuss whether it's sufficient to merely broaden your horizons by learning different programming languages or whether you must actually use them.


Debugging Backwards in Time
What if a debugger could allow you to simply step BACKWARDS? Instead of all that hassle with guessing where to put breakpoints and the fear of typing "continue" one too many times... What if you could simply go backwards to see what went wrong?

This is the essence of the "Omniscient Debugger" -- it remembers everything that happened during the run of a program, and allows the programmer to "step backwards in time" to see what happened at any point of the program. All variable values, all objects, all method calls, all exceptions are recorded and the programmer can now look at anything that happened at any time.



Learning to Analyze Sequences
Sequential data - speech, text, genomic sequences - floods our storage servers. Much useful information in these data is carried by implicit structure: phonemes and prosody in speech, syntactic structure in text, genes and regulatory elements in genomic sequences. Over the last six years, several of us have been investigating structured linear models, a unified discriminative learning approach to sequence analysis problems. The lecturer will review the approach and illustrate it with applications to information extraction and gene finding. Then he will conclude with a summary of other applications and current research questions.


The XHTML video Element Tag
Video is becoming increasingly important content type, and it's time to make video a first-class citizen on the web. The element is, along with JavaScript bindings, proposed as a simple solution to encourage browsers to support video natively. Equally important is the choice of video format to be used with. The lecturer will argue that the success of the web is based on using open standards, and that video should be no exception. He will then demo Opera showing Ogg Theora video clips natively.
A demonstration is available here:
http://people.opera.com/howcome/2007/video



Pipes: A Tool For Remixing the Web
Pipes is a service platform for processing well-structured data such as RSS, Atom and RDF feeds in a Web-based visual programming environment. Developers can use Pipes to combine data sources and user input into mashups without having to write code. These mashups, analogous in some ways to Unix pipes, can power badges on personal publishing sites, provide core functionality for Web applications, or serve as reusable components within the Pipes platform itself.

Here's what Tim O'Reilly says about pipes: "Yahoo!'s new Pipes service is a milestone in the history of the internet. It's a service that generalizes the idea of the mashup, providing a drag and drop editor that allows you to connect internet data sources, process them, and redirect the output."

You can play with Yahoo! Pipes here: Yahoo! Pipes



BGP (Border Gateway Protocol) at 18: Lessons in Protocol Design
18th anniversary of BGP. In this talk we examine the evolution of BGP over these 18 years, and look at the lessons we could learn from this.

Dr. Yakov Rekhter joined Juniper Networks in Dec 2000, where he is a Distinguished Engineer. Prior to joining Juniper, Yakov worked at Cisco Systems, where he was a Cisco Fellow. Prior to joining Cisco in 1995, he worked at IBM T.J. Watson Research Center.

Yakov Rekhter was one of the leading architects and a major software developer of the NSFNET Backbone Phase II. He co-designed the Border Gateway Protocol (BGP). He was also one of the lead designers of Tag Switching, BGP/MPLS based VPNs, and MPLS Traffic Engineering. Among his most recent activities is the work on Generalized Multi-Protocol Label Switching (GMPLS). His other contributions to contemporary Internet technology include: Classless Inter-Domain Routing (CIDR) and IP address allocation for private Internets.

He is the author or co-author of over 40 IETF RFCs, and numerous papers and articles on TCP/IP and the Internet. His recent books include: "MPLS: Technology and Applications" (Morgan Kauffman, 2000) and "Switching in IP Networks: IP Switching, Tag Switching and Related Technologies" (Morgan Kauffman, 1998).



A New Way to Look at Networking
Today's research community congratulates itself for the success of the internet and passionately argues whether circuits or datagrams are the One True Way. Meanwhile the list of unsolved problems grows.

Security, mobility, ubiquitous computing, wireless, autonomous sensors, content distribution, digital divide, third world infrastructure, etc., are all poorly served by what's available from either the research community or the marketplace. The lecturer will use various strained analogies and contrived examples to argue that network research is moribund because the only thing it knows how to do is fill in the details of a conversation between two applications. Today as in the 60s problems go unsolved due to our tunnel vision and not because of their intrinsic difficulty. And now, like then, simply changing our point of view may make many hard things easy.



Building Large Scale Systems at Google
Google deals with large amounts of data and millions of users. We'll take a behind-the-scenes look at some of the distributed systems and computing platform that power Google's various products, and make the products scalable and reliable.


Authors@Google: Steve Wozniak
Apple co-founder Steve Wozniak discusses his new book iWoz as part of the Authors@Google speaker series. The book chronicles his experiences founding Apple and taking part in Silicon Valley's boom period.


Computer Versus Common Sense
It's way past 2001 now, where the heck is HAL? For several decades now we've had high hopes for computers amplifying our mental abilities not just giving us access to relevant stored information, but answering our complex, contextual questions.

Even applications like human-level unrestricted speech understanding continue to dangle close but just out of reach. What's been holding AI up? The short answer is that while computers make fine idiot savants, they lack common sense: the millions of pieces of general knowledge we all share, and fall back on as needed, to cope with the rough edges of the real world. The presenter will talk about how that situation is changing, finally, and what the timetable -- and the path -- realistically are on achieving Artificial Intelligence.



Dasher: Information Efficient Text Entry
Keyboards are inefficient for two reasons: they do not exploit the redundancy in normal language; and they waste the fine analogue capabilities of the user's motor system (fingers and eyes, for example). I describe a system intended to rectify both these inefficiencies. Dasher is a text-entry system in which a language model plays an integral role, and it's driven by continuous gestures. Users can achieve single-finger writing speeds of 35 words per minute and hands-free writing speeds of 25 words per minute. Dasher is free software, and it works in all languages, and on many platforms. Dasher is part of Debian, and there's even a little java version for your web-browser.
More on Dasher: http://www.dasher.org.uk/



Winning The DARPA Grand Challenge
The DARPA Grand Challenge technical details explained by Sebastian Thrun's whose team won, and an introduction to the next phase called "The Urban Grand Challenge".

More on the DARPA Grand Challenge
Wikipedia link to DARPA Grand Challenge


The Google Story
Here is what the author of the book has to say about the lecture/talk:

Not since Gutenberg invented the modern printing press more than 500 years ago, making books and scientific tomes affordable and widely available to the masses, has any new invention empowered individuals or transformed access to information as profoundly as Google. I first became aware of this while covering Google as a beat reporter for The Washington Post. What galvanized my deep interest in the company was its unconventional initial public offering in August 2004 when the firm thumbed its nose at Wall Street by doing the first and only multi-billion dollar IPO using computers, rather than Wall Street bankers, to allocate its hot shares of stock.

A few months later, in the fall of 2004, I decided to write the first biography of Google, tracing its short history from the time founders Sergey Brin and Larry Page met at Stanford in 1995 until the present. In my view, this is the hottest business, media and technology success of our time, with a stock market value of $110 billion, more than the combined value of Disney, The Washington Post, The New York Times, The Wall Street Journal, Amazon.com, Ford and General Motors.



"The Search" (Google Search)
John Battelle, co-founding editor of Wired and founder of The Industry Standard visits the Google New York office to speak about his book The Search: How Google and Its Rivals Rewrote the Rules of Business and Transformed Our Culture


Related Posts
  • Free Computer Science Video Lecture Courses
    (Courses include web application development, lisp/scheme programming, data structures, algorithms, machine structures, programming languages, principles of software engineering, object oriented programming in java, systems, computer system engineering, computer architecture, operating systems, database management systems, performance analysis, cryptography, artificial intelligence)

  • Programming Lectures and Tutorials
    (Lectures include topics such as software engineering, javascript programming, overview of firefox's firebug extension, document object model, python programming, design patterns in python, java programming, delphi programming, vim editor and sqlite database design)

  • 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.)

Labels: , , , , , , , , , , , , , , , ,