u/DereChen

C S 314 (Data Structures) Review with Professor Mike Scott

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

https://preview.redd.it/iq25s7zmxgwg1.png?width=792&format=png&auto=webp&s=1649609dd7a9397c82f797d5f73d58427ae802a6

https://preview.redd.it/n876vholxgwg1.png?width=797&format=png&auto=webp&s=c3db8def46942e71478417706bb5486b04281390

What you learn

https://preview.redd.it/3m2xrj54ygwg1.jpg?width=4032&format=pjpg&auto=webp&s=d8720a5b06e18878e7d1adaee0c1fe657e7defa5

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

https://preview.redd.it/o4pcoy7gzgwg1.png?width=864&format=png&auto=webp&s=06a2a572b4554214ccfaa0ab768f9876517c7a33

  • 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.
reddit.com
u/DereChen — 1 hour ago

Trying to write a course review over here, what is causing it to flag "You appear to be posting an A.dmissions related question"?

u/DereChen — 1 hour ago

Minecraft but solarpunk! (Credits - Eligriv)

Built by eligrivlepro-player aka Eligriv

u/DereChen — 3 hours ago

Kind of interesting, but when loading maps from old worlds, a lot of plant types are mismatched and turned into Grass Blocks, and a lot of underground air pockets happen from blocks being deleted

u/DereChen — 7 hours ago

what advice would you offer students that are near graduation ?

For those who’ve already graduated what do you wish you had done differently during your last semester or right before finishing? Any tips for graduation time?

reddit.com
u/DereChen — 1 day ago

Doing the math: the efficiency of using an Iron Farm to make bone blocks with poppies + composters (it's really slow)

Obviously composters are a random factor which leads us to getting an average value

https://preview.redd.it/eqpmyy7ru3wg1.png?width=2560&format=png&auto=webp&s=041399014239dc2f9ac47e6f8d718bffbdf253cb

Autocrafter block allows for us to craft bone blocks now from bone meal which is very nice for compacting

  • Golems to Poppies: Every Iron Golem drops 0-2 poppies (Average: 1 poppy per golem).
  • Composter Efficiency: Poppies have a 65% chance to raise the compost level. Since you need 7 levels to get 1 bone meal, it takes an average of 10.77 poppies per bone meal.
  • ou need 9 bone meal for one block.
    • 10.77 poppies x 9 bone meal = approx 96.93 poppies per Bone Block.
  • If you built IanXOFour’s Easy Iron Farm about 330 ingots per hour, about 82.5 golems per hour, that's around 82.5 poppies/hr
  • 82.5 poppies ÷ 10.77 (avg. poppies per meal) = 7.6 Bone Meal/hr so you are getting 0.85 Bone Blocks per hour

Conclusion: Not worth it but honestly if you're a technical player viewing this from a purely objective lens, you only stand to gain by compacting the bone meal if u got the time, since you can save storage.

reddit.com
u/DereChen — 2 days ago

We fully excavated a small island for sand blocks (Credits - D34DP1X3L, DerexXD)

The glass farms must run

u/DereChen — 2 days ago
▲ 10 r/Minecraft2+1 crossposts

Fully automatic snow block farm (Initial design by RaysWorks)

Fully automated using snow golems and tnt drops and honey block moving line. Built on our forever world

u/DereChen — 2 days ago
🔥 Hot ▲ 456 r/Helldivers+1 crossposts

Pried their tentacles from what now??

freaky ahh Democracy officer line

u/DereChen — 2 days ago

Chunk border generation led to this very very tall snowy taiga, above the clouds

u/DereChen — 4 days ago
🔥 Hot ▲ 110 r/UTAustin

The walls of the PCL study rooms are some of the thinnest, worst-insulated things ever you can literally hear everything from the rooms next door, down to the very tiktok they be watching

something about study rooms

u/DereChen — 4 days ago

Work - in - progress giant brewing stand build, for Cleric villager trading hall (Credits - DerexXD, lucasch555)

Original first version blueprint by lucasch (aka lucasch555) on PlanetMinecraft in 2018, we added modern Minecraft blocks to the design to make it more pixel accurate to brewing stand block

u/DereChen — 4 days ago
🔥 Hot ▲ 374 r/Minecraft2

Does anyone feel like Wattles is a little clickbaity of a channel?

He makes it sound like there is a lot of big actual content, and then gets thumbnails from mods, but in reality most of the things he covers are just minor technical changes to the Minecraft data format, for datapack developers, or offhand developer comments on Bluesky, not real updates.

Sure, they could imply something down the line, but presenting them as confirmation of things like new village types or spider variants is really misleading.

u/DereChen — 5 days ago
🔥 Hot ▲ 71 r/Minecraft_Survival

Cool dual high speed railway on forever world (Built by JCAT8 aka JC88)

Spanning thousands of blocks and going hundreds of blocks a second.

u/DereChen — 6 days ago