CS 1 Course and Placement Test Information

Which CS1 course should I take? http://www.cs.virginia.edu/~cohoon/courses/which-cs-intro/

The following information may be helpful to students who wish to take the placement exam for CS1110.

The high-level course objectives for CS1110 are as follows:
Students who complete the course will:
  1. Understand fundamentals of programming such as variables, conditional and iterative execution, methods, etc.
  2. Understand fundamentals of object-oriented programming, including defining classes, invoking methods, using class libraries, etc.
  3. Gain exposure to the important topics and principles of software development.
  4. Have the ability to write computer programs to solve specified problems.
  5. Be able to use a software development environment to create, debug, and run programs.
The placement exam itself focuses mainly on objectives (1), (2), and (4) above.

In particular, the placement exam may address the following topics with a focus on demonstrating that you can read and write Java code to demonstrate your understanding of these topics:
  • Understand and apply boolean expressions, if-statements, for and while loops, etc. Be able to combine these to do the usual kinds of problem-solving that would be covered in a first course in computing.
  • Understand and create Java methods, including an understanding of flow of control, parameter passing, return values, local scope, etc.
  • Understand and use arrays as a linear data structure. Be exposed to common array operations, e.g. searching an array, counting items in an array, etc. Also, the same topics using the ArrayList class in the Java library.
  • Doing basic input and output to the console. Use the Java's InputStream or Scanner class for handling input.
  • String data and Java's String class.
  • Recursive methods: the fundamentals, with a focus on methods that calculate a mathematical result.
  • Apply the basics of creating classes and objects (including understanding reference variables, constructors, etc.).
  • Understand how classes provide data encapsulation, including public vs. private, and writing getters (AKA accessors) and setters (AKA mutators) for classes.
  • Understand method calls and object interaction in multi-class programs.
  • The toString() method, and also the equals() method vs. the == operator.
Students may find this on-line Java practice website useful: http://codingbat.com/java
It gives you problems, you enter in code, and it tells you if it works. You have to understand the basics of writing a Java method before you can use it, though.
Taking the Placement Test

Students who wish to take the placement exam can pick it up during business hours no later than 3pm from the CS office in Rice Hall 527. They must complete and return the exam within 90 minutes. Students cannot use books, notes, computers, or help from other people while taking the exam. A student can only take the exam once, and students who have enrolled CS1110/CS1111/CS1112 at UVa for any amount of time are not allowed to take the placement exam. The exam will be graded in a few days, and the results will be emailed to the student. Students who pass do not receive credit, and will be required to take some other course at UVa in lieu of CS1110.