This article is part of our mentor tips series, where Edlyft mentors share tips about the course they mentored with Edlyft.
CMSC132 (Object Oriented Programming II) is one of the most fundamental classes in the Computer Science major at the University of Maryland. The first half of this class extends on the contents of CMSC131 in the Java programming language and the second half introduces students to data structures and algorithms. Data structures and algorithms play a vital role in making wise decisions while implementing software and working with data. You want to design solutions that not only work for large amounts of data, but that also work efficiently. Optimizing your code becomes very important with larger data because those seconds add up!
It’s with no surprise that data structures and algorithms often show up in technical interviews. From my experience, almost every software engineering internship position I interviewed for, even with top tech companies like Microsoft, asked questions on data structures as well as algorithms. Writing code that works is one step, but is your code efficient and can it handle hundreds and thousands of input efficiently? That is where CMSC132 comes in!
— CS Major
Now that you know why the topic of data structures is vital in CS, let’s get into the details of what you’ll cover. Some of the major topics are: Binary Trees, TreeSets, HashMaps, Queues, Linked-lists. It’s okay if you don’t know what these are right now. They can sound difficult and intimidating at first, but you’ll find that they have built in functions that make things much easier to understand. For instance, you’ll find methods such as “.put()” or “.add()” or “.pop()” are designed to make data manipulation easier.
In CMSC132, you’ll also learn which data structure is best to use or avoid in what case. This skill is so important and applicable to various other programming languages. If you’re a visual learner (honestly, probably still useful even if you’re not), make sure to draw out the diagrams! Instead of just imagining, once I started drawing out the diagrams of what it actually looks like, I was able to conceptualize it and perform much better in the class.
“Once I started drawing out the diagrams of what it actually looks like, I was able to conceptualize it and perform much better in the class.”
— UMD Student
The first half of the class can be a bit confusing with concepts having names that can be hard to differentiate. After having discussions with other students and talking about their differences, I was able to understand their purpose better. Discussing class material out loud and even teaching it to others helps you to better remember. You may also find that your classmates ask and explain material differently that makes you think in new ways than you’re used to. After all, connecting with others and having fun while crushing hard concepts is also a valuable part of the CS journey.
Wondering how to easily connect with other students in CMSC 132? Join a cohort of students in your class, where you’ll have access to an UMD mentor who’s aced the class and leads weekly sessions designed to get you unstuck.
A useful place to start in preparation for CMSC132 is by checking out older course websites and looking at the topics covered. You can then find numerous articles, videos and general information all over the web on those topics! Edlyft also offers multiple pre-work sessions that cover important contents in the class even before the course begins! This way you have an idea of what’s to come and aren’t blindsided going into the course. In addition, instructors often post the class schedule and syllabus a week or so before class starts; it can be helpful to check those out and plan out your schedule in-advance before the semester starts.
In addition to these resources, Edlyft offers concept reviews and exam prep that allows students to become more comfortable when approaching different problems revolving around a concept. You can learn more about how to be a part of an Edlyft cohort by clicking below ⤵️