Java Be able to write and debug programs written in Java, including: - Simple statements involving declarations, assignments, method calls. - Control flow. Sequential control, indexed for loops and while loops, if/else if/else branches. - Basic concepts of object orientation. The difference between classes and objects, class fields and methods, constants (static final fields), definition of constructors and their invocation using the reserved word "new". - Visibility rules governing public and private methods and fields. - Running and testing code. Use of the interaction pane in Dr.Java to instantiate objects and run class methods. The main method and running it. How to write comments. - Inheritance, the reserved word "extends"; polymorphism (classes that have same-named methods and the rules that govern which one applies). - Testing code. Writing main methods. - Exceptions. The required use of try and catch blocks. Their syntax. - Package imports. Meaning of the reserved word "import" and the wildcard "*". Where to look in the java library for classes and methods that you can reuse. Media - Pictures. The representation of digital pictures as grids of pixels. Instantiating a picture from a file or a blank picture. Getting its width and height. Getting an array of all the pixels in the picture. Getting one pixel at a specified x,y location. - Colors. RGB encoding of color. The minimum and maximum values of R,G and B and the reasons for these values. Size of the RGB color palette. Getting and setting R,G,B values of a pixel. Instantiating a new java.awt.Color and getting and setting a color of a pixel in a single operation. - Working with pictures. Using the enhanced for loop to manipulate all pixels in a picture. Using nested indexed loops to manipulate specific pixels (e.g. those within a specified rectangle). Copying and composing pictures. - Picture manipulation methods. Changing brightness. Selectively changing color/hue. Negatives of pictures. Reducing the color palette: black and white / grayscale and posterizing. - The difference between cloning an object (e.g. two identical twin pictures) and giving it an alias (e.g. two variable names for the same object). Effects of changing one but not the other in these two situations. - Turtle graphics. Intantiating worlds and turtles. Simple turtle movement using Turtle.forward, Turtle.backward, Turtle.turn, Turtle.penUp and Turtle.penDown. Trace a turtle program by drawing its result.