100 Incredible Open Courses for the Ultimate Tech Geek

While colleges can be a great place to build up your knowledge of technologies of all kinds, real world experience and free learning resources on the web can do a pretty good job of showing you the ropes as well. Here are 100 free resources to help you hone your techie skills and learn more about the ever-changing world of technology.

Computer Science and Engineering

These courses offer you a chance to learn about everything from electrical engineering to the basics of computer science.

  1. Data and Processing in Computers: Learn just how computers and software work in this free course. [OpenLearn]
  2. Theory of Computation: This course will help you learn some of the more advanced theories behind how computers operate. [MIT]
  3. Introduction to Computer Science and Programming: Start from the beginning in your computer science education with this course. [MIT]
  4. Structure and Interpretation of Computer Programs: Take this course to learn some basic programming skills and how to work within computer systems. [MIT]
  5. Signals and Systems: Here you can learn about the basics of systems and signals analysis. [MIT]
  6. Topics in Theoretical Computer Science: Internet Research Problems: With so much being based around the web these days, this course will help you learn to develop systems and solve problems using the internet. [MIT]
  7. Great Ideas in Theoretical Computer Science: This course offers a great introduction to the theories of computer science, from the beginnings of computer systems to the present day. [MIT]
  8. Pervasive Human Centric Computing: Try out this course to learn about all kinds of computing devices in addition to the personal computer. [MIT]
  9. Circuits and Electronics: Through this course, students will learn the essentials of electrical engineering. [MIT]
  10. Computation Structures: Learn about engineering digital computer systems from this course. [MIT]
  11. Computer System Engineering: Check out this course to get an education on the engineering of computer software and hardware systems. [MIT]
  12. Microelectronic Devices and Circuits: This course offers learners the chance to expand their knowledge of modeling of microelectronic devices, basic microelectronic circuit analysis and design, physical electronics of semiconductor junction and more.
  13. Videogame Theory and Analysis: Study the social and educational implications of video games in this course. [MIT]
  14. Artificial Intelligence: This course will introduce students to the representation, problem solving, and learning methods of artificial intelligence.[MIT]

Computer Security

There isn’t much point in having an awesome tech setup if it’s at risk of being destroyed by hackers or digital ne’er-do-wells. These courses will help you learn to keep information and systems secure.

  1. Cryptography and Cryptanalysis: This course will introduce students to public-key encryption, digital signatures, pseudo-random number generation, and basic protocols. [MIT]
  2. Advanced Topics in Cryptography: Expand on your knowledge of cryptographic topics with this great free course. [MIT]
  3. Network Security: Learn how to secure your networks at home and at work with this course. [OpenLearn]
  4. An introduction to information security: Try out this course to learn the basics of information security. [OpenLearn]
  5. Selected Topics in Cryptography: Examine special topics in cryptography in this course, like cryptographic protocols and secure voting systems. [MIT]
  6. Network and Computer Security: Through this course you can learn everything from risk assessment to protecting software. [MIT]


Check out these courses to learn the basics of several different programming languages.

  1. Introduction to Software Engineering in Java: Take this course to learn how to use Java to build computer programs. [MIT]
  2. Building Programming Experience: If you want to expand on your existing programming knowledge, consider going through the resources offered in this course. [MIT]
  3. Java Preparation: If you know little to nothing about Java, take this course to get a good foundation. [MIT]
  4. Essential Coding Theory: Learn about the past and present of the theory of error-correcting codes. [MIT]
  5. Programming Languages: While this course uses the Scheme + programming language, you’ll learn the fundamentals that apply to many other languages as well. [MIT]
  6. Nonlinear Programming: Address some of the less straightforward problems with programming in this course. [MIT]
  7. Dynamic Programming and Stochastic Control: Learn how to make decisions under uncertain conditions when programming through this course. [MIT]
  8. A Gentle Introduction to Programming Using Python: This course will make learning Python painless and useful. [MIT]
  9. Program Analysis: Here you’ll learn how to turn a critical eye towards several major programming issues in this course. [MIT]
  10. Computer Language Engineering: Through this course you’ll learn how to implement advanced programming languages. [MIT]
  11. Introduction to C++: Go through the materials offered by this course to learn how to use C ++. [MIT]

The Web

