100 Ivy League Computer Science Courses You Can Take for Free Online
By Tara Miller
Who says you have to have big bucks and a genius IQ to be a computer science whiz at one of the top universities? Thanks to the Internet, and the generosity of schools like MIT and Harvard, everyday students and computer enthusiasts can find study resources open to analysis and review. And you don’t even have to worry about tuition.
Introductory Classes
Brush up on basic skills or start from scratch by studying these courses.
- The History of Computing: Get a background of computer science and computing when you start your education. [MIT]
- Introduction to Computer Science and Programming: Take this course if you need to review the basics of computer programming and need practice writing programs. [MIT]
- Automata, Computability, and Complexity: This intro class covers basic computational math, finite automata, context-free languages, and more. [MIT]
- Principles of Computer Systems: This class is from 2002, but you’ll still learn basic concepts like networking, synchronization and cache management. [MIT]
- Computer Graphics: This course will introduce you to interactive techniques, projection, modeling and more. [MIT]
- Introduction to Modeling and Simulation: Learn how applied mathematics, statistics, molecular dynamics, and other principles work together for modeling and simulation. [MIT]
- Network and Computer Security: Get a solid understanding of multi-user computer systems, intrusion detection, software protection, firewalls, risk assessment and more. [MIT]
- Structure and Interpretation of Computer Programs: This intro class covers programming languages, computational solutions, and more. [MIT]
- Introduction to Copyright Law: Discover how copyright law affects your programs and projects. [MIT]
- Computer Networks: Understand network design, quality, internetworking principles, and more. [MIT]
- Introduction to Algorithms: Here you can gain an understanding of graph algorithms and more. [MIT]
- Queues: Theory and Applications: Get the basics of forming queues in computer systems here. [MIT]
- Introduction to Electronics, Signals and Measurement: This course builds on fundamentals of magnetism and differential equations to explain measurements and signals in electronics. [MIT]
- A Gentle Introduction to Programming using Python: Students learn how the basics of programming by using Python in this course. [MIT]
- User Interface Design and Implementation: Get introduced to user interface fundamentals here. [MIT]
- Introductory Digital Systems Laboratory: This course covers digital logic, synchronization and more. [MIT]
Theory
Experiment with computational theory by reviewing the courses in this list.
- Great Ideas in Theoretical Computer Science: Gain an introductory understanding of computer science theory in this course to learn about computer science’s role in exploring complex questions and systems. [MIT]
- Edge.org: What is your dangerous idea?: This podcast follows the "clubhouse" of Edge.org fans and how they are influencing and experimenting with the future. [Brown]
- What is Intelligence?: Paradoxes Resolved: This lecturer considers the nature of intelligence. [Princeton]
- Essential Coding Theory: In Essential Coding Theory, you’ll learn about error-correcting codes and the systems first explored by Shannon and Hamming in the 1940s. [MIT]
- Game Theory and Mechanism Design: Game developers and designers study game theory first in this course. [MIT]
Engineering
For classes in software engineering, quantum information science, network design and more, take these courses.
- Computer System Architecture: Review this course to learn about hardware and software systems, set design, virtual memory, and more. [MIT]
- Quantum Information Science: This advanced course covers quantum algorithms beyond factoring, quantum computation, and properties of quantum entanglement.
- Out of Context: A Course on Computer Systems That Adapt to, and Learn From Context: Learn how to design computer systems that can recognize and respond to context. [MIT]
- The Art of Approximation in Science and Engineering: Topics covered here include dimensional analysis, extreme cases, balancing, and more. [MIT]
- Computation Structures: Learn about engineering practices for digital structures. [MIT]
- Computer Language Engineering: Explore high-level programming languages here. [MIT]
- Computer System Engineering: This course covers principles in engineering hardware and software systems. [MIT]
- iPhone Application Programming: Learn how to get your app on the iPhone by listening to this feed. [Stanford]
- Laboratory in Software Engineering: Consider data abstraction, design patterns and other principles here. [MIT]
- Distributed Computer Systems Engineering: Those who want to pursue education or careers in network engineering can start with this course. [MIT]
- Signals and Systems: In Signals and Systems, you’ll learn about audio and image processing, convolution, and more. [MIT]
- Program Analysis: Review this course to learn about software engineering, debugging, dataflow, and more. [MIT]
- Circuits and Electronics: CS students study "the fundamentals of the lumped circuit abstraction" in this course. [MIT]
- Data Communication Networks: Better understand the design, purpose and structure of data networks. [MIT]
Security
Learn more about computer security and cryptography here.
- Hyper-Encryption by Virtual Satellite: Professor Rabin aims to unlock the mysteries of computer and network security via encryption. [Harvard]
- Advanced Topics in Cryptography: Topics in this course include zero-knowledge proofs of knowledge, multiparty secure computation, and more. [MIT]
- Cryptography and Cryptanalysis: Learn about public-key encryption, digital signatures and other fundamentals. [MIT]
- Selected Topics in Cryptography: Study the idea of "universally composable security" in this course. [MIT]
Web Development and Internet
Schools like MIT, Cornell and Harvard post study resources and class materials on Java, Internet security, and more.
- Software Engineering for Web Applications: Topics covered here include security risks, concurrency, user demands, and more. [MIT]
- High Speed Communication Circuits and Systems: Study frequency synthesizers, custom C++, clock and data recovery circuits, and many more principles relating to high speed communication. [MIT]
- Intermediate Java Programming: Learn more about Java programming from this video. [Cornell]
- Understanding Computers and the Internet: The Harvard Extension School’s computer program introduces students to the basics of the Internet. [Harvard]
- Computing in the Cloud: This workshop discusses law, politics and computer science interact to facilitate communication and computation in the virtual world. [Princeton]
- Topics in Theoretical Computer Science: Internet Research Problems: Learn all about load balancing algorithms, Internet structure, cost optimization and research issues in this course. [MIT]
- Principles of Wireless Communications: Learn about fading and diversity, multiple-access techniques, network topologies, and more. [MIT]
- XML with Java: Learn more about XML and Java programming here. [Harvard]
- Java Preparation: Continue your Java instruction with this course. [MIT]
Mathematics
Build your computer science and engineering foundation with math classes from Brown and MIT.
- Mathematics for Computer Science: Here you’ll learn about counting principles, logic notation, and more. [MIT]
- Algebraic Techniques and Semidefinite Optimzation: Learn how to solve optimization problems through algebraic and computational techniques. [MIT]
- Representation and Modeling for Image Analysis: In this course, you will experiment with estimation, graphing, clustering and more. [MIT]
- Passion: Numbers: Consider the "magic of numbers" in this podcast. [Brown]
- Introduction to Mathematical Programming: Study linear programming, network flow problems, and more. [MIT]
- Integer Programming and Combinatorial Optimization: This course covers algebra, geometry, algorithms, formulations, relaxations, and extensions of integer optimization. [MIT]
- Mathematics for Computer Science: Here you’ll study definitions, proofs, sets, functions and more to help you understand computer science. [MIT]
- Calculus with Applications: This introductory calculus class can serve as a review or CS starter. [MIT]
- Advanced Calculus for Engineers: Computer science engineers will learn vital calculus methods here. [MIT]
Computers and People
Explore the interaction between humans and computers by taking these courses.
- The Anthropology of Computing: Consider the social and cultural motives behind computers. [MIT]
- Pervasive Human Centric Computing: Students learn how they respond to systems like cell phones and other mobile devices. [MIT]
- Natural Language and the Computer Representation of Knowledge: Cover the theory and practical principles for designing computer systems made for human language processing. [MIT]
- Scene Understanding Symposium: Consider human perception and the power of a single glance. [MIT]
- The Brain and Cognitive Sciences: Better understand how to convey messages to humans through a computer when you learn how the brain facilitates those messages. [MIT]
- Affective Computing: Learn about computing methods that inspire emotion. [MIT]
- Human-Computer Interaction Seminar: Discover strategies and principles regarding human-computer interaction. [Stanford]
- Technologies for Creative Learning: Understand how computer systems are used to help teach. [MIT]
- Statistical Learning Theory and Applications: Explore how computer images, computer vision and more support modern learning theory. [MIT]
- Pictures for the People: Visual Multiples and their Role as Supporting Tools for the Democratic Process: Discover whether or not graphics and images can influence the public in different forms. [Yale]
Special Topics
These courses range from advanced topics in applied parallel computing to digital media and innovation.
- Einstein, Franklin, and the Role of Creativity in Today’s World: Learn why creativity and innovation is still vital to progression, even in technology. [Princeton]
- Impact of Sept. 11 on Financial Communications and Information Systems: These lectures discuss how sudden disasters like September 11 impact communications and information systems. [Columbia]
- Algorithms for Computer Animation: Those interested in computer animation will learn about motion capture, physical stimulation, inverse kinematics, and more. [MIT]
- Digital Media and Its Implications for Academia: Here you can take a look at how digital media inspires innovation in education. [Columbia]
- Information and Entropy: Discover that there are limits to information and computation in this course. [MIT]
- Applied Parallel Computing: Learn how to work on a modern supercomputer here. [MIT]
- Computing and Data Analysis for Environmental Applications: This course teaches students how to collect research and analyze data. [MIT]
- Engineering Risk-Benefit Analysis: Consider decision analysis, power reactors, risks and more. [MIT]
- Relational Machines: This course draws from theories in human-computer interaction, psychology and design. [MIT]
- Medical Artificial Intelligence: Get an introduction to medical IT systems here. [MIT]
Society and Economics
Further discover how computers impact the development of society here.
- One Laptop Per Child?: Listen to a podcast about the Digital Revolution’s version of No Child Left Behind. [Brown]
- Playing the Game: The Economics of the Computer Game Industry: Discover how computer game developers have transformed TV sets into gaming devices and beyond. [Columbia, Fathom]
- Rip, Mix, Burn, Sue: Technology, Politics, and the Fight to Control Digital Media: Discuss the legal and political implications of using the Internet to find movies and music. [Princeton]
- The Rise of Modern Science: Take a look at the history of modern science as dictated by Einstein and others. [MIT]
- Technology in American History: Use this course to analyze the influence of and response to technology throughout American history. [MIT]
- Democracy and Computers: This lecture explores the question, "are computers good or bad for democracy?" [Yale]
- Ambient Intelligence: Examine human-computer interaction and the socio-cultural impact of computer applications. [MIT]
- Introduction to the History of Technology: Take another look at the development of technology in the U.S. during the 19th and 20th centuries. [MIT]
- Shaping the Future: This video wonders how computer science and IT will continue to shape the future. [Columbia]
- Development of Inventions and Creative Ideas: From business to technology, understand how successful, effective inventions are created. [MIT]
Miscellaneous
Here you will find even more resources about computer science, engineering, computer research, ethics and theory from top universities.
- Reality Bites: Discover how our society responds to and depends on robots and virtual reality. [Brown]
- Computer Systems Colloquium: Listen to talks about computer research, engineering, computer applications, and more. [Stanford]
- Ethics and the Law on the Electronic Frontier: This ethics class is designed for those in computer science and similar fields. [MIT]
- Signals, Systems and Information for Media Technology: This course examines theory and practice for creating A/V messages. [MIT]
- Transmission of Information: Understand communication systems and computers in this light. [MIT]
- The Human Intelligence Enterprise: Learn about the mission to understand human intelligence from computers and computation. [MIT]
- Common Sense Reasoning for Interactive Applications: Become a master of common sense reasoning and learn to develop interactive applications that are easy to use, according to common sense reasoning. [MIT]
- Digital Typography: Explore new digital systems in typography. [MIT]
- Inventions and Patents: Learn why it’s important to protect your work. [MIT]
- Empowering Women in Science and Engineering: This video shares advice for women who are passionate about working in engineering and technology. [Cornell]
