Showing posts with label course. Show all posts
Showing posts with label course. Show all posts

Thursday, November 24, 2011

More free online courses from Stanford University

In addition to the previously posted free online courses from Stanford, the under-listed courses are also available:
Do yourself some good and register to learn some new things in 2012. It's free, so you've really got nothing to lose, right?

Free Online course from Stanford University on Design and Analysis of Algorithms I


Tim Roughgarden, Associate Professor of Computer Science and (by courtesy) Management Science and Enginering at Stanford University will be taking a course in Design and Analysis of Algorithms in January 2012.

In the course you will learn several fundamental principles of algorithm design. You'll learn the divide-and-conquer design paradigm, with applications to fast sorting, searching, and multiplication. You'll learn several blazingly fast primitives for computing on graphs, such as how to compute connectivity information and shortest paths. Finally, we'll study how allowing the computer to "flip coins" can lead to elegant and practical algorithms and data structures. Learn the answers to questions such as: How do data structures like heaps, hash tables, bloom filters, and balanced search trees actually work, anyway? How come QuickSort runs so fast? What can graph algorithms tell us about the structure of the Web and social networks? Did my 3rd-grade teacher explain only a suboptimal algorithm for multiplying two numbers?

Prerequisites: How to program in at least one programming language (like C, Java, or Python); familiarity with proofs, including proofs by induction and by contradiction; and some discrete probability, like how to compute the probability that a poker hand is a full house. At Stanford, a version of this course is taken by sophomore, junior, and senior-level computer science majors.

You can learn more or register for the course here.

Free Online Course on Software As A Service (Saas) from Stanford University




Armando Fox, Associate Professor at UC Berkeley and David Patterson, Pardee Professor of Computer Science at UC Berkeley and  current Director of the Parallel Computing Lab will be taking a course on Software Engineering for Software as a Service in February 2012.

The course will teach the engineering fundamentals for long-lived software using the highly-productive Agile development method for Software as a Service (SaaS) using Ruby on Rails. Agile developers continuously refine and refactor a working but incomplete prototype until the customer is happy with result, with the customer offering continuous feedback. Agile emphasizes user stories to validate customer requirements; test-driven development to reduce mistakes; biweekly iterations of new software releases; and velocity to measure progress. We will introduce all these elements of the Agile development cycle, and go through one iteration by adding features to a simple app and deploying it on the cloud using tools like Github, Cucumber, RSpec, RCov, Pivotal Tracker, and Heroku.

Prerequisites for the course are: Programming proficiency in an object-oriented programming language such as Java, C#, C++, Python, or Ruby. Basic Unix command-line skills are helpful; we will provide a cheat sheet. You must also have a computer running Windows, Mac OS, Linux, or Solaris operating systems and running x86 or AMD64/Intel64 hardware on which you can install and run VirtualBox virtual machine. It should have at least 512 MB of memory, or at least 1 GB if running Windows. See www.virtualbox.org.

Recommended Textbook: "Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing," Beta Edition, by Armando Fox and David Patterson, to be available January 17, 2012.

You can register for the course here.

Free Online Course on Probabilistic Graphical Models from Stanford University



Professor Daphne Koller of Stanford University (Rajeev Motwani Professor in the School of Engineering), will be instructing a free online course in Probabilistic Graphical Models.

In this class, you will learn the basics of the PGM representation and how to construct them, using both human knowledge and machine learning techniques; you will also learn algorithms for using a PGM to reach conclusions about the world from limited and noisy evidence, and for making good decisions under uncertainty. The class covers both the theoretical underpinnings of the PGM framework and practical skills needed to apply these techniques to new problems.

Topics include:
(i) The Bayesian network and Markov network representation, including extensions for reasoning over domains that change over time and over domains with a variable number of entities;
(ii) reasoning and inference methods, including exact inference (variable elimination, clique trees) and approximate inference (belief propagation message passing, Markov chain Monte Carlo methods);
(iii) learning methods for both parameters and structure in a PGM;
(iv) using a PGM for decision making under uncertainty. The course will also draw from numerous case studies and applications, so that you'll also learn how to apply PGM methods to computer vision, text understanding, medical decision making, speech recognition, and many other areas.

You can register for the course here.