From building a website to understanding how the web works, these courses offer a great variety of learning opportunities.

  1. Ethics and the Law on the Electronic Frontier: Examine the legal issues that face working on the web and protecting copyrights in the digital era. [MIT]
  2. Social Visualization: This course will take you through learning how to create a visual representation of the visitors to any given websites. [MIT]
  3. People-centered Design: From amusement park rides to elevators, this course will help you learn more about creating products that work for users. [OpenLearn]
  4. Designing Sociable Media: Learn how the design of a website influences how people use it to interact and get a chance to build your own social media in this course. [MIT]
  5. Flash: If you’ve never learned how to use Flash, this course offers a great introduction. [USU]
  6. Learn and Apply HTML: Most of the web is still based around an HTML framework, so learning how to use the programming language through this course can be a big help. [USU]
  7. Fundamentals of Computational Media Design: Take this course to learn about the history of 20th century art and design from the perspective of the technologist. [MIT]
  8. Interactive Multimedia Production: Through this course you’ll use Flash to build online programs that users can interact with. [USU]
  9. Writing on Contemporary Issues: Culture Shock! Writing, Editing, and Publishing in Cyberspace: This English course teaches students some of the challenges and advantages to publishing work online. [MIT]


Learn more about the world of software engineering and design from these courses.

  1. Computer Graphics: Learn how to build computer graphics in this course that teaches students about the computer graphics hardware, algorithms, and software needed. [MIT]
  2. User Interface Design and Implementation: A great program isn’t particularly useful if it isn’t user friendly, and this course will focus on teaching how to build great, easy-to-navigate interfaces. [MIT]
  3. The Software Business: If you’ve got a great idea for a software product, you can use this course to learn about the business side of things and how you can get your product on the market. [MIT]
  4. Laboratory in Software Engineering: Through this course students will be able to learn how to build software from the ground up. [MIT]
  5. Structure and Interpretation of Computer Programs: Take this course to learn how to apply computer programming methods to solve computational problems. [MIT]
  6. Foundations of Software Engineering: This introductory course is a great place to get started learning more about software engineering. [MIT]
  7. Common Sense Reasoning for Interactive Applications: Take advantage of the knowledge users already process when designing user interfaces in this course. [MIT]
  8. Program Analysis: Learn how to look critically at the way programs are working with a little help from this course. [MIT]
  9. Designing the user interface: text, colour, images, moving images and sound: Learn about the important role all of these aspects play in engaging users. [OpenLearn]

Information Technology

Whether you want to be an IT professional or just get a better understanding of the field, these courses can help.

  1. Database Systems: Here you can learn about the foundations of database systems. [MIT]
  2. Information Technology I: Take this introductory course to learn about some of the essentials in information technology. [MIT]
  3. Global Issues in Information Technology: Learn how culture influences how technologies are used in this course. [TWB]
  4. Database, Internet, and Systems Integration Technologies: This course is billed as an intensive review of information technology topics, including software development, databases and web development. [MIT]
  5. Data Structures and Programming Methodology: This course will teach you about the math used in information technology and the multiple ways information and data can be organized. [UC Berkeley]
  6. Computer Networks: Through this course you’ll learn more about global networks and the principles on which they are organized. [MIT]
  7. Networks: Theory and Application: Here you can learn about a variety of networking topics from social networks to applications in information networks such as the Internet. [U of Michigan]
  8. Information Technology and the Labor Market: Learn how the prevalence of IT is reshaping the American labor market. [MIT]
  9. Information Technology Essentials: Make sure you’ve got down the basics of what it takes to understand information technology with some guidance from this course. [MIT]
  10. Practical Information Technology Management: Take this course to learn how to make sound business decisions when it comes to IT. [MIT]

Communication Technology

These courses address everything from cell phones to communication systems.

  1. High Speed Communication Circuits and Systems: This course will address the important issues in circuit design in communication devices. [MIT]
  2. Data Communication Networks: Learn why networks are structured the way they are and how they might change in the future in this course. [MIT]
  3. Communicating in Cyberspace: Here students will learn to think critically about developing communications systems for use on the internet. [MIT]
  4. Digital Communications: Take a closer look at optical fiber links in this course. [MIT]
  5. Principles of Wireless Communications: This course will cover the design, analysis, and fundamental limits of wireless transmission systems.[MIT]
  6. Intro to Tech Communication: While having technical knowledge is great, this course addresses how to improve communication so you can get your ideas out there. [MIT]
  7. Communication Systems Engineering: Learn what goes into designing and building communications systems for aerospace, satellites, and deep space devices. [MIT]
  8. Transmission of Information: This course will help you learn more about the quantitative theory of information. [MIT]
  9. Communication Systems I: Split into two parts, this first course will teach students about basic analog systems. [USU]
  10. Principles of Digital Communications: This course will help students gain a better understanding of how modern communication devices work. [MIT]

