jnguyen@purdue:~/notes$ cat spring-2025.md
Spring 2025  ·  Purdue University  ·  GPA 3.52  ·  Semester Honors
CS 18200 — Foundations of Computer ScienceB+
overview

This class was my first introduction to writing proofs and a unique world of math. This was a discrete math course that covered a wide range of topics that I found enjoyable. I found discrete math a lot more enjoyable than the usual computational math courses such as Calculus and Linear Algebra. I liked how this class was very logic-based rather than formula-based. I liked this class so much that I bought a physical copy of the textbook that this class was based on and would work on extra practice problems that were not assigned in our homeworks.

homeworks

The homeworks in this class however were extremely difficult at times, but I believe that they were hard in a good way. They forced you to think deeply and required you had a strong understanding of the topics that were tested, so they prepared me well for the exams.

exams

The exams on the other hand were not even close to the difficulty of the homeworks. I believe that the average for the first exam was around an 80, and I scored an 89.

lectures

The lectures of this class were very engaging as well. I had Professor Grama and he was an excellent lecturer, very easy to listen to and taught the concepts in a way that was understandable rather than regurgitating slides.

verdict

Overall, this class was a lot of fun, though difficult and time consuming at times.

difficulty: ?/10  ·  rating: ?/10
CS 24000 — Programming In CB-
overview

CS240 is the class that made me fall in love with Computer Science and the reason why I fell in love with programming. After a bad experience in CS180, I wasn't sure programming was really for me. Java never clicked with me, and I struggled to find genuine enjoyment in it, but 240 changed that for me.

CS240 is a C programming course focused on low-level concepts such as memory layout, pointers, dynamic memory allocation, structs, unions, data structures, GDB, and a lot more. For some reason, everything just clicked with me. Unlike the high-level abstraction of Java or Python, C puts you directly in control. Nothing is hidden from you, and nothing is stopping you from doing anything. The way you have to directly manage memory and understand what you're doing is something I like about C. Also, I enjoy that C forces you to fundamentally understand what your code is doing unlike higher level languages.

the environment

The class was also my introduction to a new world of programming. We worked entirely in a Linux environment using Vim, and something about that environment clicked with me. It got me to double boot Arch Linux on my own machine and stop using IDEs like VSCode. I couldn't program with mouse and keyboard anymore, I had to use Vim keybinds since I got so used to them.

professor turkstra

A controversial take, but I think that Professor Turkstra is a great professor. Sure, he has policies that many may not agree with, but he was a fundamental part of getting me to fall in love with low-level programming. One of those policies that I didn't agree with was his downcurving that he is popular for. If you did not get above a certain threshold on your exam scores, then you were capped for your grade. For example, if you got below an 85% on your exam average, you could not get an A no matter how high your overall grade was.

Aside from that, Turkstra gave good advice in his lectures on what it takes to become a great programmer, advice that I took to heart and that has carried me far. His homeworks were extremely hard, but they were enjoyable. They were hard because they were designed to teach you the fundamental skills that every programmer should have. The hours spent debugging a segmentation fault are not wasted time, they are essential for skill development. I remember spending over 30 hours on Homework 2 due to my test cases not passing. The bulk of that time was spent holed up in Lawson by myself in the computer labs past 3AM grinding through assignments and spamming energy drinks.

verdict

Overall, this class was genuinely one of my favorites. I loved learning new concepts like GDB, Vim, Makefiles, and working in a Linux environment, and I wish I could experience discovering all of those things for the first time again. CS240 gave me the confidence I needed in the CS program and solidified exactly what kind of programmer I want to be. After taking this course, I knew I wanted to pursue a career in low-level development, working in C and C++.

difficulty: ?/10  ·  rating: ?/10
JPNS 10200 — Japanese Level IIA-
# coming soon
difficulty: ?/10  ·  rating: ?/10
MA 26100 — Multivariate CalculusA
# coming soon
difficulty: ?/10  ·  rating: ?/10
semester review
# coming soon
~/notes/spring-2025.md top
j / k    scroll
Ctrl+d/u   half page
gg / G    top / bottom