My favorite engineering class at Cornell so far has got to be CS 2110/ENGRD 2110. One of the most common computer science courses at Cornell it delves into a lot of the fundamentals of computer science while utilizing the basics taught in an introductory class. It covers a lot of need to know concepts such as traversal of binary trees, heaps, linked lists, and shortest path. The whole course is also taught in Java, a standard, extremely common language which gives students good experience with which they can take with them into personal projects, internships, or eventually work.
There are two main reasons why this has been my favorite class so far. The first major reason is because of the professors and content. When I took the class, it was taught by professor David Gries, a legend at Cornell. He was always really engaging and liked to include jokes and interesting asides while he was lecturing. He always made sure to cover all of the important information and would let us out early if it was a shorter lecture. Professor Bracy also taught many of the lectures the semester I took the class. She was equally wonderful and enthusiastic about the class, which always makes a course better when the professors are genuinely excited to teach.
The second reason that I really enjoyed this class was because of the homework assignments. The homework assignments were usually like mini projects where we were given a couple files with missing bits of code that we had to implement. After we implemented the necessary functions and data structures, it usually resulted in a cool, applicable demonstration of the concept we were learning. Now that isn’t to say that I enjoy homework (far from it), but if I have to do homework, I much rather do engaging work that feels practical compared to simply doing problem sets. The most exciting problem set was the final one of the class. It was essentially a game where you had to explore a cave then escape within enough moves but collect as many coins as you can on the way out. There was a basic requirement in order to complete the homework, but it was really an open-ended project where we could write our own algorithms to maximize the number of coins collected. They even set up a leaderboard so people could post how good their algorithms were. It was completely voluntary, but it was a really fun, low-stress way to exercise a lot of the skills we had learned throughout the semester. The professors even competed in the competition themselves, though a few students were able to beat them.
The class covers a bunch of important concepts in an engaging manner and with great professors and with homework that is as practical as can be. It teaches all the most important aspects to programming and is a must for anyone interested in the field, and I highly recommend it to all majors.
~Elias, operations research & engineering