CS 141: What you’ll learn
Walking into the first day of a new UIC course is one of the most exciting moments of the semester, but it can also feel like a huge unknown. If you are curious about CS 141 — the second course toward a major/minor in data science or computer science — Associate Professor Shanon Reckinger is happy to shed some light on the course content. Below, in her own words, she provides insight into what you will discover in CS 141.
Getting to know C++
In CS 111, you learn to program in Python, which is the most popular programming language as of June 2022. In CS 141, you will learn to program in C++. Your instructor will get you started by reviewing all the concepts you learned in CS 111, but now you will do the programming in a new language!
Some of the translation between Python and C++ is straightforward. But other aspects of the two programming languages are distinct, and in those areas there isn’t a one-to-one correspondence. This is where your instructor and your classmates will work together as a team to break things down and understand the key differences.
Fun with programming
You will continue to improve your problem-solving skills in CS 141 by working through fun and interesting projects. Do you play Wordle? That is a game you could write using the C++ skills that you will learn in CS 141.
New concepts ahead!
In CS 111, you learned about the foundations of programming, such as types, branching, loops, lists, and functions. You might be wondering: what else is there? In CS 141, you will learn some intermediate programming concepts that you might not have heard of yet. Here is a brief explanation of two favorites: recursion and pointers.
Have you ever thought about a function calling … itself? Unlikely. That idea probably doesn’t even make sense. However, it turns out that is a real concept called recursion, and you will learn about it in CS 141. Sometimes we create programs that do this on purpose! Some algorithms can be written in a much more eloquent way when they are written recursively, rather than the normal way (iteratively). It is not only beautiful, but is also feels a bit like magic when you write your first recursive algorithm. You will experience that in CS 141.
In CS 111, you stored all sorts of data in lists and dictionaries. Have you ever wondered where exactly that data is stored? In CS 141, you will learn a concept related to this kind of memory management, and it is called a pointer. A pointer is an element in your code that “points” to data stored in memory. It is similar how a URL points to a webpage, or a phone contact entry points to a message thread with your friend, or a house address points to your home. The concept of a pointer opens up a whole world of programming possibilities!