Having gotten through CSCI 104 – Data Structures and Object-Oriented Programming, one of the core CS classes at SC, I’ve now moved on to CSCI 270 – Intro to Algorithms! Getting past 100-level classes is a major milestone since this is where the classes get “real” and the content is more applied and this algorithms class is no exception. But what even is an algorithm in the first place and how are they teaching this? I legit had no clue how we’d learn this subject but after 3 weeks I understand it enough to try to explain.

Essentially an algorithm is any set of code that tries to solve a problem (see pretty simple). It builds off of a lot of content from the data structures class; typically peole think of them as one thing but I’m very glad USC split them up because the content is dense. As to how to build one, this is where things get interesting.

There are so many ways to solve a problem, some faster than others, but there are always many ways to do it. We focus a lot of our class on optimizing the algorithm’s runtime, ensuring that it doesn’t take forever. As an example, the search algorithm Google uses, if it wasn’t optimized, could take millions of years to find just a few hundred articles. Instead, it takes barely a second to populate millions of results. That’s kinda the idea we’re shooting for.

To practice, we don’t actually code in this class (crazy right)! Instead, we use pseudo-code. Pseudo-code uses mostly words to describe what the algorithm will do, i.e. compare two items, swap things, search for something, without actually having to code it. We’re just focusing on the technique of how to solve something, not actually doing it. I personally really like this type of learning because it takes the pressure off. I don’t have to actually get my code to run or worry about every little detail in my plan. Instead, I can purely think of ways to solve problems efficiently which is what I think real engineering is.

Overall after 3 weeks, I think this class will be very rewarding in the long term. It won’t be easy, none of engineering is, but it’ll be useful for understanding how CS things work and how to do well on coding interviews (progress updates about those to come soon since it’s recruiting season)!

Cameron Cole

Cameron Cole

MAJOR: Computer Science/Business Administration YEAR: Class of 2023 HOMETOWN: Chicago, Illinois PRONOUNS: he/him/his INSTA: @cxjcole On campus, I've been involved with USC's chapter of the National Society of Black Engineers and our Formula SAE race car design team. Outside of Viterbi I'm a member of the USC Global Investing Society.

Want to learn more? Here's the best place to ask:

This site uses Akismet to reduce spam. Learn how your comment data is processed.