Once upon a time there was a 20-year-old who walked into a lab and saw robots wandering around a hall and couldn’t believe what she was seeing. That was me walking into the Artificial Intelligence Lab at MIT towards the end of the AI Winter of the 1990s. I remember using what I knew about Scheme to start working on a project in LISP and being intimidated by the knowledge of the people I was working with. Fast forward 25 years, I’m now amazed to see how far the field has come, and to see those robots in homes and at school.
Building upon deep and rich experiences in computer science, when our students start 11th grade, another beautiful stage of development becomes apparent. They’re more self-assured, their discourse is elevated to a new level, and their ability to tackle complex systems expands. Now is when we couple Engineering, Mathematics, and Computer Science together in our Artificial Intelligence classes. Students have been introduced to Artificial Intelligence topics in their computer science classes in Lower School and through electives like Self-Driving Cars, which prepare them for the topic of today's post, the capstone courses in AI.
In the Artificial Intelligence Research Lab our students learn concepts from the various fields of artificial intelligence, including practical exercises using graphics processing units (GPUs), and experimenting with parallel computing. We introduce them to topics in machine learning such as learning theory, data preparation, supervised and unsupervised learning, computer vision, parallel computing, and convolutional neural networks. Using various real-world applications focused on computer vision, our kids are introduced to topics about the theory and practical algorithms for machine learning using Python and libraries such as TensorFlow, Keras, and OpenCV and parallel computing technologies, such as the CUDA platform. While they are learning these technologies and working on smaller projects, we work across the curriculum in English class where they learn to write a funding proposal for their year-end project while reading about the history of Artificial Intelligence. And, as part of their projects, students learn how to use current technologies, such as Amazon Web Services (AWS), to store and manipulate their data sets. The course involved an AI Review Committee made of CTOs at AI companies, practicing professionals in AI, and an AI professor from George Mason University. The students presented to the committee at two points: 1) at the proposal stage for approval and funding and 2) project completion; an experience that provided real-world experience.
A second course, which we are piloting this year, is the Autonomous Cognitive Assistant Lab. Autonomous Cognitive Assistant is a machine learning and data science, college-level course that leverages the course curriculum developed at MIT's Beaver Works Center to implement audio, vision, and natural language processing projects. This fascinating course, which also uses Python, also teaches just-in-time math concepts such as linear algebra and Fourier transforms. What differentiates our classes from others that I have seen that introduce students to Artificial Intelligence is that our students develop their own code to implement their projects.
In both courses, students spend the second half of the year on their capstone project, where they are able to implement a project of their own. Using the engineering design process, they define a real-world problem to solve or address, then design and implement their solution. In addition to their implementation, students learn how to document a project proposal, document their analysis, conduct testing, and write a final report and poster that they use to present to an external audience and members of the school community.
The classes are open to juniors and seniors who have taken AP Computer Science, and when I watch the students present their work, I’m amazed at how far they have come from the young children who I met many years before. These cross-curricular projects bring together years of education in engineering, computer science, math, science, and English, with real-life lessons in project planning, communications, presentation, and problem solving. I can’t wait to hear from our graduates about the work they go on to do not only in college, but also when they enter the workforce. I’m thankful for the educators, Mr. Ryan, Ms. Emily, Mr. Johnny, and Ms. Anne, who have been willing to learn, experiment, and innovate with the kids in order to teach the current technologies of the field, as well as for the experts from both academia and industry who have donated their time to evaluate our students' proposals and presentations so that our future engineers and computer scientists have an opportunity to present their work and obtain authentic feedback.
What do you think about when you hear the word Engineer? Hopefully more than Dilbert! I think of creative and disciplined problem solvers. I’m still amazed to think that all of our fourth to eighth grade students have the opportunity to learn about this broad field every week for three hours per week, and I’m surprised at the level of work that our high-school students do in their engineering courses.
Almost seven years and hundreds of projects after we designed the engineering curriculum (read here about our vision), like the Engineering Design Process we teach, we continue to test, iterate, and enjoy the ride. We are fortunate that our engineering teachers have been educated as engineers, and bring what they learned in school and in industry to the classroom. Our engineering lab affords our students the opportunity to couple design with problem solving, creativity with physical creations, and fun with teamwork. We do this through a gradual progression of longer, more challenging projects that introduce new materials, teamwork skills, design thinking, and eventually integrate computing with engineering.
In 4th and 5th grades, students are introduced to various disciplines of engineering, which include mechanical, civil, electrical, aeronautical, environmental, chemical, industrial, ocean, aerospace, optical, and transportation projects. The science behind the particular engineering challenge is taught in a just-in-time lesson, before putting it to practice to work on the project. The projects tend to be three-week long projects that students work on individually or in pairs. They also work on a couple of slightly longer projects, including a multidisciplinary project, Leonardo’s Bridge, that brings to life what they are learning about in History.
In 6th and 7th grades, we add complexity by introducing a larger team project with four to five students on the project team. For students, this is the first time that they have had to work on a team this size and learning how to work together to achieve a common goal is a skill that we believe is important to their future. Students are also now able to work with new materials, such as wood and metal. These more complex projects are also now longer, taking two to three months. Students learn skills such as prototyping and how to make orthographic and isometric drawings. Projects include a chair, a walking robot, an underwater robot, a putt-putt boat, and a rocket car. Additionally, students are introduced to the concept of a client with an organizer project that is needed to “organize something a teacher has requested” at school. They learn how to interview their client (a teacher) in order to understand their requirements, then communicate throughout as they design, and eventually construct and test the organizer that will then be used by the teacher.
In 8th grade, we focus on a year-long mechatronics project - the electric guitar. Students start the year by learning computer-aided design (CAD) using Fusion 360. To learn about computer-aided manufacturing (CAM), they mill their projects using a CNC machine. Finally, they work on painting and finishing their projects. They practice these steps with smaller projects such as signs, desks, or coasters. If you are able to come by for a tour, check out the beautiful desks designed by our students in the past two years. Finally, they begin to work on the body of an electric guitar. After these have been designed and milled, we put it together with the neck of the guitar, and work on the electronics. By the end of the year our students have a working electric guitar designed and constructed by them that they can take home to rock with over the summer!
As our students enter the high-school years, we emphasize design and communication. Our students maintain engineering notebooks and learn how to complete and present a final poster of their project, where we invite members of the community to their presentations. Our 9th and 10th grade engineering classes are centered around a theme and include Engineering Solar-Powered Outdoor Monitoring Systems, Engineering Design: The Amusement Park, and Engineering Design: Sea, Air, Earth. The high-school projects are multidisciplinary in that they are also run by microcontrollers and computers, such as Arduinos or Raspberry Pis.
Like computer science, we also have electives and clubs for those kids who just can’t get enough - even with a core class dedicated to engineering! We have a Mechanical Engineering: Battlebots class which ends in a competition that the school really gets into. If you’ve watched the show, you can imagine what it’s like. Our engineering clubs include the student-requested Nature Constructors, who engineer outdoor structures (thank you Mr. Johnny!), Drone Club, Rocketry Club, and the Inventor’s Club which is our very own Genius Hour.
I’d like to end this curriculum update with some of my fondest memories of the projects that they have worked on. The cardboard boats that 4th and 5th graders engineer are definitely a fan fave. I’m smiling as I think of the kids carrying their boats that have to hold them without sinking as they paddle across a lake. And then watching the ones who returned laughing and wet from the testing! Somehow, the underwater robots usually end with at least one wet student as well! The wooden go-kart can be credited with some of the fondest and funniest memories. We tackled a food computer/server, which was quite challenging and educational, especially when the cooling system started flooding and we couldn’t figure out how to get the water to stop. Yes - wet again! And the time that the rocket that was supposed to fly vertically “decided” to turn and take off horizontally? The kids definitely learned how not to design a rocket. We have missed showcasing our work at the Maker Faires and the USA Science and Engineering Fair, but you can see some of the videos from our past work. The Engineering Lab is like a second home to many of our kids, and I can’t think of our school without Engineering being part of our core. Thank you Mr. Nick, Mr. Ryan, and Mr. Johnny for bringing your excitement and expertise to our school.
I’ll be back next Tuesday to bring Computer Science and Engineering together with our 11th and 12th grade Artificial Intelligence classes.
Teaching Tuesday: What Does Computer Science as a Core-Curriculum Class Look Like in 4th - 8th Grades?
Teaching Tuesdays are back!
I can’t believe that it’s been seven years since our last check in. So much has happened in the six-and-a-half years since we opened our doors, both in the building and in the world. During this time, we grew our school from serving four grades (4th-7th) to serving nine grades (4th-12th), we were accredited and earned a STEM certification from Cognia, we graduated our first class last June, and tripled the student body. We have had an opportunity to work with inspiring people, serve great children, and partner with amazing families. Now that we graduated our first class, it is time to reflect and what better time than the new year (after digging out from last week’s snow)?
School is about learning and as adults in the school, I feel that I have learned as much as, if not more, than the kids. When I think back to my high-school years at TJ or my middle-school years at Lanier, I have a different appreciation for my teachers and administrators.
A parent from our community best put it recently when we were talking - we “live and breathe STEM.” And to me, Computer Science is the T in STEM. I start with CS, because along with Engineering, our dedication to both CS and Engineering (which I’ll cover in a future post) is integral to the fabric of our school. All of our 4th to 8th grade students takes Computer Science as a core class, receiving three hours of class time per week for five years, and our high-school students continue their study of Computer Science in high-school. We’re thankful for our amazing computer science teacher, Ms. Emily, who with Mr. Ryan has worked hard to continue to improve and evolve our curriculum.
So, what does this actually look like in practice? The short answer - Fun! Our children are technology natives, and this is a class that generally makes sense to kids that they enjoy. For the long answer - read on.
In 4th and 5th grades, we use block-based programming languages, so that the focus is on the logic, and not on the syntax. We have found that different kids like both working in the digital world, as well as in the physical world, so we integrate both into our courses by covering units in programming and developing where the output is on the screen, working on a unit in robotics, as well as working on a physical computing project. Our units include Computing Systems and Computer Literacy, Foundations of Computational Thinking, Introduction to Programming in Scratch, Robotics, and Physical Computing with Scratch.
In 6th grade, we begin the year with foundations of computer science where we learn about the history of computing and explore how computing has impacted other fields of study. We are introduced to Python and work with physical computing, such as Micro:bit or Raspberry Pi. This year we are applying what we’re learning to create an invention using their Micro:bits for their physical computing project. Finally, we’ll be revisiting Robotics with MicroPython this time. In 6th grade is where we are introduced to the field of data science.
Seventh grade is a fun year, where we go deeper on what we have learned in 4th - 6th grades. We continue to develop our computational thinking, and continue to explore impacts of computing, in addition to careers in the field of computer science. We explore networking, cybersecurity, and the internet in more detail, then return to applying our computation thinking skills while learning how to apply fundamental programming skills in Python. We go deeper into applications with Python with an introduction to Machine Learning. Finally, we spend the last third of the year first in software development using Agile Software Development practices to develop an app that addresses an education need, then ending the year with developing a game after introducing the PyGame library.
To round out our lower school curriculum, in 8th grade we continue to practice computational thinking, while considering cybersecurity. At this point, we introduce data structures and object-oriented programming, and then apply what we learned to store and analyze large data sets and create visualizations of the data. Finally, we end the year by building our own voice-driven assistant.
Everything I just wrote about is our core curriculum that all of our lower school students take. For kids who love to work with tech, we also have electives that meet weekly for 85 minutes that include Game Development with Roblox Studio, Computational Thinking w/ Minecraft, Introduction to Unity for Game Development, which are this year’s Lower School electives. And if that’s still not enough, we can’t forget our clubs, which this year include the System Administration club where they are building a server, and a Game Development club that will be kicking off in a couple of weeks where students will tinker with the Unreal Engine.
Students who complete our five years of computer science are ready for high-school, where many of our high-school students take AP Computer Science Principles and AP Computer Science A in their 9th and 10th grades, and study MATLAB as an elective.
How do I measure success? It can be in the traditional sense of seeing what our students can accomplish when they go to other settings in summer programs and the glowing feedback they receive. However, I want to see them applying what they learn at school. An example is from this year when we opened our school store. One of the school store team members decided to create an inventory and check out system for the store. It was implemented with the opening of the school store, and they’re now working on the second iteration which will incorporate student IDs with a credit balance at the store. This is what happens when education comes together with curiosity, initiative, and teamwork.
Come back next Tuesday and read about Artificial Intelligence at Ideaventions Academy, the subject of our next post, and what Computer Science looks like in 11th and 12th grades.
P.S., If you want to read what I wrote about in 2015, check out Computer Science for All. Looking back and rereading this, I’m so proud that we have accomplished what we set out to do!
Copyright © 2010-2022| 12340 Pinecrest Road, Reston, Virginia 20191 | 703-860-0211 | firstname.lastname@example.org | Tax ID 27-2420631 | CEEB Code 470033