Middle School Programming
Summer 2010 Handout 01 - Syllabus
1 Instructor Info
2 Course Description
The EPGY Summer Institutes Middle School Program Computer Programming course will introduce stu-
dents to the world of computer science through multimedia programming and robotics.First,principles of
programming will be taught using the Adobe Flash.Students will create interactive animations and games
which include graphics,sounds,and user controls.An open-ended game project will allow students to focus
on their area of interest,such as more intricate animations or more complex programming.The second part
of the course expands on students new skills by having them construct and program robots using the Lego
Mindstorms Robotics Invention System and the NXT programming environment.Students will learn about
mechanical design,how to use sensors,and how to use basic AI to achieve desired behaviors.Working in
teams,students will create robots that can complete a task such as navigating a maze or sorting dierent
objects.At the end of the course,students will share their ash games with each other and pit their robots
against each other in friendly competition.Computer programming teaches students to be problem solvers
and to think methodically and logically;the goal is that students will acquire valuable skills that they can
apply to a variety of problems in the future.
Adobe Flash CS4 Professional Classroom in a Book by Russell Chun
ActionScript 3.0 for Adobe Flash CS4 Professional Classroom in a Book by Chris Florio
Real-World Flash Game Development:How to Follow Best Practices AND Keep Your Sanity by Chris
4 Course DOs and DON'Ts
Here are a few nuggets of wisdom to get us started o right!
DO ask questions!We may not always know the answer but we can help you nd out!
DO feel free to make mistakes!The BEST way to learn is to gure out what you did wrong and x it!
DO respect your peers,your instructors,and yourself.
DO help each other learn,share ideas,and collaborate on work.
DO take interest in your own learning;be creative and explore what you can do.\Educate"comes
from the greek for\to draw out."(not\to stu in";)
DON'T be negative.
Please note this schedule is subject to change!
Day 1:Introduction to Flash and Creating Art
Readings:Chun chapters 1-3
9:00-9:15 Welcome,ice breaker
9:15-10:15 Intro to ash.Understanding the timeline and using the drawing tools to create art.
10:15-11:10 Understanding symbols:movie clips,buttons,and graphics.
11:10-11:30 Brief Intro to Keyframes
Afternoon session:The TAs will help you work through chapter 2 in Chun.
Use art tools to create several library objects representing your favorite character(s) and some props,
or use images (e.g.your family,pets,etc).Create the frames for a mini comic book,story,family
album,etc.We will discuss how to navigate your creation on day 2.
(advanced) Read chapter 7 in Chun.Work through the examples of using sounds.
Day 2:Animations and Keyframes
Readings:Chun chapters 4 and 6 (chapter 5 optional)
9:00-10:00 Understanding Motion Tweens,Shape Tweens and creating an animated clip.Run through ex-
amples of possible styles/uses of animations.
10:00-10:30 Advanced animation techniques:motion editor,using rigged bodies.
10:35-11:30 Intro to ActionScript:understanding variables and functions;simple button programming.
Afternoon session:The TAs will help you work through Chapter 1 of Florio.
Add buttons to your comicbook/photo album from Day 1.Depending on your project,this could
include"previous","next"and"home"buttons,as well as anything else that seems appropriate.
Take a character (person,animal,etc).from your comicbook and animate the OBJECT with a cyclic
motion (e.g make the tail on a dog wag back and forth).The changes to the object should automatically
show up in all the instances of that object in your project.
(advanced) Create and animate a rigged body (this could be an extension of something you already
Readings:Florio chapters 1 and 2.
9:00-11:00 ActionScript:more variables,managing user input,writing functions.
11:00-11:30 Animating buttons,adding sounds,etc.
Create a choose your own adventure game.Advanced students can prompt the user for additional
text input that might aect the outcome.
Create animations that use action script to generate motion.Try having user input modify the scripted
motion of your objects.
Day 4:More programming
Readings:Florio chapter 3.Additional chapters of Florio optional.
9:00-11:00 Understanding classes,instances of objects in code.Loops and conditional execution.Managing
larger projects,coding practices.
11:00-11:30 Explain nal project,brainstorm with students what sorts of things are possible and how to
Create a handy program that will solve the quadratic formula for you.Prompt the user for the
necessary values,and return the answer.
(advanced) Create a virtual calculator,or a classic game like Go Fish.
Day 5:Work on Final Project
Readings:Additional chapters of Chun or Florio optional.
9:00-9:30 Answer questions that everyone can benet from.
9:30-11:30 Work session for students.
Afternoon session:Work session for students.
Day 6:Introduction to Robotics
Readings:Handout on NXT.
9:00-10:00 Discussion of mechanical considerations for robot design,such as drive train,stability,sensor
placement,etc.Understanding sensors and robot input.
10:00-11:30 Intro to Lego NXT programming environment.Practice reading from variety of sensors,com-
manding movement using motors,and handling user input.
Experiment with building (but not programming) several dierent robot designs,including wheeled,
Create a wheeled robot and make it drive.
(advanced) Have your wheeled robot perform the following tasks:follow a line of tape (color/light
sensor),follow a wall (ultrasonic sensor).
Day 7:Advanced Programming Robots
9:00-10:30 Discussion and examples of basic AI and decision making for robots.Discussion of blocking and
10:30-11:30 Final project/competition assigned.Additional topics as appropriate.
Afternoon session:Design robots for competition.
Day 8:Work on Final Project(s)
Depending on your interests and current progress,this day is for you to continue to work on your Flash
projects or Lego Robots and explore advanced topics that interest you.
Morning:Life after EPGY.Options for additional programming opportunities when you return home.
Afternoon session:Show o ash projects and compete with robots!