# 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, 2012

### Computer Science Full Lecture Courses

Hello everyone! This month I've more full computer science courses. Courses include: Machine Learning, Introduction to Databases, Web Applications, Practical Unix, Software Engineering, Functional Programming and Natural Programming.

Machine Learning (Stanford Open Classroom, Full Course)

Course description:
In this course, you'll learn about some of the most widely used and successful machine learning techniques. You'll have the opportunity to implement these algorithms yourself, and gain practice with them. You will also learn some of practical hands-on tricks and techniques (rarely discussed in textbooks) that help get learning algorithms to work well. This is an "applied" machine learning class, and we emphasize the intuitions and know-how needed to get learning algorithms to work in practice, rather than the mathematical derivations.
Familiarity with programming, basic linear algebra (matrices, vectors, matrix-vector multiplication), and basic probability (random variables, basic properties of probability) is assumed. Basic calculus (derivatives and partial derivatives) would be helpful and would give you additional intuitions about the algorithms, but isn't required to fully complete this course.

Course topics:
What is Machine Learning? Supervised Learning Introduction. Unsupervised Learning Introduction. Installing Octave. Supervised Learning Introduction. Model Representation. Cost Function. Gradient Descent. Gradient Descent for Linear Regression. Vectorized Implementation. Feature Scaling. Learning Rate. Features and Polynomial Regression. Normal Equations. Classification. Model. Optimization Objective I. Optimization Objective II. Gradient Descent. Newton's Method I. Newton's Method II. Gradient Descent vs Newton's Method. The Problem Of Overfitting. Optimization Objective. Common Variations. Regularized Linear Regression. Regularized Logistic Regression. Generative Learning Algorithms. Text Classification.

Introduction to Databases (Stanford Open Classroom/Coursera, Full Course)

Course description:
This course covers database design and the use of database management systems for applications. It includes extensive coverage of the relational model, relational algebra, and SQL. It also covers XML data including DTDs and XML Schema for validation, and the query and transformation languages XPath, XQuery, and XSLT. The course includes database design in UML, and relational design principles based on dependencies and normal forms. Many additional key database topics from the design and application-building perspective are also covered: indexes, views, transactions, authorization, integrity constraints, triggers, on-line analytical processing (OLAP), and emerging "NoSQL" systems.

Course topics:
What are databases? Relational databases. XML data. JSON data. Relational Algebra. SQL. Relational Design Theory. Querying XML. Unified Modeling Language (UML). Indexes. Constraints and triggers. Transactions. Views. Authorization. Recursion in SQL. Online analytical processing (OLAP). NoSQL systems.

Web Applications (Stanford Open Classroom, Full Course)

Course description:
Although the World-Wide Web was initially conceived as a vehicle for delivering documents, it is now being used as a platform for sophisticated interactive applications, displacing the traditional mechanism of installable binaries. Web-based applications offer numerous advantages, such as instant access, automatic upgrades, and opportunities for collaboration on a massive scale. However, creating Web applications requires different approaches than traditional applications and involves the integration of numerous technologies. This class will introduce you to the Web technologies and give you experience creating Web applications. In the process you will learn about markup languages, scripting languages, network protocols, interactive graphics, event-driven programming, and databases, and see how they all work together to deliver exciting applications.

Course topics:
Why web? The Next 10 Years. Class Content. HTML and Markup Languages. XHTML. XML, HTML, and XHTML. CSS. URL Encoding. Issues with URLs. No Referential Integrity. Overview. Data Types. Variables and Statements. Methods. Blocks, Iterators, and Class. Review of Basics. Other Things to Know. Metaprogramming. History of Dynamic Content. Advantages. Introducing Model View Controller. Views and Templates. Controllers. Relational Databases. Joins. Other Issues About Databases. Basics of ORM. Examples. Active Record. Relationships Between Tables. Migration. HTTP Request-Response Protocol. Redirection and HTTPS. Cookies. Sessions. Basics. Page Flow. Validation and Error Handling. File Uploads with Rails. JavaScript. Basics. Functions. Class System. Tying It All Together. DOM. Basics. Node. Operations on Elements. Coordinates and Positioning. Events. Ajax. Security. Summary of Problems. Encryption. Certificate Authority and SSL/TLS. SSL Stripping. Mixed Content. "Just in Time" HTTPS. Bad Certificate. Choosing Session IDs. Cross Site Request Forgery. Data Tampering. Cross-Site Scripting (XSS). Relaxations. Language-Based Isolation. Navigation and Cookies. Escape Queries. Stored XSS. Reflected XSS. Phishing attacks. Basic Idea. Legitimate v. Illegitimate. Certificates. Other Anti-Phishing Measures. Load Balancing. Sessions and Storage. RAMCloud. Scaling and Cloud Computing. Data centers. Deploying webapps. Web Plumbing, Relational Databases, and Languages. Rails, Security, and Large-Scale Apps. Themes. Future of the Web.

Practical Unix (Stanford Open Classroom, Full Course)

Course description:
A practical introduction to using the Unix operating system with a focus on Linux command line skills. Topics include: grep and regular expressions, ZSH, Vim and Emacs, basic and advanced GDB features, permissions, working with the file system, revision control, Unix utilities, environment customization, and using Python for shell scripts. Topics may be added, given sufficient interest.

Course topics:
Introduction. Setting Up Linux. Intro Shell. Intro Text Editors. Shell. Changing Your Login Shell. ZSH Globbing. Searching. Diff. Find. Grep and Regular Expressions - Intro. Grep and Regular Expressions - Find. Grep and Regular Expressions - Replace. Grep and Regular Expressions - Advanced. GNU Debugger. GDB Essentials. Permissions. Networking. scp - Secury Copy (copy files over a network). wget - WWW Get (download files from the internet). cURL - Send Requests to Online Resources - Intro. cURL - Web Request Basics. cURL - Customizing Web Requests. Intro to Shell Scripting in Python. Pipes: Redirecting Output to Another Command's Input. Redircting Output to a File. Redirecting a File to Standard Input. Tee: Outputting to stdout and a File.

Software Engineering (University of Edinburgh, Full Course)

Course topics:
Software overview. Large(r) systems. Requirements in engineering and use cases. Design. UML class diagrams. UML Construction. Interaction, Verification, validation and testing. Processing. Agile development. Software quality. Security engineering. Software licensing, IP. Ethics.

Functional Programming (University of Edinburgh, Full Course)

Course description:
The course teaches the basics of functional programming using the language Haskell. The main goal is to acquaint the student with fundamental programming concepts such as recursion, abstraction, higher-order functions and data types, whilst at the same time emphasizing the practical use of such constructs by applying them within a graphical environment.

Natural Computing (University of Edinburgh, Full Course)

Course topics:
Introduction. Genetic algorithms. The canonical genetic algorithm. The schema theorem. The building block hypothesis. Hybrid GAs. Multiobjective optimisation, Evolution strategies. Differential evolution, Genetic programming. Ant colony optimisation. Particle swarm optimisation. Metaheuristic optimisation. Comparison of metaheuristic algorithms. DNA computing. Molecular computing. Membrane computing. Brief introduction to quantum computing.

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