An immersion program for high school students
designed to take their understanding of computer science
to the next level.

Picture a room full of people working on computers. One group is huddled debugging the latest revision of the code they’ve written. Another is arguing the best way to solve a particularly knotty problem while a third group is testing out the latest revision of the user interface to see how it feels. The whiteboards are covered with scrawl describing every aspects of the project underway from the technical details to the all important deadline for shipping.

But this isn’t a startup. These are all high school students who have come together for a three week intensive course in computer science. They aren’t lined up listening to an instructor lecture but instead are are working on a project, one that they had a hand in choosing.

Nor is this a class in coding, in fact it's not a class at all, but an in depth exploration of computer science by doing. The curriculum starts where most high schools' computer classes leave off and the material covered is not normally learned until the undergraduate or even graduate level. The students are working hard, but having an incredible time because they are learning new ideas and techniques in the context of creating something real.

The instructor calls for everyone to take a break from their work. One of the groups has hit a roadblock, and it’s time for a short talk that he thinks everyone will find interesting. Afterwards the groups go back to their work, stopping occasionally to do research or ask the instructor for help with one problem or another.

Suddenly it is 3 PM; the workshop breaks up. Groups of students head off to lounges where they continue working before heading off to home to have dinner and then get ready for tomorrow.

The NW Advanced Programming Workshop summer program is a three-week, intensive, project-based workshop for high school students who are serious about programming and can successfully program in Java or C++ at the level of Advanced Placement Computer Science or higher.

The workshop will introduce students to selected advanced programming topics, as well as team programming techniques used by industry professionals (e.g., Linux scripting, unit testing, online code repositories, and “agile” software methodology).

Prior to the workshop, students will form teams, each of which will select an application. Some examples might be a networked multi-player game, a system that learns from examples to recognize faces or objects in photographs, or a controller for a networked set of appliances (i.e., controlling an "internet of things"). The workshop setting is designed to facilitate both extended teamwork plus both individual and group instruction.

Students will come away from this workshop with a set of advanced programming and teamwork skills that will help prepare them for upper-level college courses, internships, and building their own innovative applications.

Working as a group, students in this program will explore topics not generally taught at the secondary level. Although the content will be challenging, the focus is on extending the students' depth of understanding, not performance on tests. In addition to the main project, activities will include lunch-time guest lectures by PSU faculty and invited speakers.

The NW Advanced Programming workshop will run from July 23 through August 10, 2018 at Portland State University. Application is by nomination. In order to attract the best students there is no cost to attend NWAPW.