### Computer Science Videos

The lectures include: Introduction to compsci and programming, Google's python programming, Computational finance, Free and open source software development, Effective ML, Design of C++0x, Kolmogorov complexity with Prolog.

**Introduction to Computer Science and Programming (MIT)**

**Course description:**

This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.

**Course topics:**

Introduction and Goals; Data Types, Operators, and Variables. Branching, Conditionals, and Iteration. Common Code Patterns: Iterative Programs. Abstraction through Functions; Introduction to Recursion. Floating Point Numbers, Successive Refinement, Finding Roots. Bisection Methods, Newton/Raphson, Introduction to Lists. Lists and Mutability, Dictionaries, Introduction to Efficiency. Complexity: Log, Linear, Quadratic, Exponential Algorithms. Binary Search, Bubble and Selection Sorts. Divide and Conquer Methods, Merge Sort, Exceptions. Testing and Debugging. Debugging, Knapsack Problem, Introduction to Dynamic Programming. Dynamic Programming: Overlapping Subproblems, Optimal Substructure. Introduction to Object-oriented Programming. Abstract Data Types, Classes and Methods. Encapsulation, Inheritance, Shadowing. Computational Models: Random Walk Simulation. Presenting Simulation Results, Pylab, Plotting. Biased Random Walks, Distributions. Monte Carlo Simulations, Estimating pi. Validating Simulation Results, Curve Fitting, Linear Regression. Normal, Uniform, and Exponential Distributions. Stock Market Simulation. Course Overview; What Do Computer Scientists Do?

**Google's Python Class**

Course description:

This is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding. These materials are used within Google to introduce Python to people who have just a little programming experience. The first exercises work on basic Python concepts like strings and lists, building up to the later exercises which are full programs dealing with text files, processes, and http connections. The class is geared for people who have a little bit of programming experience in some language, enough to know what a "variable" or "if statement" is. Beyond that, you do not need to be an expert programmer to use this material.

Course topics:

Introduction, strings. Lists and sorting. Dicts and files. Regular expressions. Utilities, urllib. Conclusions.

**Free and Open Source Software Development**

**Course topics:**

Introduction to FOSS. Getting started in a FOSS project. Source code management. FOSS History. Inside FOSS Licensing. FOSS and the law. FOSS Governance. FOSS and Business. What motivates a FOSS developer? Case study: Samba. FOSS Distributions and Platforms. FOSS Culture. Starting a new project. FOSS Tales. Release early, Release often.

**Computational Finance**

**Course topics:**

Skiena's computational finance lectures. Course overview. Financial Markets and Products. Forward Contracts. Futures and Options. Properties of Stock Options. Portfolios with of Stock Options. Bounds on Option Prices. Interest Rates. Random Walk Models. Price Distributions. Risk-Neutral Valuation. Financial Time Series Data. Correlation and Autocorrelation. Time Series Modeling. ARIMA/GARCH Models. Spectral Analysis. Portfolio Theory. The Capital Assets Pricing Model. Technical Analysis. Introduction to Online Algorithms. Competitive analysis for finance. Pairs trading. Market Microstructure. Money management and the Kelly criteria.

**Effective ML**

**ML tips from the lecture:**

Favor readers over writers. Create uniform interfaces. Make illegal states unrepresentable. Code for exhaustiveness. Open few modules. Make common errors obvious. Avoid boilerplate. Avoid complex type-hackery. Don't be puritanical about purity.

**Special talk by Bjarne Stroustrup at CERN: The Design of C++0x**

**Talk description:**

A draft for a revised ISO C++ standard, C++0x, has been produced. The speaker will present the background of C++, its aims, the standards process (with opinions), some of the guiding design principles (with tiny code examples), and two case studies. The case studies are initialization (a general and uniform syntax and semantics for initializers in all contexts) and concurrent support facilities (memory model, threads, locks, futures).

**Kolmogorov Complexity with Prolog**

**Lecture overview:**

I give a brief sales pitch on why you need to learn prolog, then I walk you through the steps to download and install it. Then I give a brief tour of the command line, followed by some homework to help you get familier with it. Kolmogorov in your face.

Have fun with these lectures and see you next time!

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) - 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) - Pure Computer Science

(Includes basics of computation theory, intro to computer science, data structures, compiler optimization, intro to computers and internet, intro to clojure, and some videos from EECS colloquium at Case Western Reserve University.) - Programming video lectures

(Includes Steven Skiena's programming challenges with solutions. IOI 2009 problems and solutions. Haskell programming. Scheme. SICP. Scheme Macros. Machine Learning. Natural Language Processing. Programming Methodology. Programming Abstractions. Programming Paradigms. Evolution of Lisp. Programming Effective ML.) - Full Stanford University Courses

(Includes Artificial Intelligence, Databases, Machine Learning, iPhone Application Development and Programming Parallel Processors.)