It’s Thursday afternoon during exam week, and a computer lab in the Art and Media Center thrums. Milton’s programming students, laptops spread, are tweaking, honing, perfecting independent projects — it’s noisy “independent” work. Students probe and answer each other’s questions, review lines of friends’ code, wildly gesture to punctuate both frustrations and “aha!” moments.
Chris Hales (computer programming faculty) roams the classroom — an open session for exam support that looks and feels like a startup hub.
When Chris began teaching at Milton in 1999, he led two programming sections, about eight students each. Since just 2012, the number of Milton programming students has doubled, now approaching 100 students enrolled in the elective courses. The math department’s decision to introduce programming in every Geometry class has surely sparked interest. Today, a diverse group of advanced students take courses in applications programming and artificial intelligence.
“We teach programming languages as a medium for expression — as a tool to build things,” says Chris. “The students tackle some difficult, traditional computer science exercises, but the goal is to create great problem solvers, not afraid of big, complex problems.”
Beginning at the intro level, students learn the languages — first Java, then perhaps Swift, XML, Python — through projects. First task: Monster Aquarium. Students develop “players” to populate a domain and program the characters to interact accordingly. For instance, they might create Hogwarts and fill it with Harry Potter, Hermione and Snape; or develop an ice rink full of hockey players — checking one another, moving the puck around; or an ocean with fish, bigger fish, seaweed and sharks.
In the advanced courses, like Programming Applications, students know the languages and now learn how to work together. Two or more people writing the same piece of code creates a new set of challenges. Students learn how to use organizational tools — industry-standard programs — to communicate and synchronize their work, sharing responsibility, ensuring efficient work flow.
“At that point, I’m more a team member than an instructor,” Chris says. “I’m there for support, and I’m in the brainstorming business with them.”
Milton students stretch in creative ways. This spring, one advanced group is developing a refrigerator that tracks its own inventory. Another group launched an app earlier this year that keeps Milton students synced with weekend activities, dining menus and mailbox access. (The app is available for download on both Android and iOS platforms.) Expanding that “Milton Student App” is the aim of a group working on a Milton ESPN-type component: tracking game schedules, posting real-time scores, providing Google Maps-based directions to athletic contests, compiling game-related tweets.
Still others are developing a game called “Hot Potato” — a competitive, game-trading app: pass the potato fast, gain life points, and win access to games that the program “drops” to your device, based on your campus location.
Milton students are now regulars at MIT hackathons. Neekon Vafa ’15 and Harry Kwon ’15 were part of a first-place team at MIT’s Internet of Things Hackathon their senior year. (They were the only high school students in the room.) This spring, Jacob Aronoff ’16 — founder and co-head of Milton’s Programming Club — organized 20 classmates to compete in MIT’s Blueprint Hackathon in February.
Jacob has been a passionate programmer since he was five years old. He arrived at Milton craving a place to “talk programming” with like-minded friends, and faculty too. At Milton, he cut his teeth learning comprehensive languages, establishing organizational strategies, working efficiently with his peers. Today, during his free periods, he mentors in the intro classrooms — volunteering up to ten hours a week. Jacob is Chris’s right-hand person, and a go-to guy for classmates seeking answers, from basic to complex. He’s the development operations manager for his advanced group projects, responsible for testing teammates’ code before integrating their work into the project’s master branch. He even has a “DevOps” T-shirt — “Nerdy, but fun,” he laughs.
“Helping others identify programming issues has made me a better programmer,” says Jacob. “The culture that Mr. Hales creates is entirely collaborative — intense, but fun, and creative. The other kids in class have all kinds of backgrounds, interests, talents, and everyone is welcome here. Mr. Hales breaks down large, potentially overwhelming tasks into manageable pieces, and he empowers us. The mutual respect and support in this room is infectious.”
by Erin Berg