
C S 314 (Data Structures) Review with Professor Mike Scott
This is a class review for future students. CS 314 is a required lower-division computer science course, typically taken either in the first semester with high school AP CS A credit (skipping CS 312) or in the second semester after completing CS 312. This also does not cover the honors version of the course, and I’m sure Turing / CSB students would find this pretty easy compared to CS 314H.
- This class has changed significantly with the Spring 2023 boom of generative AI. I was part of the last class before that shift and right before ChatGPT, so some of what I describe here may now be outdated. Since then, it’s been restructured (a lot of students cheated on labs with AI) and exams are now more conceptual and harder and take up a HUGE part of your grade. Historically, Professor Scott was the only 314 prof, but now there are others.
- CS 314 is taught in Java and focuses heavily on data structures, which is pretty similar to what most people saw in high school. Since the lab structure and assignment submissions feel like a familiar continuation of AP CS A, and most students already know Java, it acts as a transition point to shake off the senioritis and get you back into a rigorous college mindset
What you learn
The class picks up its pace after day one with Big-O and efficiency, learning how to evaluate the cost of things like loops. Then a quick OOP refresher (helpful if you forgot stuff from AP CS A), before moving into real structures like maps/hash tables and linked lists, which are lowkey some of the most important for later (LeetCode + internship interviews) and form the foundation for everything else.
Then covers recursion and backtracking, sorting (quicksort, mergesort, etc), stacks (LIFO) and queues (FIFO), and trees (building on previous recursion lessons), extending into red-black trees (not as scary as they sound), plus graphs, tries, heaps, and Huffman coding. Ends with dynamic programming (memoization) and functional programming (streams, lambdas).
Again, this is a very important class to go through and will help you a ton in upcoming technical interviews!!!!! You will see a ton of these concepts come back in your recruiting adventures, and at your future careers.
The Labs
The labs are due on a rigorous basis which means you should get started on them as soon as you can. Oftentimes, on Wednesdays and Thursdays the GDC 3rd floor lab area will be flooded with students trying to get last second help and clarifications from the TAs on duty, to the point where they have to set up a queue system. Most labs are solo, while a few are pair assignments. You get a few slip days but you should save them. The labs start fairly simple, with run of the mill coding tasks, and then you meet Evil Hangman.
Labs will always cover what you are currently learning in class. For example, there’s an entire lab to implement a Linked List data structure on your own. They are generally very doable, especially compared to what you’ll see in later courses (cough se_lab), and this is likely one of the last times you’ll get labs that still feel somewhat similar to high school CS assignments. In that sense, it serves as a soft introduction to what college-level CS work actually looks like. One really cool lab is Huffman Coding at the end of the semester, where you learn and develop a huffman data compression system with a partner using a tree data structure. Labs are completely do-able if you start on time and ask questions and learn. Please do not use AI on them and actually try to struggle through and learn. This is a class you don’t want to bs through with AI.
Your final grade is reduced by ⅓ of a letter grade for each zero you get in a lab. For the first few labs, you’ll probably lose a lot of style points (for Code Hygiene), so it’s important to start focusing early on writing clean, properly documented code. You also get the chance to resubmit if you do bad. Don’t use magic numbers, if you have to, it means you should define it as a constant with a clear name.
The Exams
If you google CS 314 right now, I believe you will find over 10 posts made just in the past week by traumatized students, with more to come. Exams are weighted as a huge part of your grade now. The exams have always been super tricky, all on paper, kind of similar to the AP CS exam or UIL but harder. This is where it gets kind of weird, because the exam format was the same for many years before the AI boom, but after that, they’ve started to change it a lot and past exams might not help as much. Still, traditionally all the past exams were (and still are) available on the CS 314 website, and can help you practice course concepts.
Exams have questions that were conceptual, and questions that were your standard “what’s the output of this program?” type, and also asking for why a program would crash. The beginning of each exam was always a few questions calculating T(N) and O(N), finding the worst case order of an algorithm, and would go on to more advanced questions like what the result of a tree removal would be, what the contents of a data structure are at said point in execution, at said point in a sorting algorithm, and so on.
At the back of each exam packet is a set of free response questions where you hand write code, similar to the AP CS exam but taken to the next level. Prepare your pencils.
Exams (at least during our time) were held at some disorienting hours, from 6 to 9 PM. We would trek to some random building like the UTC or Burdine Hall during a nice afternoon, and walk out defeated in pitch black at night. Very much outside of usual class hours.
Class Culture
Students actively posted questions for exam review and questions about the current week’s lab on Piazza (later replaced with Ed Discussion) and other students were given the chance to answer. Students also posted and shared test cases with each other, and when Huffman rolled around, funny memes and easter eggs to decompress using your own program. Got rickrolled from that once.
Students also have a lot of fun interactions with TAs and Professor Scott. You’re actively encouraged to go to help hours, and all the TAs are super helpful. This will be a recurring trend in your next two core CS classes by the way. Go to help hours. The number of students attending help hours will only increase as the days draw closer to the end of the week. Also go to class, attendance was never tracked, but you have yourself to blame if you can’t attend lecture (take it from me). You can even meet new friends and join study groups in the beginning, when a lot of people are still getting to know each other. Your section will meet once every week, where you will do collaborative problems based on the week’s content, called “Section Problems”. This “Discussion Section” format is a staple of most university courses.
Message for Incoming First Years
A major reason this class feels hard for many freshmen is not just the material itself, but the timing. Most students are coming directly from high school and often a relatively unstructured summer that was just an extension of senioritis year. Then university starts immediately, and you’re suddenly dealing with a completely new environment, dorm life, social circles, parties on wampus (west campus), and general adjustment to independence. At the same time, CS 314 doesn’t slow down for any of that. Assignments and labs are still due on a strict schedule, regardless of whether you’re adjusting socially or experiencing college life for the first time. That mismatch between external life load and consistent academic pacing is what creates a lot of the perceived difficulty.
Students who do well are typically those who adapt quickly to the transition into college life while maintaining consistent academic structure early on. CS 314 is often taken alongside other demanding courses like M408D and CS 311, which increases the overall workload due to constant switching. The students who struggle most are usually not those who lack ability, but those who take too long to establish steady study habits during the initial adjustment period. I know this because I somehow got a way higher grade in CS 429 (with Dr. Siddhartha Chatterjee) than in CS 314, purely because I locked in after the first semester of university.
Professor Mike Scott is really cool and an avid Star Wars fan; I remember we had a whole conversation about Rogue One early on in the semester after he pointed out this Darth Vader shirt I had on during help hours. Some of the exam bonus questions were Star Wars facts as well. His website is very barebones, mostly raw HTML, meant to give you everything you need to read in one place. Despite that, it works fine, and it’s kind of part of its charm. He’s also an active part in the compsci community, and you frequently see him in instagram reels posted by the UTCS department. He also frequently gives “GSA” (Good Student Answer) to students answering questions.
This class does not want you to fail, and is very passable, maybe hard to get an A nowadays though. But unlike what trenches you fought through to get to where you are, you do not need to place as big of an emphasis on your GPA compared to in high school (in most cases).
Years down the line, I hope this adds a useful data point for future students who are looking up course information, and serves as a little time capsule.
Some final random tidbits
- One of my friends was really dedicated on the Piazza forum, answering questions as a way to get free exam prep and also help our peers at the same time, single handedly lowering the average response time to 8 minutes. Turns out there was a hidden leaderboard and at the end of the year he had like double the points of the next person, which was pretty funny. Mike Scott definitely noticed, and he ended up becoming a TA.
- Professor Scott’s lore is kind of crazy, because before the 40 acres, he was a US Navy nuclear submarine officer for 8 years, and then high school teacher.
- I remember my friends and I digging through his website’s source code once and finding a singular CSS file with a singular line, which simply loaded a rock 💀
- With the running joke of his barebones website, alumni Chris Nunes and Levi Villarreal built a Chrome extension called Mike’s Got Style about a decade ago just to completely redesign it. Another extension was then made called "Style's Got Mike" for those that wish to see his webpage style applied to the world wide web.
- My friends and I had this “before/after” pre-exam tradition to take a selfie before, looking all happy, and then take one after with the thousand yard stare. The "after" pic was always genuine.