### Class Description

Java is one of the most used programming languages today - Minecraft, Android apps, and many websites are all created with Java!

This class introduces Java to middle and high school students in a way that encourages creativity while learning computer science principles. We use an environment with low cognitive overhead designed for fast iterations - we write our text-based Java code, compile it, and immediately see the results on-screen. Student curiosity and interest provides the vehicle (and motivation) for making our way through the class topics.

This class combines all the material presented in [Intro to Java - Part 1](/content/classes/intro_to_java_part_1.html) ( **Java syntax**, **variables** and **variable types**, **conditional statements**, **looping**, **functions**, **data structures**, and **event handling**), as well as the object-oriented and more advanced topics covered in [Intro to Java - Part 2](/content/classes/intro_to_java_part_2.html) ( **classes**, **objects**, **encapsulation**, **abstraction**, **inheritance**, **polymorphism**, **compound data structures**, and **algorithms**).

Together, we cover a great deal of computer science topics, while creating interactive, animated programs. By the end of the class we will have created a fully functioning game! Here are samples of the kinds of projects students will create - from simple to complex:

-  translucent triangles
-  optical illusion using loops
-  random circles using loops
-  The Matrix (arrays, loops)
-  classic Space Invaders
-  classic Asteroids

### Prerequisites

None!

No prior programming experience or knowledge is required, or expected - this is a great place to start!

### Software

Students will be taught how to code in Java, using the free and open-source application, [Processing](http://processing.org/). Originally designed for learning to code, Processing has turned into a creative platform used by professionals.

### Computers

Students should bring their own laptops to class (Chromebooks will not work). Please download and install [Processing](http://processing.org/) beforehand!

Students are welcome to use one of our laptops if they are unable to bring their own. Make sure to bring a USB Flash Drive to save your work.
