DEV Community

Cover image for Why CS50?
Precious Oromoni
Precious Oromoni

Posted on

Why CS50?

*Article on CS50 *

Brief Introduction :

Cs50 is a beginner-friendly course by Harvard University. It was taught by David Malan. It is a basic introduction to programming and computer science. No prior knowledge of programming or any programming language is required.

Main :
Cs50 is a 25-hour course available on YouTube and the edx platform. it covers a range of topics from how the computer works to the concept of programming and what programming languages are. It also teaches how to write programs in various programming languages starting with a visual programming language like Scratch and then moving on to C - a high-level language but considered low-level because of its direct access to memory, it is also the foundation if most languages like, Python - a high-level language, Javascript - a high-level language, SQL - a query language for creating databases. He also teaches about Algorithms - step by step approach to solving a specific task and Data structures - a way of storing and managing data in the system.

Now let's talk about some of the main concepts of the course.
At the start of the course, we get to learn what programming is.

What is Programming and programming language?

Programming is the act of giving instructions to the computer to execute. The syntax in which these instructions are written is called a programming language. As we know Computers are machines and are only able to understand machine code (binary, 1’s, and 0’s) or instructions. From now on I will call them codes. So how then does the computer understand our programs since they are mostly written in human-readable language? I want to introduce you to something called a compiler, a software that converts our source code into machine code so that the computer can read it and then execute it.

_What are the concepts involved in programming? _

David teaches about
Variables - a storage location used to hold data, I like to think of it as a box where you can save items (data) and use them anytime.

Conditionals - these help us control the flow of our program based on whether a statement is true or false eg the if and else statements.

Loops - they help us run repeated codes effectively eg while loop and for loop.

Functions - these are blocks of code that help us perform specific tasks and can be reused throughout our program. A function can take an argument which is later referred to as a parameter when called on.

These concepts are unique to each programming language, their syntax and data types differ.

Conclusion -

The most challenging concepts for me after watching the video are Algorithms and Data Structures, understanding Time Complexity, Big O notation, and some of the talked about data structures like Linked Lists, etc will take some time and effort on my part to fully grasp them. Still, I believe that the CS50 course remains the best lecture online for anyone who is interested in learning programming and computer science because of David Malan's ability to simplify every detail.

Top comments (1)

Collapse
 
pasify profile image
Paskkal.IO

Beautiful and insightful. I would definitely recommend. Thank you