CS+II+-+Media+Computation

=**Computer Science II - Media Computation**=

This course reinforces and extends the topics introduced in Computer Science I through object-oriented programming and media computation. Employing their existing programming skills and knowledge of fundamental concepts, students will make the transition from languages like Logo and Pascal to Java, and from data such as numbers and text to images, sounds, and movies. By examining and learning to use the data structures and algorithms necessary to manipulate these rich media, students will develop advanced programming skills, a deeper understanding of computer science, and an appreciation for the combination of logic and creativity that is essential in any scientific field. Students with extensive computer science experience may be given permission to enroll in Computer Science II without completing the prerequisites.


 * Overarching Essential Questions that motivate all our computing education**

Essential Questions

 * How do computers represent visual and auditory information? What are the limitations?
 * What is an object, and how does one use them in code?
 * How are objects and classes related?
 * How can I use code libraries to help me solve problems?
 * How can I impose structure and flow control in a program, and why is it important to do so?
 * How can I generalize and modularize the solution to a problem, and what advantages are gained from that approach?
 * What are the distinguishing features of event-driven programming, and what are its inherent challenges?

Course Units

 * 1) Basic image manipulation, looping, arrays
 * 2) Defining regions of the screen, lists, creating methods
 * 3) Advanced image filters, method parameters
 * 4) Event-driven programming, implementing an interface, photoshop project
 * 5) Basic audio manipulation
 * 6) Generating and combining sounds
 * 7) Visualizing audio
 * 8) Using a complex library, building an interactive card game

Benchmark Skills
By the end of the course, students will be able to:
 * write simple programs in Java to manipulate media.
 * understand classes and objects, and use them in their programs.
 * describe the way that a computer structures, uses and processes digital information.
 * look for and use Java library classes to help them solve a problem.
 * describe the solution to a problem in language, and then translate that into Java code.
 * identify opportunities for code refactoring.

Resources
[|Introduction to Computing and Programming with Java: A Multimedia Approach]

Assessment
Assessment of students takes place weekly, based on regular journal entries.

Each weekly journal entry will be assessed on three scales. This indicates how the student used his or her class time during the week. Good evidence is detailed, with specific examples, and it should show the progress that was made during the week. This is the student's reflection about the past week in class. Good reflection is honest, questioning and probing. It thinks about why and how, not just who and what. This is the style of writing. Good communication is easy and clear to read, and presents a coherent narrative to the reader.
 * Evidence**
 * Self-analysis**
 * Communication**