Completed Courses
CS 300
This was the first Computer Science class I took at UW-Madison. Through this class, I learned the basics of OOP, Java programming, basic data structures, abstract data types, and more basics of programming. While it wasn't the most difficult course, it did help prepare me to be a better programmer, and instilled some best coding practices I still use today.
CS 400
As a direct succeeding course to CS 300, this course focused on advanced data structures, and basic algorithms. On top of the higher level programming concepts that this course taught through Java, we also learned a multitude of other programming languages and technologies. These include HTML, CSS, Bash, Git, and more. This course also had a focus on learning the fundamentals of group programming through the use of 4 person group projects. Overall, this course was a great experience and taught a lot of the more difficult fundamentals.
CS 252
One of the most fun classes I have taken at UW-Madison. This class was focused on the low-level physical components of the LC-3 computer, as well programming in LC-3 assembly. Overall, helped me learn how low-level programs are executed and allows me to this day to think of new and more efficient ways to program.
CS 354
This course was the next course after CS 252 where we focused on one level of abstraction above assembly. The programming was all done in C, and a little bit of 32-bit x86 Windows Assembly. After taking CS 252 and now working on a low-level programming language, this class gave me a whole new appreciation and insight into the power and drawbacks of high-level languages.
CS 577
Thus far, this was by far the most difficult course I have taken. However, that aside, as most people will say, this course was one of the most rewarding ones. Through this course I learned many paradigms for creating efficient algorithms.
CS 402
While this is an unusual course to take at UW-Madison, it was one of the most fun classes I have taken. Through this course I got the opportunity to teach sixteen 2nd graders the basic principles of Computer Science through Scratch Programming. I loved taking this class as it reminded me of the classes I took as a kid that got me interested in Computer Science. This class is focused on giving back to the community and helping out new students who are starting to enjoy working with technology in our every digitized world.
Math 340
This was one of the easier required Computer Science courses, however I did use a full notebook to write down all of my solutions. It was an interesting Math class, but it was very labourous, and took a while to master. Linear Algebra, RREF, and Matricies will forever be engrained in my memory
Math 222
Math 222 (aka Calculus II) was definetly the hardest of the three Calculus classes I have taken. Through this class, you got what you put into this class. While the class was difficult, it was my first Math Class as well as my first lecture at College. Overall, the class was made a lot easier after I put time into learning the concepts.
Math 234
Math 234 (Calculus III) was well worth the wait of Calc I and Calc II. This is the class that led me to also love to complete math problems. The need to problem solve and conceptualize the math problems was one of the most unique math experiences I had up until that point. Truely one of the most fun math courses.
Math 421
As a precursor to Analysis 1 (Math 521), this class is just as advertised. The class was tedious as you were just writing proofs, and while the homeworks were only 3-4 questions a week, sometimes it would take an hour or two just to conceptualize one problem. While sometimes the class was a bit difficult it was overall a great course that encourages collaboration and working with peers.
Current Courses
CS 537
All I have to say is pray for me... we will see if I survive OS
CS 540
As one of the few AI courses offered by UW, I thought is manditory to take as our world is becoming more and more reliant on this technology.
Math 521
As an course that follows Math 421, I am excited to continue to solve proofs, and continue to learn the rigourous concepts the basics of math lay on.