Lessons I am learning as a non-computer scientist teaching Computer Science.
Schools usually don’t have everything they need at their disposal. This was the case when my school decided that Computer Science needed to be a part of our curricular experience. However, it wasn’t computers or resources that were needed… it was a teacher… and when asked, I decided to step up even though I had no experience. What was I thinking?
I was thinking about the students.
It was clear that this was a need for our school and computer scientists are in short supply for their field of work, let alone readily abundant to teach high school students. Therefore, my journey as a computer science teacher started by filling a need for our students but quickly turned into an exploratory experience about how to teach about a field in which I had no experience.
Lesson #1: How to get started in a new field
When venturing into a foreign arena, I did just as anyone else would do… consult Google. Looking back, there is a level of personal ignorance associated with this action, as I utilized what could be considered the most commonly used product of computer science without even realizing it.
Nonetheless, my journey had begun. With a plethora of resources at my fingertips, I realized that I actually started in the wrong place. I went searching for a world without knowing what to look for.
Stepping back, I reconsidered my intent. In order to find what I was looking for I had to establish goals. I wanted to achieve from a personal proficiency to a system for instruction. With these now identified, I could revisit the plethora of options with a more focused eye.
I determined that the goals for the school should be…
- Create a K-12 curriculum that builds knowledge starting with the basics.
- Provide opportunities for students to not only learn, but also CREATE!
- Ensure students understood the tools they were using and the expectations associated with having knowledge of how they work.
With the goals identified, the new challenge was to find grade level appropriate resources that would engage me as a learner and also allow me to transpose the ideas into lessons for younger students.
Lesson #2: Find resources that work for you
As this post is not so much a review of resources as it is about what I learned, I can share that after much research, I used Python For Everybody (PY4E) and Code.org curriculums to help shape my instruction.
The PY4E curriculum allowed me to grasp the major concepts of coding with Python, which is taught at the middle school level. With accompanying videos, challenges, and even a PDF book, the site provided me with the basic information that I could turn into middle school lessons.
For my high school classes, Code.org provided incredible teacher resources and engaging activities for my high school students that help them see the information in action and learn how to manage the systems used to make actions occur. In line with other courses that are offered as electives at my school, the Code.org CS Discoveries and Principles courses allow me to offer an Introduction to Computer Science course and an Advanced Placement course for students that wanted a challenge and even possibly some college credit.
It is fair to note that there are a TON of other resources out there. However, for me, these two made the most sense based on the goals that I set.
Lesson #3: Most people can’t tell you what is taught in Computer Science
This is probably the most fascinating part of the journey. Mostly every parent at my school had a quality educational experience, capped by either an undergraduate or graduate degree. However, very few, have expertise in computer science, nor know what is covered in a CS class.
This makes it especially challenging to articulate the purpose and information taught within a course as it is unfamiliar to most families.
Unlike science, math, history, and english; parents and students are not sure what to expect from a Computer Science course because they did not have that course in school; which often breeds misconceptions.
In order to help everyone understand the breadth and depth of the course, it was easiest to define Computer Science as the study of…
- HOW a computer (and connected computers) work to complete a task.
- HOW software interacts with hardware to complete tasks
- WHAT types of data exist and get transferred in and between computers
- WHY we need to be mindful of our digital presence
Above all else, Computer Science is grounded in a process of abstraction and sequencing. In more simple terms, how you simplify tasks into steps to solve problems.
Lesson #4: Inform and Engage your audience
Referencing back to Lesson #3, with an audience that may not be as well versed in Computer Science, it is appropriate to share your goals and purposes. Guiding the conversation is imperative as the world of CS is quite vast. Without being open about your intentions, there is often the opportunity for misconception about what you are trying to achieve.
The curriculum that we constructed at my school is focused on process over product. We believe that developing a set of skills through CS content would give students the opportunity to apply those abilities to new genres of CS when they inevitably appear.
In order to share that vision, we make sure that CS is represented at all major curriculum functions, public engagements, on all campus tours, and in its own section on the school website.
While CS may never stand in the spotlight with the traditional academic subjects, ensuring that everyone knows of its existence is one very important part of effectively articulating your vision. We are working toward having a product showcase that will illustrate the breadth and depth of the curriculum; including projects from Kindergarten up through our Advanced Placement course for high schoolers.
Lesson #5: Admit when you don’t know
There are rarely times when I am concerned about admitting that I don’t know something. However, for some, this is quite a challenge.
When you are venturing out into a world that is far from your academic comfort-zone, there is always the desire to be seen as an “expert,” even if you know that you are not.
Frankly, the world of CS and technology are iterating so quickly that I would be hard pressed to assume ANYONE can perpetually be considered an expert.
There is always so much to learn that people can empathize with the fact that even as a teacher, you won’t have all the answers in a field like CS.
This lesson crosscuts all of my classes, regardless of the subject. I often enjoy admitting that I don’t know. This creates the opportunity to show students that even as an adult you won’t have all the answers. However, EVERYONE is capable of figuring them out. This harkens to the notion of a fixed vs. growth mindset, and demonstrates to students (and often parents), that there is perpetually the opportunity for self-improvement.
While I will admit that it is somewhat of a weird feeling not teaching a traditional high school science course for the first time in my career; however, the feelings I get taking on this new challenge are empowering.
Without any training in the field, I have been able to design a K-12 curriculum for my school that not only meets the needs of our students but challenges them to think beyond current possibility.
It is my responsibility to model this perspective and I accept and thrive on the challenge to push myself in a new arena, just as I would expect from all of my students.
My name is Andrew Julian and I am a teacher of science, computer science, and technology. I have a passion for considering how technology can positively impact a classroom and the education of all students.
Check out my website at andrewjohnjulian.com for more information.
For more about my classroom instruction or my foray into AR/VR development, you can read my Medium articles, a few of which are found below. Thanks!