Java Programming (D77) Course Description
Java Programming is designed to teach basic computer science and computational thinking to high school students
You have used computers your whole life. Mostly you don't even think about it. Your phone has several computers in it, your iPod, your Kindle, your TV, your car has several in it unless it is an antique, and on and on. Most devices with an on/off switch contain computers these days. And they continue to be more widely used - planes fly without pilots, vehicles can drive on highways autonomously, social media like Facebook and Twitter add features every month that allow new forms of interaction.
That list probably contains no surprises to you - it describes how the world is. You're doing just fine with today's technology. Luckily, this class isn't about how the world is. The world will change. This class is about what you need to know for the world that hasn't yet arrived, and which you will create.
I want to emphasize this point - the world changes and this class is about staying with it and contributing to it.
Who is this guy?
|He's Jack Dorsey and he changed our lives. Everyone in this class can remember what life was like before Twitter. In 2006, Jack Dorsey invented Twitter. In 2005, maybe the year you entered middle school, no one had thought of the idea of Twitter. But Dorsey saw an interesting way to use computers, and he created it. Of course, he could program and build it himself, which is good, but it's not the goal of this class.|
We don't produce programmers in this course. Programming is a career and it takes years to learn. It's possible to have an idea like Twitter without building it. But you must understand computational principles and think computationally to do it.
The goal of this class is for you to understand enough about the principles of computing and computational thinking that you could
- Come up with a new idea of how to use computation to solve your own problem, or
- Understand someone else's new idea on how to use computation, and see its value, or
- Be the first user of a new computational idea, when most of the features don't work
If the world is changing because we are using more computers and using computation in new and exciting ways, you need to be thinking computationally. You need to use it and contribute to it. That's what we teach in this class.
At this point you may have a major in mind or another major in mind other than computer science. Terrific! But, whatever your major and career plans are, it will certainly involve computers much more than it does today. If your major is:
- Science? Computation has joined theory and experiment, as the third pillar of science, and sciences progress when a new computing idea can reveal more secrets of nature.
- Engineering? Engineering is all computers all the time.
- Medicine? Research is all computers; clinical practice is, too, except for changing the sheets and social interactions.
- Humanities? Research in archeology, history, linguistics and many other humanistic fields use computation imaginatively so they can better understand their subject.
- Business? Business gets most of its productivity gains through using computation better.
So, this class is computer science for everyone who will be living and working in the 21st century. That would be you.
In this course you will begin by learning to program using the Processing language. Processing is an open source programming language and environment for people who want to create images, animations, and interactions. visit www.processing.org to see Examples.
Then you will learn the Java Programming language which is similar to Processing, but with the constructs of a traditional language. Learning Java will include selection and repetition, as well as fundamental concepts of object-oriented programming and design. Other topics include inheritance, polymorphism, exceptions and recursion.
Finally, time permitting, you will learn how to use the Android SDK and a Game Framework to create mobile Apps. You will convert one of your Java projects to the Android platform.
Here is an example of anAndroid video game you should be able to create by the end of the course:
But this course is far more than just learning to program. We'll focus on some of the "Big Ideas" of computing, such as abstraction, design, recursion, concurrency, simulations, and the limits of computation. We'll show some beautiful applications of computing that have changed the world, talk about the history of computing, and where it will go in the future. Throughout the course, relevance will be emphasized: relevance to the student and to society. As an example, the final project will be completely of the students' choosing, on a topic most interesting to them. The overarching theme is to expose students to the beauty and joy of computing.