Skip To Main Content

Many Backgrounds, One Coding Language

Many Backgrounds, One Coding Language
Cloricia (Pat) Townsend, Engineering & Computer Science Department Head, & AP Computer Science students

In Dana Hall's AP Computer Science class, students from diverse backgrounds share a common goal: to significantly elevate their problem-solving skills through the mastery of the Java programming language. Regardless of their prior experience, every student is immersed in challenging and fun practice exercises each week. They are not just learning code; they are actively building the logical foundation necessary for this rigorous, college-level course and having a great time doing it! 

My dad and my older brothers inspired me to start learning to code. They are all interested in computer science and use it in their daily lives. My brothers both major in computer science and my dad uses coding constantly for work. They have helped me to understand the importance of being able to code and how the skills gained from coding translate to life beyond school.  

E. Turner '27

It is a true joy to observe the students in action! I love seeing their laughter and smiles as they bravely tackle coding mistakes and successfully debug challenging coding assignments. It's also exciting to witness how passionate the students are about coding and their eagerness to share their learning experiences with others by co-authoring this Roar article with me, especially during Computer Science Education Week (CSEdWeek). The students are not only gaining confidence in their coding abilities but are also finding their voice by actively answering questions and participating in class discussions.

To me, the phrase "Many backgrounds, one coding language" means that coding can bring diverse cultures, experiences, and ideas together through one shared programming language. It also shows how coding can connect everyone despite differences and provide a space of collaboration.

S. Huang '27

From solving puzzles to debugging their code, the students demonstrate their ability to apply the concepts they have learned to real-world problems. They work well individually, but I also encourage them to work as a team. Working problems together on the whiteboard allows the students to discuss a problem, answer the questions, and dive deeper into understanding the solution. As the software programming concepts become more complex, the students are tasked to create a visual representation of their code using large notepads. By coding on paper and color-coding their code, they can easily see how values are passed from parameters to variables.

One student said that she really enjoys the coding on paper practice exercises because they help her to better understand how to write Java classes, as well as how to create objects and methods.

In a world where AI is influencing how computer science is currently being taught, the students aren't just memorizing commands; they are developing abstract thinking skills by learning to look at the world like software engineers. This process begins with Object-Oriented Programming (OOP), where students discover how to identify common characteristics (attributes) and behaviors (methods) in real-world objects. These identifications then serve as blueprints for the complex Java programs they write.

To help them grasp this concept, I recently challenged the class with a hands-on, collaborative task: assembling a 1,000-piece puzzle. The students immediately applied engineering thinking, efficiently comparing the colors and shapes of the pieces to identify patterns and develop a successful assembly strategy. It was fascinating to watch them work! By leveraging teamwork and visual analysis, they completed the large and complex task together in just about an hour and a half.

Student assemble a puzzle in Computer Science class.

This exercise beautifully demonstrates a core concept: just as they categorized puzzle pieces to complete the physical task, they are learning to categorize and define real-world objects to complete large-scale programs. For example, a Pet object has attributes like color and age and methods like makeNoise and movement. This connection underscores how the course is equipping them with essential logical and computational skills that extend far beyond the classroom.

After being inspired by the in-class project, another student expressed that she enjoyed working on a puzzle with her family during Thanksgiving break.

I think my math background really helps with the problem-solving aspect of coding. I took Data Science first and really enjoyed the coding in that so I wanted to take my understanding of it further.

C. Donnelly '26

The AP Computer Science course provides Dana Hall students with a wonderful and unique opportunity to prepare themselves for the challenges they will face as future engineers and computer scientists. These practice exercises set the stage for students to display their computational skills and incredible creativity, often utilizing diverse strategies to solve challenging problems—all unified by the powerful language of Java.