Technology in Education

Use these courses to get an idea of how technology is changing education.

  1. Technologies for Creative Learning: Take a look at this course to consider how technology can help people learn new things in exciting ways. [MIT]
  2. Computer Games and Simulations for Investigation and Education: This course will teach you how people learn from interactive computer environments and encourage students to develop their own learning systems. [MIT]
  3. Educational Technologies in Learning Theories: Through this course you can learn about several different learning theories and the role technology can play in each of them. [TWB]
  4. Producing Distance Education Resources: Learn how to build better resources for distance learning through this course. [USU]
  5. Networks for Learning: Here you can take a course that focuses on the problem of supervised learning within the framework of Statistical Learning Theory. [MIT]
  6. How to Learn (Almost) Anything: Check out this course to learn how digital technologies can be used to teach just about anything. [MIT]
  7. Digital Libraries: Learn more about the future of the library through this course. [U of Michigan]
  8. Technological Tools for School Reform: From cheap laptops to schools better using technology, this course offers ideas for change through a technological lens. [MIT]
  9. Information and Communication Technology in Education: In this course you’ll learn why it’s so important to teach students how to use computers. [TWB]
  10. Blogs, Wikis, New Media for Learning: Take a look at this course to discover what role these new technologies might play in the classroom. [USU]
  11. Autism Theory and Technology: In this course you’ll learn not only about autism, but also about the role technology can play in making it easier for these kids to learn and interact with others. [MIT]

Tech Math

Make sure you understand the principles behind the technology you’re using with these great courses.

  1. Introduction to Algorithms: Take a look at this course material to get a handle on the basics of algorithms. [MIT]
  2. Introduction to Mathematical Programming: This course will take you through the numbers behind all the programming. [MIT]
  3. Distributed Algorithms: Learn about the latest research in this field through this informative and cutting-edge course. [MIT]
  4. Automata, Computability, and Complexity: Take this course to learn more about topics like finite automata and regular languages, context-free languages, Turing machines, partial recursive functions and more. [MIT]
  5. Mathematics for Computer Science: Math is important to computer science, so learn how to do everything from the basics to more complex problems in this course. [MIT]
  6. Probabilistic Systems Analysis and Applied Probability: We live in an uncertain world, and this course offers a chance to understand the math behind probability. [MIT]
  7. Advanced Calculus for Engineers: If you’re more focused on the design side of things, this course can give you the math background you need. [MIT]
  8. Topics in Theoretical Computer Science: An Algorithmist’s Toolkit: Take this course to learn about some of the geometric tools used in defining algorithms. [MIT]
  9. Quantum Computation: In this course you’ll get a chance to learn about the physics of information processing, quantum logic, and quantum algorithms. [MIT]
  10. Principles in Applied Mathematics: Here you’ll learn about the role math plays in coding, engineering and more. [MIT]

Technology and Society

Take these courses to learn about the cultural and social implications of technology.

  1. Technology in American History: Going back to colonial times, this course will address the role in which technology has played in shaping American history. [MIT]
  2. The History of Computing: Learn about computers from their infancy to the present day in this course. [MIT]
  3. Technology and Nature in American History: Take this course to learn how the term “nature” has been shaped by industrial practices. [MIT]
  4. Technology and Gender in American History: Technology is often considered a man’s world, but this course addresses the myriad of roles women have played and the changing relationship between the sexes and new technology. [MIT]
  5. Technology in a Dangerous World: Check out this course to better understand the relationship between terrorism and technology. [MIT]
  6. Technology and Culture: Here you’ll learn about the effects technology has had on culture around the world and whether or not it has changed things for the better. [MIT]
  7. The Anthropology of Computing: Look at computers and their role in human society from an anthropological standpoint in this course. [MIT]
  8. Introduction to the History of Technology: While you might be more interested in modern technology, understanding the roots of the gadgets you use could be useful, and this course will educate you on just that. [MIT]
  9. Social and Political Implications of Technology: Take a look at how technology influences how society is organized and how people behave in this course. [MIT]
  10. Cultural History of Technology: This course explains that the idea of technology is relatively new and explores the effect it has had on how people define themselves and their world. [MIT]

Facebook Comments