This class was tough.
I would definitely recommend this class, not because it is required, but because you will learn many and interesting ways to solve a problem. In my previous CS classes, we had to go do the long way to solve a problem, but now I learned short cuts and more efficient ways to solve a problem.
By taking this class, I learned how to create and design a useful program from scratch. For example, one of our project was to create a line editor, which is like Microsoft Word Document, but you are only allowed to write and edit one line at a time. We had a requirement sheet that just told us how the interaction was between the user and computer and what classes we needed. Based on that, I had to design how I wanted the code to be. Because the project was larger than any project I worked on for school, I learned that you have to break the pieces into smaller parts and work on each parts individually. Once all the parts are finished, then you put all the code in one file.
Hours per week:
Advice for students:
In order to succeed in this course, you have to come to every lecture because the tests and projects are all based on what we learned in class. Also, starts the projects early and break them up in small pieces so that it is not too overwhelming.