CS50: Introduction to Computer Science
Issuer: CS50, Harvard University
CS50 is a computer science course designed for students to understand the art of programming. Programming languages taught include C, Python, SQL, and web programming tools such as HTML, CSS, and JavaScript (there are also other tracks such as game or mobile app development). The course content is the same as the CS50 syllabus of Harvard University.
As my goal is to challenge myself to gain knowledge outside of my major, taking this computer science course is a big step for me to progress towards my goals. The problem sets of CS50 have enhanced my logical thinking and also have inspired me to relate classroom learning outcomes with real life applications.
Image Filters
An example of the problem sets is applying filter on photos by using C language as shown below:
Apply sepia effect:
Blur an image:
Spell Checker
Another interesting problem set is the design of a spell checker program that highlights all words with spelling mistakes in a long text file. This program was also written in C, which is a procedural oriented programming language.
Managing Databases
I particularly enjoyed using the SQL langugage to manage databases. In this course, we used a movie database from 1MDB, which is an open source, and write single but complex SQL queries to obtain specific data. For example:
Write a query to list the titles of the five highest rated movies that Chadwick Boseman starred in, starting with the highest rated:
Write a SQL query to list the names of all people who starred in a movie in which Kevin Bacon also starred:
Note that the table displayed at the bottom pane (under the SQL coding) is the results returned based on the input queries.
Having programming knowledge in managing databases is particularly useful as it can be applied in many fields. In engineering, databases are essential in handling maintenance systems that consist of a large amount of information such as maintenance date, maintenance items, type of maintenance, responsible persons etc.