The first test for this course takes place in class on Monday, February 24. It will cover material from classes and labs as well as from assigned readings. The test will be four pages long. It can include definitions and short answer questions; longer essay-type questions; questions that ask you to write code segments or a complete program; and questions that ask you to determine the purpose or the output of a given code segment.
The test covers material from Chapters 1, 2, and 3 of the textbook. From Chapter 1, we covered only some basic concepts, from Sections 1.1, 1.3, and 1.4. We covered most of Chapter 2 except for Section 2.6, programming environments. We covered most of Chapter 3. We omitted all the material in Chapters 2 and 3 on enum and Scanner. You are not responsible for every detail of the reading. In particular, you are not responsible for memorizing every subroutine defined in Math, TextIO, and String; see the lists, below, of subroutines for which you are responsible. You will not be asked about the switch statement, the do..while statement, the continue statement, or labeled break statements. You will not be asked about specific examples,such as the 3N+1 problem or interest rate computations, that are covered in the text. There will be no questions on Linux or the command-line environment, except possibly for the javac and java commands and the general process of editing, compiling, and running a program.
You are also responsible for material from the labs. In particular, you should be familiar with the drawing commands that were used in Labs 2 and 3. I will not, however, ask you about command-line arguments.
Here is a list of some of the things that you should know about:
CPU computer programs machine language high-level programming language compiler Java bytecode Java Virtual Machine syntax semantics style rules and why they are important style rules for variable names comments using // comments using /* ... */ formatting and indentation of programs how to compile and run a Java program the javac command the java command the basic structure of a Java program (You should have it memorized by now!!!): public class <program-name> { public static void main(String[] args) { <statements> } } identifiers reserved words like public and if compound names (with ".") such as System.out.print or str.equals variables data types Java's primitive types: int, double, char, boolean the String type literals Java literals of various types (numeric, char, String, boolean) special characters in char and String literals, such as '\n' and '\t' the basic idea of binary numbers (strings of 0's and 1's) assignment statements type compatibility rules for assignment statements declaring variables subroutines, and "calling" a subroutine such as System.out.print or g.drawRect parameters in subroutines, such as the x in System.out.println(x) functions: subroutines that "return a value" important functions in the Math class: Math.random(), Math.sqrt(x), Math.pow(x,y) important functions in any String str: str.length(), str.charAt(i), str.indexOf(ch), str.equals(str2), str.equalsIngoreCase() comparing Strings with str.equals(str2) instead of str == str2 System.out.print(x), System.out.println(x), and System.out.print() formatted output with System.out.printf(formatString, v1 v2, ...) important format specifiers for use in the formatString of printf: for example: %s %d %4d %1.2f getting input from the user TextIO important TextIO input functions: TextIO.getln(), TextIO.getlnInt(), TextIO.getlnDouble() reading input from a file with TextIO: TextIO.readFile(filename) expressions operators precedence of operators and using parentheses to control order of evaluation important operators: + - * / % == < > != <= >= && || ! ++ -- += *= type-casting, especially using (int) and (double) for type-casting numbers converting strings to numbers with Integer.parseInt(str) and Double.parseDouble(str) making random integers: (int)( m * Math.random() ) + n how the / and % operators work for integers using the + operator with a String statements control structures the empty statement: ; block statement: { ... } while statement: while ( condition ) { statements } for statement: for ( initialize ; condition ; update ) { statements } simple if statement: if ( condition ) { statements } if..else statement: if ( condition ) { statements } else { statements } using if..else if... using while(true) loops using break in a loop infinite loop algorithm (the most basic object of study in computer science!) pseudocode algorithm development using pseudocode and stepwise refinement exceptions how exceptions affect the flow of control try..catch statement: try { statements } catch ( exception-type identifier ) { statements } NumberFormatException when using Integer.parseInt(str) and Double.parseDouble(str) IllegalArgumentException when using TextIO to read from a file the paintComponent() method in GUI programs pixels the xy coordinate system that is used for drawing important subroutines in a Graphics object g (for use in paintComponent): g.setColor(c), g.drawRect(x,y,w,h), g.fillRect(x,y,w,h), g.fillOval(x,y,w,h), g.drawOval(x,y,w,h), g.drawLine(x1,y1,x2,y2), g.drawString(str,x,y) basic color values: Color.RED, Color.GREEN, Color.BLUE, Color.WHITE, Color.BLACK, etc.