Declan Cain

Completed Courses

CS 300

Programming II Intermediate

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

Programming III Intermediate

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

Intro to Computer Engneering Elementary

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

Machine Org. / Programming Intermediate

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

Intro to Algos. Advanced

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

Teaching CS to K-12 Intermediate

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

Lin Alg. and Matricies Advanced

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

Calculus II Intermediate

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

Calculus III Intermediate

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

Theory of Calc. I Advanced

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

Intro to OS Advanced

All I have to say is pray for me... we will see if I survive OS

CS 540

Intro to AI Advanced

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

Analysis I Advanced

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.