The Starter Lab is where high school students (ages 14-18) with little or no programming experience can start to learn computer programming and software development. They begin with Scratch and Python. Both are excellent tools for learning programming and are fun to work with. Students then move into Java and to try object-oriented programming with another beginner tool that makes it easier to pick up. Java is used in the AP Computer Science exam and our students will have already seen and used the concepts tested.
Python and Java are currently two of the most popular programming languages in use. Python is easy to read and understand which makes it a natural first coding language. But it can also be used for heavy lifting including being used for the popular file syncing tool, Dropbox. Java derives much of its style from C and C++ but was created to be simpler than these languages while also having the flexibility to 'run anywhere'. These reasons contribute to its popularity and flexibility. Java is used for Android smartphone development, for example.
Our students are encouraged to work together learning new concepts and solving problems. When working together programmers are more productive and come up with better designs with fewer bugs. Searching for bugs often is easier with two sets of eyes!
Who: High School Students
Decatur / Toco Hills Schedule:
Saturdays 1:00-2:30pm or
Tuesdays 6:00-7:30pm or
Tuition: $169 / month
How long is the program?
New students begin at the first or middle of each month. While students begin learning right away, the program is organized to enable them to continue as long as they are interested and having fun. Tuition is monthly and we have flexible material that will constantly challenge students and keep them moving forward. There is no fixed term for our after-school programming labs other than a monthly commitment.
How long does it take to learn piano? How long does it take to learn a foreign language? Like these skills, there is no limit to the potential for learning about technology and computer programming.
For high-school students, Scratch is a great place to start. Scratch is a drag-and-drop 2D programming environment where code is snapped together like building blocks. Students are able to quickly create games, stories, and multimedia art while learning about programming concepts. Students make a Pac-man game in their first lab and then the ideas start flowing! Further lessons include game ideas like a platformer game, doodle jump, helicopter rescue, and many more. We have taught many high school classes using Scratch and it is always a hit because of the flexibility and room for creativity that it brings.
While students are working in Scratch, they simultaneously begin with Python. Python is another great place to start programming because it offers an interactive environment to explore programming and problem solving. Python was designed with a clear code style and high level data structures. It is even easier to learn than the classic learning language, BASIC, and eliminate some of the sources of frustration with other traditional languages like C, C++ and Java. Once a student is comfortable reading, writing, and understanding Python code, a jump to other languages is not as jarring or difficult. Many universities teach Python in their computer science programs including Atlanta's own Georgia Tech. And at Google, Python has been named one of the 3 'official languages' alongside Java and C++.
JAVA AND APP DEVELOPMENT
After becoming proficient with Python, students are prepared to jump into Java and object-oriented programming. While Java is a powerful programming language, we have some fun starting tools to introduce concepts like objects and classes using an intuitive development environment called Greenfoot. Greenfoot feels like Scratch on steroids and is fun to work with. Java is also used for Android smartphone apps so the students will be ready to try Android app development. We use App Inventor as an introductory tool to app development and then they can jump into the full Android software development kit (SDK) using their Java skills. Plus once a student is comfortable programming in Java, moving on to new object oriented languages like Objective-C to make apps for Apple Macs, iPhones, and iPads is much easier.