COMP SCI 200
Programming I
University of Wisconsin - Madison
University of Wisconsin - Madison
Learn the process of incrementally developing small (200-500 lines) programs along with the fundamental Computer Science topics. These topics include: problem abstraction and decomposition, the edit-compile-run cycle, using variables of primitive and more complex data types, conditional and loop-based flow control, basic testing and debugging techniques, how to define and call functions (methods), and IO processing techniques. Also teaches and reinforces good programming practices including the use of a consistent style, and meaningful documentation. Intended for students who have no prior programming experience.
There are programming assignments due each week. When I took it in the Summer, the assignments were released after class on Thursday, the last day of class for the week, and they were due one week later. The assignments were themed, and it was really fun to get a new backstory every week. Fortunately, there are no pop-quizzes or tests in-class. Professor Vinitsky created problems and stories that went along with the problem to give us a sense of when we can use the certain programming concept, and it really helped me get a better idea of why we needed to learn the concept and where it could come in handy.
When I took the class in the Summer, the exams were a very small weight of our final grade around 15% total. My professor, Sam Vinitsky, focused the exam questions on filling in blanks, using pseudocode to create a mildly easy program to sort Objects, and tracing code to find the errors. The exams were all free-response questions. However, the answers were fairly easy due to the detailed description and context. While we were allowed one regular sheet of notes (front and back) during the midterm, we were not given the same option in the final. Overall, the exams are not too difficult, and the topics are well-covered in the lectures and programming assignments.
It is similar to AP Computer Science A in the sense that it is the foundation of Java programming. Basic information such as primitives, Objects, loops, and conditional statements are introduced and used frequently throughout the course, and they frequent the weekly assignments. Class and program design are introduced but not in great detail.
If you have taken AP CS A in high school (but not the AP test) or if you are familiar with some Java, this course will build on top of that. The first four weeks are more for introducing those without prior programming experience to the idea of programming. After that, new topics such as recursion, ArrayLists, and Big O notation will be introduced. This class does not go into deep details about Object-oriented development, interfaces, debugging or testing, or basic data structures. However, it is a great class to take if you are unsure of your Java skills, knowledge from AP CS A, or have never taken a computer science class before.