If you're considering a career in the tech industry but are unsure which computer science course to pursue, you have come to the right place. This blog post will discuss the most popular computer science courses and provide valuable information. Whether you're interested in programming, software development, or cybersecurity, we've got you covered. So, let's dive in and explore the exciting world of computer courses!
CS50's Introduction to Computer Science (Harvard University)
CS50's Introduction to Computer Science, available on edX since 2012, is renowned as the premier computer science course online. It is highly regarded for its excellent product quality and yearly curriculum updates. The course offers a concise yet comprehensive overview of computer science, suitable for both beginners who have never encountered 'Hello World!' and seasoned programmers who have some knowledge of computers. Completing this course guarantees to learn something new for every student.
The course begins by emphasising that computer science is all about problem-solving, introducing binary as the fundamental language of computers and explaining how sequences of 1s and 0s can represent text, images, videos, and sounds. Throughout the course, learners will encounter various algorithms for sorting and searching, like the bubble sort, merge sort, and binary search. They will also learn about measuring the efficiency of an algorithm with Big O notation.
The course's first programming language is Scratch, which is beginner-friendly, and learners will use it to illustrate fundamental programming concepts like functions, conditional statements, Boolean expressions, loops, and variables. Later, the course delves into low-level programming languages like C, which involves managing memory by hand and implementing data structures. Learners will also explore data storage and retrieval techniques like arrays, linked lists, and trees, comparing their advantages and disadvantages.
Introduction to Computer Science and Programming Using Python (Massachusetts Institute of Technology)
The course takes a Python-centric approach to exploring computer science and programming. Rather than delving deep into specific topics, it provides students a broad understanding of computation's many applications.
Similar to our previous recommendation, this course offers a survey of computer science, albeit in a limited amount of detail. However, it differs because it concentrates solely on one language, Python, while Harvard's course encompasses various languages.
The focus on Python could be viewed as either advantageous or disadvantageous, depending on one's objectives. Nevertheless, Python is an excellent choice for a first programming language.
The course delves into various main topics, including computational thinking, data structures, iteration and recursion, decomposition, abstraction, algorithms, and complexity.
In the beginning, you will be introduced to computation and computational thinking, which includes learning about computers, their functionality, and their limitations. You will understand that computers require instructions or algorithms to carry out a task and how to create them.
The course starts with Python, where you will learn the basic syntax and programming concepts commonly used across various programming languages, such as variables, conditional statements, and control flows. Additionally, you will learn about the role functions play in problem-solving and will be introduced to decomposition, abstraction, and recursion.
By the end of the course, you will know to write simple programs that can solve math problems by guessing and checking. The course will also teach you about data structures in Python, such as lists, tuples, and dictionaries, and how to determine which one to use for a specific task.
The course spans 9 weeks with an expected weekly workload of 14 to 16 hours. Video lectures are the primary learning mode, complemented by various activities to help you practice your programming skills. You will also have access to a learner’s forum to interact with other learners.
Three problem sets containing challenging coding exercises will help you cement your knowledge. If you are a verified learner, you must complete a timed mid-term and final exam to receive your certificate.
Computer Science 101 (Stanford University)
The aim of Computer Science 101 is to make computers less mysterious by showing that they operate by following a few relatively simple patterns. This course will familiarise you with these patterns and help you gain insights into how computers function and their limitations.
Moreover, the course covers major topics within computer science, including networking, without requiring prior knowledge of the subject.
You'll learn about key programming concepts such as variables, loops, iterations, conditional statements, and the differences between low-level and high-level languages, compilers, and interpreters.
To become a proficient programmer, it's essential to understand how computers work as tools. The course covers many aspects of computers, including hardware. You'll learn about the different parts of a computer and how computers can represent various information formats. The primary format covered in this course is images, and you'll learn how to "greenscreen" images and convert coloured images into grayscale by operating at the individual pixel level.
Additionally, the course delves into computer networks and how computers communicate. You'll learn about different types of networks, IP addresses, and how they allow computers to locate each other. The course also explains how computers transmit information through data packets and the communication protocol that the Internet runs on TCP/IP.
Other topics briefly covered in the course include databases and spreadsheets, computer security, and analogue and digital data.
The course is 6 weeks long, requiring 4-6 hours of your time each week. Lessons are delivered through video lectures, notes, and assessments. However, you must be a verified learner to access the assessments.
Intro to Theoretical Computer Science (Udacity)
If you already have some knowledge of programming and algorithms and want to delve deeper into computer science problem-solving, Udacity's Intro to Theoretical Computer Science could be a challenging and enlightening course for you.
This course examines the characteristics that make problems challenging, even for computers. It then demonstrates how to break down and simplify these challenging problems to make them more manageable and solvable using computation.
This rigorous and insightful course offered by Udacity is ideal for those with some programming and algorithm knowledge who seek to enhance their problem-solving abilities in computer science.
The course covers two main areas of theoretical computer science: complexity theory and computability. Complexity theory explores the resources a computer requires, such as time or memory, to solve a problem. In contrast, computability determines whether a computer can solve a problem, even with additional time and memory.
Real-world problems from finance, bioinformatics, and telecommunication are presented in the course. You will learn to recognise the characteristics of challenging problems and the significance of identifying them. This will prepare you to comprehend NP-completeness and establish what makes a problem difficult to solve, enabling you to prove it.
The course then delves into potential strategies to overcome the difficulty of these problems. You'll explore efficient and intelligent algorithms, accepting an approximate solution and utilising randomness and probability to discover a solution.
You'll have the opportunity to put your newfound abilities into practice in practical situations as the course is hands-on. Lastly, you'll learn about the limits of computability by delving into problems that are theoretically impossible for any computer to solve. You'll recognize undecidability and the boundaries of computability.
The course is eight weeks long and includes 14 hours of video lectures with quiz questions to help reinforce your learning. There are seven chapters, and each chapter concludes with a problem set to test your skills.
Mathematics for Computer Science (University of London)
This course, provided by the University of London, introduces computer scientists' mathematics and problem-solving techniques. The course stands out from other math courses' engaging approach, with interactive and enjoyable exercises.
The curriculum focuses on algebra, analysis, and geometry, critical concepts for a solid foundation in computer science. The course covers essential topics such as number bases, binary systems, and conversions between different bases, including hexadecimal. It also delves into numerical progressions, including the famous Fibonacci sequence, and touches on geometry and function graphing.
Upon completing the course, you will have gained the necessary knowledge and skills to understand the underlying math principles that support other computer science courses. You will be equipped to handle more complex mathematical concepts and explore advanced topics in the field.
This course, offered by the University of London, explores the mathematical concepts essential for computer science. Through interactive and engaging exercises, you’ll gain a solid understanding of the following five main topics: number bases, modular arithmetic, sequences and series, graph sketching, and kinematics.
The course starts with number bases, including binary and hexadecimal systems, and covers the conversion between different number systems and arithmetic operations. You’ll also learn about steganography, hiding messages in images.
Next, you’ll delve into modular arithmetic, which is helpful for encryption and other applications. You’ll learn about unity and modular arithmetic operations, including “modulo 7”.
Then, you’ll explore sequences and series, including arithmetic and geometric progressions. You’ll learn how sequences can be used to generate random numbers and how to determine whether a series converges or diverges.
Finally, the course will show you how to represent space numerically using coordinates and graphs. You’ll learn to visualise and transform functions, including straight lines, quadratics, and cubics. An example of modelling motion will be given using the field of mathematics called kinematics.
The course is 6 weeks long, with approximately 40 hours of material. Each week includes quizzes to reinforce your learning. Please note that you must pay for the certificate if you want your answers to be graded.