Dear Alumni:
My name is Will Jamieson and in my role at The Leffell School, I teach and work with outside vendors for Computer Science classes and programs, assist the IT department, and manage SAT/ACT testing for the school. I previously worked extensively with summer and after-school STEAM (Science, Technology, Engineering, Art, and Math) programs and camps teaching computer programming and 3D printing. I also worked for the city of White Plains at the Education and Training Center, managing their technology and teaching classes to those seeking to grow their occupational skills. Taking the position at Leffell proved to be an extremely easy decision after witnessing the school culture and values in action.
Upon joining The Leffell School during the 2019-2020 school year, I was tasked with designing not only the path for the High School students, but the class structure for Middle School students as well. Internally in our newly forming LEAD (Leffell Engineering Art and Design) Department, this is being referred to as the “Computer Science Continuum.” I have been iterating this sequence of topics to make a smooth transition for students ranging from sixth to twelfth grade.
The Middle School programming activity electives meet once a week, so it’s important that we cover the important foundational topics. I would also argue that it is almost paramount that the students are having fun and engaged with the material. The sixth-grade level of the activity is focused on making sure that students are positively engaging with logic skills, critical thinking, and problem-solving. This is accomplished through beginning each class with logic and coding-based games, which helps ease the students into the more logical frame of mind that is required before even writing their first lines of code. Many students find the idea of writing code to be intimidating at first, so this entry-point ensures that they find it approachable and will want to continue into more advanced topics. After playing some games, they will naturally have a desire to start designing their own.
This is where the sixth-grade class switches over to using Scratch programming, which uses logical blocks of “code” that students can drag-and-drop to easily design games or other visual experiences. It is a great tool because it allows students to bring out the logic they have in their minds, without typing skills being a barrier. After spending some time creating their own games, testing each others’ games, and learning about “Ludology” (game studies) the students will naturally want more complex tools to express themselves. The sixth-grade class ends with the absolute basics of the Python programming language. Seventh grade picks up where sixth left off with beginner to intermediate Python, with a focus on interactive games. A great source of inspiration would be the classic works of “interactive fiction” such as the Zork and Adventureland. The eighth-grade class focuses more on “interactive visual experiences” with the “p5.js” development tool, while relying on all of the programming skills covered in the previous levels. This JavaScript version of Processing is originally intended for visual artists to express themselves through code without having in-depth knowledge of software development. It also serves as an amazing final experience before moving on to the high school level.
There is intentional overlap between the eighth-grade programming elective and the ninth-grade E² (Engineering and Entrepreneurship) course. The JavaScript environment of p5.js is extremely similar to the Java environment for Processing. This Processing software allows students to create visual components for their Arduino microcontroller projects. Students who have gone through the programming electives have shown to be more comfortable with learning the software skills required in the early stages of the E² classes than their peers. Students who go on to take the high school computer science classes have even shown great ability to go above and beyond in the E² classes. Due to the growth of the high school program, this year actually marks the first time that non-E² students are taking computer science. It is completely possible for all students to find their own relationship with the content, either through the E² or CompSci courses.
The high school computer science courses are not our first level of offerings to students for programming, but all students can still take the class to receive a foundationary introduction. The class follows the content outlined in the Computer Science A AP exam, but only students who have a true passion for the content are advised to take it. I try to foster a relaxing environment for the students in an effort to alleviate the pressures during the crunch time of a project or lab. The class can easily become frustrating for some students when compared to other classes. For example, it is not exactly common for a history essay to just “stop working for no reason.” The highs, lows, successes, and constructive moments of the four current levels of CompSci find their way to temper the students, as they always come out stronger in the end.
Overall, students taking part in this continuum of classes have proven to gain a strong collection of skills. As a department, we have also opened the door to many decisions to switch to STEM-related college majors for our graduates. I have been extremely fortunate to be able to make such a positive change in the curricula of the school, and also to be a part of the Leffell School community. I can only hope that the program continues to grow at this amazing pace, in both population and fun times.