“What would we like our children- the general public of the future—to learn about computer science in schools? We need to do away with the myth that computer science is about computers. Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools, it is about how we use them and what we find out when we do.”

- Michael R. Fellows and Ian Parberry, 1993

Its official, I’m teaching AP Computer Science Principles next year! I just finished the AP Computer Science Principles Training that UTeach CS put on in Dallas last week. I’m excited. The course is brand new from the College Board this year and UTeach CS’s curriculum is one of the only five approved. It’s also entirely project based, which is absolutely amazing for me as I go into my next year doubling my prep time by adding this new course.

The promise thus far by my administration is that I’ll be teaching five sections of geometry, one section of the AP CSP, and one section off. I’m most looking forward to the AP CSP section. You may not be aware, but CSP was created by the College Board for the express purpose of being an introduction to computer science for non majors. A stated goal was to lower the barrier to entry for historically underrepresented groups of people such as women and minorities. It’s incredibly rewarding to be able to introduce people who are uncomfortable with the field to computers in a lower pressure environment. The goal of my class will be exploratory in nature. Students should learn about the cool stuff you can do with computers.

The course is broken up into seven units over the year: Computational thinking, programming, data representation, digital media processing, big data, innovative technologies and ‘performance tasks.’ I’m most thrilled for the innovative technologies unit. According to the AP framework, students will ‘explore the current state of technology and its role in our everyday lives.’ I’ll be having students do independent research and present on different innovators in history and why they’re important to where we are now. Once students have examined the past, they’ll be looking towards the future. What innovators are out there right now? What technology is being worked on? What technology could use more focus and what would that technology look like? [This Post][http://waitbutwhy.com/2015/06/how-tesla-will-change-your-life.html] over at waitbutwhy.com is an excellent example of innovations happening now that goes in depth as to how we got here. While I don’t expect my students to be as research driven as the author of waitbutwhy, I do expect them to look at similar topics with the same ‘down the rabbit hole’ approach.

I really am floored about this opportunity to teach this subject. I was recently talking with some close friends and family about my progress in life. I’m exceptionally lucky to be exactly where I want to be professionally and educationally. I am in one of the few fields that supports continual learning about a broad range of subjects. What’s so awesome about this class is that it gives me an excuse to learn two new programming languages.

The above game is something quick and dirty that I made in the first 15 minutes of being exposed to the block bases programming language known as [Scratch][http://scratch.mit.edu]. Scratch is stupid cool It’s drag and drop programming. It’s impossible to have a syntax error; your code runs no matter what. It is a little basic though. I’m looking forward to using it to teach my eight year old nephew to code, but I’ll also be using it to introduce non-computer-sciencey 10th-12th graders to game creation. It’s a hook that will hopefully stick. One of the awesome things about going to an in-person training is that I got to interact with some pretty stellar teachers. Some of these teachers had been piloting the course for the last year, and they proved to be an invaluable resources. One such piloting teacher taught the CSP and CSA classes in the same room during the same period. He loves Scratch and his kids do too. He actually credits the number of students signed up for CSP next year with how much fun his CSP students had last year with Scratch. His CSA students were jealous of the CSP students and the games they got to create. It’s just so easy to make a scorable game in Scratch.

After the introduction with scratch, my class will continue on to Processing. Processing is a visually oriented programming language that consists of a subset of simplified Java. As much as I hate Java, Processing looks like an excellent choice for these students. I’m vaguely familiar with the language as it closely resembles the Arduino programming language, and it is incredibly easy to read and write. Everything you do in Processing is tied to a digital canvas, making it a lot easier for students to interact with. They worry less about abstraction and more about drawing. It’s simple to operate on pixels in an image. For example, the image above this paragraph was created by operating on two pictures in processing. It’s also worth noting that you can create a Pong game in Processing in about 50 lines of code.

The final bit of programming I’ll be teaching is python. My plan thus far is to incorporate my favorite programming language just after the AP Test at the end of the year. I’m still playing it loose though. I might try to convince the engineering teachers at my school that their department needs to bulk purchase Arduinos, in which case, the last little bit after the AP examine would definitely be focused on Arduinos because they rule.

UTeach CS put on a great training and I haven’t been this excited to teach a class basically ever. The most valuable part of the training was the other teachers. Computer Science teachers are a pretty tight knit group and it is rewarding to be joining their ranks.

Thanks for reading about what I’m doing next year!

Stay Frosty,

Mr. Ledbetter

Got any questions comments or concerns about this week’s blog post? Please shoot me an email and I’ll get back to you… Maybe!