![Learn Computer Science with Princeton University for FREE! Learn Computer Science with Princeton University for FREE!](https://www.kdnuggets.com/wp-content/uploads/nisha-cs-princeton-1.png)
![Learn Computer Science with Princeton University for FREE! Learn Computer Science with Princeton University for FREE!](https://www.kdnuggets.com/wp-content/uploads/nisha-cs-princeton-1.png)
Image by Author
When you’re looking into transitioning into a new industry, the first thing on your mind is what course do I take, do I go back to University, where do I start? How about starting with FREE courses!!
The tech world is ever-growing and more organisations are finding new ways to become digital – and fast! With this, they need the help of computer scientists, data scientists, software engineers and more. The main aspect all these different types of tech professionals have in common is their computer science knowledge.
Computer science is the core of their skills and is not to be missed out on!
In this blog, I will go through 6 courses that will provide you with the knowledge and skills required to develop a career in computer science.
Computer Science: Programming with a Purpose
Link: Computer Science: Programming with a Purpose
Level: Beginner level
Experience: No prior experience is required
Duration: 88 hours to complete or 3 weeks at 29 hours a week
Pace: Flexible schedule
Modules: 10
In this course, you will learn the basic programming elements such as variables, conditionals, loops, arrays, and I/O and then move on to functions, introducing key concepts such as recursion, modular programming, and code reuse. You will also be presented with object-oriented programming.
The course uses Java programming language and teaches basic skills for computational problem solving that are applicable in many modern computing environments. The goal is to become proficient in Java with a focus on fundamental concepts in programming, not Java per se.
Computer Science: Algorithms, Theory, and Machines
Link: Computer Science: Algorithms, Theory, and Machines
Level: Intermediate level
Experience: Computer Science: Programming with a Purpose recommended (above)
Duration: 20 hours to complete or 3 weeks at 6 hours a week
Pace: Flexible schedule
Modules: 11
In this course, you will be introduced to classic algorithms along with scientific techniques for evaluating performance, in the context of modern applications. You will then move on to classic theoretical models that allow us to address fundamental questions about computation, such as computability, universality, and intractability.
You will conclude with machine architecture (including machine-language programming and its relationship to coding in Java) and logic design (including a full CPU design built from the ground up).
The course emphasizes the relationships between applications programming, the theory of computation, real computers, and the field’s history and evolution, including the nature of the contributions of Boole, Shannon, Turing, von Neumann, and others.
Algorithms, Part I
Link: Algorithms, Part I
Level: Intermediate level
Experience: Computer Science: Algorithms, Theory, and Machines recommended (above)
Duration: 54 hours to complete or 3 weeks at 18 hours a week
Pace: Flexible schedule
Modules: 13
In this course, you will dive into algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Your understanding of algorithms has to be transparent. As you develop your career in the computer science world, you will refer to algorithms frequently – therefore your knowledge of them is imperative.
Algorithms, Part II
Link: Algorithms, Part II
Level: Intermediate level
Experience: Algorithms, Part I recommended (above)
Duration: 62 hours to complete or 3 weeks at 20 hours a week
Pace: Flexible schedule
Modules: 14
This course is Part II of the algorithms section and has a deeper focus on graph- and string-processing algorithms. For example, you will learn about undirected/directed graphs, minimum spanning trees, regular expression, data compression, and more.
Analysis of Algorithms
Link: Analysis of Algorithms
Level: Advanced level
Experience: Algorithms Part I and Part II recommended (above)
Duration: 20 hours to complete or 3 weeks at 6 hours a week
Pace: Flexible schedule
Modules: 9
This course will cover generating functions and real asymptotics. You will then get introduced to the symbolic method in the context of applications in the analysis of algorithms and cover basic structures such as permutations, trees, strings, words, and mappings.
Computer Architecture
Link: Computer Architecture
Level: Advanced level
Duration: 49 hours to complete or 3 weeks at 16 hours a week
Pace: Flexible schedule
Modules: 21
If you would like to go above and beyond and really understand all aspects of computer science, I have included this Computer Architecture course. In this course, you will learn to design the computer architecture of complex modern microprocessors. You will learn about pipeline reviewing, cache, superscalar, memory protection, parallel programming, and more.
Wrapping Up
When starting a new transition, getting the most out of free resources should be your go-to! In the article, I have provided you with a roadmap to kickstart your computer science journey without having to spend a penny.
Nisha Arya is a data scientist, freelance technical writer, and an editor and community manager for KDnuggets. She is particularly interested in providing data science career advice or tutorials and theory-based knowledge around data science. Nisha covers a wide range of topics and wishes to explore the different ways artificial intelligence can benefit the longevity of human life. A keen learner, Nisha seeks to broaden her tech knowledge and writing skills, while helping guide others.