Stanford course free for everyone
Learn the fundamentals of human-computer interaction and design thinking, with an emphasis on mobile web applications.
Learn how to develop web applications. Topics include markup languages, scripting languages, network protocols, interactive graphics, event-driven programming, and databases, and how they all work together.
A practical introduction to Unix and command line utilities with a focus on Linux.
Introduction to fundamental techniques for designing and analyzing algorithms, including asymptotic analysis; divide-and-conquer algorithms and recurrences; greedy algorithms; data structures; dynamic programming; graph algorithms; and randomized algorithms.
Database design and the use of database management systems (DBMS) for applications.
Machine learning algorithms that learn feature representations from unlabeled data, including sparse coding, autoencoders, RBMs, DBNs.
Introduction to discrete probability, including probability mass functions, and standard distributions such as the Bernoulli, Binomial, Poisson distributions.
Introduction to applied machine learning. In this course, you'll learn about machine learning techniques such as linear regression, logistic regression, naive Bayes, SVMs, clustering, and more. In addition, you'll also learn the practical, hands-on, skills and techniques needed to get learning techniques to work well in practice.