Programming 101
CS-161 is the intro to programming course at Oregon State University.
This class is where all of the basic building blocks of programming are introduced and practiced. C++ was the language that we used, but the university has said that it will transition to Python for 161, 162, and 261 in the near future, so much of the content of this course will change very soon.
CS-161 is based around 2 exams and 10 programming assignments which increase in complexity. The project submissions are made to a 3rd party website which tests the submission and shows the output of some tests and then hides the output of other tests. This forces the programmer to manually verify that all of the requirements are being met, because it is possible to pass the visible tests and still miss some important requirements and fail the hidden tests.
The two exams in CS-161 are probably the most difficult part of the course, and the place where the majority of people will lose the most points. There will be people who get 100% and there will be people who get 25%, but the two test averages were both around 80%. Since the two exams are worth 40% of the course grade, they can swing your grade wildly. To do well, one must be able to read C++ code and trace their way through it’s current state. The exam questions will absolutely try to trip you up and push your comprehension of the language. The best way to improve your performance on the exams is to track your way through code on a whiteboard or on paper and then to compile and run the same code to see its output and see if your were correct. If you aren’t correct, then you need to figure out what you may not be considering.
My professor for the course was Tim Alcon and all of my interactions with him were positive, though he’s definitely all business. I finished CS-161 with an A- and that was entirely due to my programming assignments being nearly perfect, which offset my exam performance being average, and admittedly lower than I would have liked. Overall the class was a great experience and I have since rebuilt all of the projects in Python and will next rebuild them in JavaScript through Node.js.