Class Central. Computer Vision. Information Theory. Machine Learning. Computer Security. Game Theory. Computer Science 101. About the Course UPDATE: we're doing a live, updated MOOC of this course at stanford-online July-2014 (not this Coursera version).
See here: CS101 teaches the essential ideas of Computer Science for a zero-prior-experience audience. Computers can appear very complicated, but in reality, computers work within just a few, simple patterns. CS101 demystifies and brings those patterns to life, which is useful for anyone using computers today. In CS101, students play and experiment with short bits of "computer code" to bring to life to the power and limitations of computers. Here is another video Nick created for this class. Course Syllabus CS101 topics are covered with a mixture of video lecture and active lab work, all in the browser: Human-Computer Interaction. Cryptography. Cryptography is an indispensable tool for protecting information in computer systems.
This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic.
We will examine many deployed protocols and analyze mistakes in existing systems. The second half of the course discusses public-key techniques that let two or more parties generate a shared secret key. The course will include written homeworks and programming labs. A preview of the course, including lectures and homework assignments, is available at this preview site. Design and Analysis of Algorithms I. About the Course In this 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? Course Syllabus Week 1: Introduction. Week 2: Running time analysis of divide-and-conquer algorithms.
Week 3: More on randomized algorithms and probability. Week 4: Graph primitives. Week 5: Dijkstra's shortest-path algorithm. Week 6: Further data structures. Recommended Background Suggested Readings No specific textbook is required for the course. Course Format. Probabilistic Graphical Models.
What are Probabilistic Graphical Models?
Uncertainty is unavoidable in real-world applications: we can almost never predict with certainty what will happen in the future, and even in the present and the past, many important aspects of the world are not observed with certainty. Probability theory gives us the basic foundation to model our beliefs about the different possible states of the world, and to update these beliefs as new evidence is obtained. These beliefs can be combined with individual preferences to help guide our actions, and even in selecting which observations to make.
While probability theory has existed since the 17th century, our ability to use it effectively on large problems involving many inter-related variables is fairly recent, and is due largely to the development of a framework known as Probabilistic Graphical Models (PGMs). Topics covered include: Introduction and Overview. These will be covered in the first two weeks of the online class. Software Engineering for Software as a Service. Natural Language Processing.