Showing posts with label Teaching Computer Science. Show all posts
Showing posts with label Teaching Computer Science. Show all posts

Monday, March 30, 2015

String Immutability - APCS A Deep Dive

Content has moved to CodeVA's Teacher's Lounge - latest post


http://www.supercs.net/2015/03/29/immutable-strings/



The String class can cause a lot of confusion for students as they first start working with code. We often introduce it early in the year, indeed it is hard to do many meaningful things without it. The problem is, as an example of a class data type, it can behave in some unusual ways...

Thursday, May 8, 2014

My Latest Project - CodeVA

So anyone that has spent more than five minutes with me in the past three months has heard an earful about our new project. CodeVA is a non-profit focused on bringing computer science education to students and teachers across Virginia.
CodeVA
Launching in summer 2014 CodeVA brings two initiatives:
  • Teacher Training
    • In partnership with Code.org CodeVA is working with four Virginiaschool districts to train new computer science teachers.
  • Summer Camps
    • To bring computer science to kids across central Virginia CodeVA is running five summer camps.


  

Thursday, May 1, 2014

What it Takes to Make a Computer Science Teacher


I've had this conversation 5 or 6 times over the last few months. Always with teachers, always centered around respect.

And mostly about computer science education.

So I'm going to go ahead and put this in writing. A good teacher can teach computer science. Not every computer scientist can teach.

I'm not just pulling this from thin air. For the last 5 years I've been deeply embedded in the process of training new computer science teachers. I ran a program of 30 new AP Computer Science programs across Virginia. Some teachers had programmed, some had not.

I also have a decade of experience running extracurricular programs in computer science. We've had some wonderful and knowledgeable volunteers.

I trained math and history teachers, business teachers, turfgrass teachers. And yes, turfgrasses a real subject.

So what does it take to make a good computer science teacher?

First and foremost is command of the classroom. Someone who can get kids engaged in great learning activities. Teaching is an art, one that has to be developed just like any other skill set.

But we can't stop there. Too many teachers have been thrown into computer science class rooms without the base knowledge they need in order to teach the subject.

This sets the teacher and students up for frustration and ultimately, failure. Its not that experienced teacher can't do computer science, it's that they don't know computer science.

Computer science is the only high school subject I know of where we take people who have never even taken a class in the subject and say to you gotta go teach this. Can you imagine a calculus or physics, or art teacher that had never taken the subject at college?

And in an era where are professional evaluations are very closely tied to student test scores, it's a wonder anybody would take that risk.

So what does it take to be a good computer science teacher?

The bottom line is content. With a good classroom teacher and solid curriculum you create a situation where a teacher can succeed, which is the base of all student success.

Tuesday, February 18, 2014

Recruiting for Computer Science - the AP Potential Report

For many high schools it is recruiting season. If you school has an AP program there is a little kown report, called the AP Readiness Potential, that can help you in attracting kids to your classes. This is an especially helpful way of identifying girls and other groups that may not already be taking your Computer Science classes.




Basically this report takes students' PSAT scores and predicts the AP tests they are statistically likely to score well on. It is based on a past correlation between past PSATs and AP exams.

While we do not yet have this for APCS Principles, since no AP tests have been given yet, we do have it for the current APCS class.

A new feature is teachers can now log in to see the reports. To access the report you will need an access code. You can get this code from the person in your building that coordinates the AP exams. I find that person often doesn't know about the report, or have any idea of how to find the code.

You can call to get your school's code. The number is 866-630-9305. You just have to identify yourself and your school.

The login for the site is here. You'll need an account for AP Central. Once you pull the report the site even has sample letters to send home to parents. I have found letters directly to parents to be a powerful way to attract kids to computer science.

Long term I am very curious to see how this test correlates for the new APCS Principles class. Since much of the assessment for this course will be written it will be interesting to see if a correlation with the writing section of the PSAT.

Wednesday, February 12, 2014

The Data Cake

Interesting read for the APCS Principles course on open data and the impact on research. The article is especially interesting in light of the Data Portfolio Task that asks students to find a publicly available data set as a part of their exploration.

And I know that it is now the Investigate Performance Task, not the Data PT, but to be honest my brain is full these days and cannot take all these name changes.

There is also this: "we must redress the dominance of knowledge generated in the global North". Very interesting to think of covering the Data and Global Impacts together in this way. This would make a great class discussion and journal topic.



I may also use the graphic as a writing prompt. One of the goals I have for the students is to articulate the difference between data and information.

Saturday, February 8, 2014

Posters for Computer Science - Careers that use Computer Science

These posters are from the Otronicon Science Center in Orlando, FL. Forget Harry Potter World, we are definitely putting that on the list for our next Florida trip. I am sure this kids won't mind.

Anyhoo, I am fascinated that a science museum has done such a thorough job of including computational thinking and computer science topics in their materials.



Anyway, the posters are free to print and use. They include writing, architecture, linguistics - some fields we don't traditionally associate with computer science.

Some of the other pages have some good resources too. The Medical Sim City page (tagged: See how simulation technology is being used to create better doctors, nurses and other medical professionals) looks like it has some interesting things to help cover the modeling and simulation info in the APCS Principles course, for example.

Friday, December 13, 2013

Untangling the CS Principles Learning Objectives

Struggling with the CS Principles Learning Objectives? Try them as Flashcards: CS Principles flashcards - Learning Objectives




One of the thing I have found most challenging in working with the APCS Principles Topic list over the last 3 years is the Learning Objectives themselves. None of them are all that hard in of themselves, but trying to make sure I am covering everything can sometimes be overwhelming. Unlike the existing APCS course, the topic list does not really suggest any particular sequence, so trying to make sure everything has been covered at AP depth can be a challenge.

Here are the LO's in Flashcard format if you would like to print them out. This has been really helpful for me as I lesson plan to make sure everything is in there. Sometimes it is fun to draw a few cards randomly and try to come up with an activity to cover them. this has helped with some out of the box combinations of topics.

**Note - these are the learning objectives as of Dec 2013. If you are reading this more than 6 months from now you should make sure they still align with the LO's. The course is still in pilot phase and the LO's are subject to adjustment as Collegeboard gets ready for the launch of the new course in 2016-17.

Collegeboard's AP CS Principles site

Tuesday, December 10, 2013

So, What is code?

Great video from PBS Off Book, a series that explores art in the digital world

Is Code the Most Important Language in the World?


 

It does a great job of quickly describing what code is and then delving into some of the current issues in computer science. I am using it this week as a part of CS Education Week as a journal prompt for my students.

"It is hard to say what problems would be solved with a more diverse workforce."
- Adda Birnir, Co-Founder SkillCrush
 This is the driving force behind a lot of my own work lately. This moves is beyond just looking at diversity of the workplace, but really at how we solve problems as a society.

Inevitably the problems we solve are going to reflect the views and experiences of those solving them. At a deeper level though, the people with the ability to solve these problems through coding have the power to ultimately decide what problems get solutions.

Computer Science is predominantly white and Asian males. In the 2010 census this group made up roughly 38% of the overall population in the United States. That means that 62% of the population is outside of this circle of influence. In essence their problems are outside the view of the people solving humanities problems.

I highly recommend the series in general. The videos are very engaging, short, and show a great diversity of people working with technology.

Some other topics they cover:

And in case you are using writing in your cs classes here's a full list of the Journal prompts I use in CS Principles.

Wednesday, October 23, 2013

CS Principles Pilot Curriculum - an Update

Whew, busy!

This year has been crazy, but the good kind. Over the past two days I have updated my list of what we are doing in the CS Principles Pilot so far this year. If you are interested, the list is here: http://supercs.net

Etsy shop that was selling the flashcards


Let me tell you, we've been busy. Digging into what we have covered so far gives me hope we are really moving towards something.

A side note, the Performance Tasks (nee Portfolio Assessments) have just been updated. If you are in any way working on the CS Principles project you ought to take a look. Of special interest is the new Impact PT that replaces the Internet one from the past two years.

A technique I am using this year goes back to my days as a debater. I have printed out all of the Learning Objectives on flash cards. Each time I lesson plan on a particular topic I pull the cards that relate. This approach has really let me see the connections in the topics as we go through the material, and has sparked some new ideas for journal topics.

If there is any interest let me know and I can try to post the flash cards as a pdf for folks to print out.

Thursday, October 17, 2013

AP Computer Science Report - Virginia is for (some) Coders


The AP data is out for 2013. Some great increased nationwide. AP Computer Science went from 26,103 to 31,117 total exams given, a 19% increase. This was the highest increase out of all of the subject areas. But keep in mind AP Calculus had 282,814 exams last year, so we have a ways to go.





Virginia had 1655 AP Computer Science  exams with a mean score of 3.12. Last year we had 1430 tests with an average of 2.98. Over the past 5 years there has been an 81% increase in the number of APCS exams given. This year was also the highest mean score for the past five years, so some great progress has been made.

According to the state report card 67,805 students took AP exams in 2013 (data here). So teh APCS exam accounted for about 2.5% of the overall number of AP exams given.

Which all sounds great, until you start to look a little deeper.

When you look, in 2013 the number of black students taking the exam was 3. Our max in the past 5 years was 6. Six. That year my personal AP class was 1/3 of those African American students.

Demographically Virginia is about 20% black. With roughly 375,502 students enrolled in Virginia public high schools last year (2013 enrollment data) that means we have roughly 75,000 African American students at the high school level, and 3 took the AP Computer Science exam.


If we randomly assigned students electives we would have fared better.

And you can look at any of the subgroups and see the same trend. For instance for the 2013 exam 25% of the 8 Hispanic students to take the exam sat in my classroom.

Now I'm a big believer at starting with data and getting to the stories underneath. The bottom line in Virginia is access.

For instance, Richmond city schools, a predominantly African American school district has no computer science classes. None, zippo, zilch.

This is not about diversity for diversity's sake. This means these kids do not have access to jobs. According to the Bureau of Labor and Statistics Virginia is 4th in the nation for jobs in this area, but 12th population wise. This means we have the highest concentration of jobs nationwide in computer science. Washington DC and Virginia rank #1 and 2 for salary nationwide - so these great jobs cannot be filled by huge numbers of our children. A child sitting in Kindergarten in Richmond City Schools today may never even know this field exists, literally blocks from the front door of their school

And at a deeper level, computer science is the tool we use to solve human problems. Being the person holding the tool means you get to decide what is a problem and what gets a solution. These numbers mean these communities do not get to participate.

So to change the data, we have to change the stories. Every high school in the state needs computer science classes that are rigorous and relevant for its students. That means trained teachers and a working curriculum. Kids and parents need to know that this is an option for them, that they can create using this tool. They need to be able to tell their stories as we build the future.

A few things to put Virginia in Context:

  • Virginia has not adopted common core
  • Our K-12 end of course tests are called the SOLs (Standards of Learning). Yes, really
  • AP Computer Science counts as a 4th math credit here, but only if you are going for an advanced diploma, and you have passed Alg II. we're working on it
  • We are a Commonwealth, which means our school systems are driven at the local level, not by top down policy and curriculum from the state.
  • Out legislature meets either 4 or 6 weeks a year, that's it. 



Wednesday, October 16, 2013

How to Teach the Internet - Don't

Today my Computer Science Principles classes are starting Unit 2: The Internet Unplugged.

So rather than a terrible exciting lecture on the structure of the Internet - translation "Here's what I think you should care about" - we started with questions.

Telegraph Lines


They were asked to write their own definition of the Internet, and share at least three questions they have about it.

Really, we all use it daily, so we should all have our own working understanding of what it is. By starting with their understanding I can see where we need to add information and what the emphasis should be.

The questions help me plan our activities. By the end of the chapter I want them to understand that the Internet is a physical thing, and be able to describe how it works. I want them understanding how content is posted and to discuss the implications ethically of its content. I want them to know a little HTML and CSS and have the confidence to look up what they need.

But first, I want them thinking.

Questions they asked:
  • How is it possible that the internet can be censored in some countries?
  • Who owns the internet?
  • Who made the internet?
  • How does it actually work?
  • Why was it originally created?
  • When did personal computers have access to it?
  • Who owns data on the internet?
  • Why is internet copyright so important?
  • How hard is it to break the internet?
Right now some of my favorites are Who owns the internet? and  How is it possible that the internet can be censored in some countries? 

Frankly we could start by investigating those two things and cover everything we need to know.

Bookshelf:

Some Lessons We'll do:

Tuesday, October 8, 2013

Big Ideas Roundup

My AP CS Principles classes are finishing up Unit 1: Computers in Society.

So far we have covered hardware, from the basics of the CPU to the machine instruction cycle. They have learned binary and hexadecimal and are finishing up

Along the way they have worked together, written, and yet not written a single line of code.

IBM Wild Ducks


Odd for a programming class?

Turns out, what I originally did to keep myself from creating "just another coding class" ended up being a good decision. I have students ranging from absolute beginners to kids that have taken APCS or IBCS.

And anyone that has taught computer science knows that can be a recipe for disaster. The more experienced kids show off, intimidating the newbies, especially those that do not self identify as "good at computers". Most of this material is new to all of the kids, so no one has an advantage, other than working hard.

This also establishes that in this room, everyone has an opinion that counts, we work together and respect where we are int eh learning process.

So today we are finishing up Unit 1. My goal is to summarize what we have done and to start to look at the big ideas (Creativity, Abstraction, Data, Algorithms, Programming, Internet, Impact).


  • Fast Start: Based on everything we have talked about, what do you think computer science is? How would you explain it to someone else?
  • Finish working on their computer history projects
  • Watch this video from IBM: http://www-03.ibm.com/ibm/history/ibm100/us/en/
  • Whole Group Discussion - what is computer science
  • Poster - do a mind map with computer science  in the middle and the seven big ideas around the outside.
  • Test Review (still gotta grade, you know)



Monday, September 23, 2013

Binary Flippy Do - How To

Today in AP Computer Science Principles we made the Analog Binary Calculator. We have been working up towards binary. I do not start them with the big explanation of This Is Binary.

Instead I do a series of puzzles as warm ups and exit tickets for the week or so before the actual lesson. That way by the time we get to full scale binary they have had some positive experiences and built their own understanding of how binary works.

(Why do I even do Binary? Here you go)

So for example I show them a picture of two light switches and point out they can either be on or off. Working with a partner they have to figure out how many numbers they can store using the light switches. What if we add a third switch, how many then? Without listing all the combinations can you predict how many numbers you could represent with 4 switches? This makes a great warm up activity.

The great thing about the flippy do is it is super easy to translate numbers back and forth. My stronger math kids pick up the number theory behind it quickly, while my weaker math students are successful so they will stick with it rather than tuning out.

If you also cover the full two's comp representation it is also an incredibly easy way to teach the steps.



Materials:
  • Index cards - 4x6 or larger
  • Markers
  • Scissors 
  • Rulers - helpful, but not necessary


Steps:

First you fold up the bottom 1/4, draw 8 columns, and cut the bottom flippy things like this:

Can you tell this is my white board?

Second, you label the powers of two. Then put 1's on the back of the flaps and zeros underneath as shown:



Then I have them do a few puzzles:
  • How may ways can you represent 13? 3? 15?
  • Count from 0 to 13. Any pattern with even/odd numbers?
  • What is the largest number this can store?
  • What is 01111111? 00111111? 00011111? - what is the pattern here?
The point here is, if I just tell them that there is only one way to make any base ten number in binary it goes in one ear and out the other. Snore.

If instead they are doing a puzzle, and after a few realize THEMSELVES that there is only one combo per number, they internalize that at a different level. They don't forget it.


After all this we do the algorithm to change from binary to base ten and back. The best part is when the kid in the back, the one that hates math, tells their neighbor "Hey, I actually get this".

Friday, September 6, 2013

The Last Generation

We just started back to school on Tuesday. We watched the code.org video and had a class discussion about changes brought by computer science.



The fascinating thing is this group of teens is the last to remember BEFORE the internet.

Seriously, find a teenager and ask if they remember the first time they went online. My own 5th and 7th graders can't, the Internet has just always been there. My students, just a few years older can remember a before and after.

I am really intrigued by this.  Such an odd moment. 

So I am curious, when did you first go online?

Thursday, August 22, 2013

Our Regularly Scheduled Program

I am gearing up for the coming school year. Kids report back the day after Labor Day.

While searching for some videos to start off the year I found this gem: Rear Admiral Grace Hopper on David Letterman



Seriously worth a look. She gives a great explanation of nano seconds, and as always is absolutely charming.

Wednesday, July 31, 2013

Makerbot Lecture - 3D Printing with David Wells



One of the nice things about all this crazy travel this summer is I have gotten to do and see some things that are just not available in Richmond, VA. Last night I got to go to the Makerbot store in NYC to hear a talk about 3-D Printing and Maker spaces.

3-D Printing Filament


The speaker was David Wells from the New York Hall of Science. He is the Manager of Creative Making & Learning - I know, best job title ever.

Last year my computer club's project was 3-D printing. They fund-raised and bought a PrintrBot tight at the end of the year. I am so excited to see where this takes us next year.

The presentation was a great overview of 3-D printing, some of the recent changes and how to incorporate it into maker spaces. One of the general themes was that engagement with museums tapers off as kids hit their teen years, and these maker spaces are a great way to bring them back in.

Several of the folks working at the Makerspace for the summer were there to show off what they were working on. They are part of Maker Corps Education program. They are officially called explainers, which I might borrow for when we do recruitment in the lab.

Oh, and if you are in the neighborhood NYSCI is the host of the Maker Faire NY this fall on Sept 21 - 22. If you haven't been to one you must go. Really - it's your homework. Find a Maker Faire near you and get to it. I got to do the one at the Henry Ford Museum last summer in Detroit and it was amazing.

Resources:


And if you need a story to help inspire you to the power of 3-D printing: 3-D Printer Brings Dexterity To Children With No Fingers.


Monday, July 22, 2013

Home - Mid Summer Roundup

I am home for about 5 days before my next trek up to New York to work on the AP Computer Science MOOC.

In the past week I traveled from NYC to Boston for the CSTA annual conference, then on to Las Vegas for the APCS Principles Pilot II training and the AP National Conference.

Vector River Map From Flowing Data


In other words, my brain is full, but full of good things.

Unless you have been wilderness camping for the last 6 months you may have noticed a few things going on in computer science education.

I'll be posting more details about all of these projects soon, but some highlights:
  • Code.org - http://www.code.org/  - There's the video, which everyone should see. They are also building up some great advocacy resources, worth a look. Plus, I got to have dinner with Hadi and Pat. So exciting to have incredible people committed to computer science education. They are a huge part of the interest in computer science education right now. 
  • Computer Science Education Week -  http://www.csedweek.org/ - Do you have your plans yet? Dec 8 - 14th, better get on it.
  • Expanding Computing Education Pathways - http://expandingcomputing.cs.umass.edu/ - "Alliance seeks to increase the number and diversity of students in the pipeline to computing and computing-intensive degrees by supporting state-level computing education reforms." I got to attend a great workshop from ECEP at CSTA National lest week - really exciting momentum. I am especially glad to hear more about the role of community colleges in preparing our kids.
  • Exploring Computer Science -  http://www.exploringcs.org/ - They are coming to Washington DC, and I am really hoping to attend a training in the next year. I got to do a PD workshop with them at CSTA, and hands down the best PD I have attended. One of those where you walk away going "Well, the last 16 years of my career have been nice, but now I know how to make it better."
  • Hour of Code -  http://www.csedweek.org/ - they are asking folks to organize to give beginners 1 hour of code for every one of the country's 55 million school children...ideas? Let me know!
  • http://sitwithme.org/ - "Sometimes you have to sit to take a stand. Sit With Me invites you to validate and recognize the important role women play in creating future technology by taking a small but symbolic action: sit in a red chair and share your story." 
Whew! I know I am forgetting things. It has been a jam-packed summer. Please drop me a line to tell me what is going on in your neck of the woods for computer science education. 

Sunday, June 16, 2013

Summer of Computer Science

The class of 2013 has graduated, which means summer vacation has finally started. I got hit with the flu this past week which has made the last week extra hectic.

Finally


Posts may be a bit sporadic this summer. I won't step foot in Virginia until mid July, and then only for three days:


Hope to see you at one of these - if you are there make sure to say hello. 

I  follow computer science stuff on Twitter - so drop me a line and let me know how your summer is going. We have so many things happening as a community right now, it is really exciting to see all the hard work so many people have put in through the years building a k-12 computer science presence really start to take off. Here's hoping big changes are coming - because every kid in the United States should have the opportunity to take a computer science class.




Monday, May 27, 2013

Shopping List - Painting Electric Circuits

This has gotten to be a bit of an obsession over the past few days. Using paint to create electric circuits.

Seriously, it is all I can think about. I am making a lot of  "this sweater is OK, but it would be awesomer with some LED light bulbs" statements that make my children hover between interest and a deep tween embarrassment that only mothers can induce.

It started with a CNN article on Pens that can be used to draw circuits. I know, great idea.



Except they are from the UK, and kind of pricey (12 pounds which is about $18 today). And according to my sources on twitter the conductivity isn't great once it is dried over long distances. That said the site has some nice classroom kits that include thumbtack batteries. There has been a hollow empty void in my life that is filled now that I know thumbtack batteries exist - you know what I mean?

Also according to the website these pens are available in Radio Shack, so good for those of us stateside.

Think Geek Conductive Paint

For about $30 you can get a 50ml tub of paint from Think Geek. I have visions of renumbering the computers in my lab using this ...possibilities are endless.

This appears to be the same company, so it is probably the same stuff that is in the pens, but it is a better price point for just the paint.

I also found a video describing how to make copper based conductive paint. Sounds fun, but given my overall free time...I might just head to Radio Shack.

MIT also has some resources listed:



One of the main reasons I am interested is the application for wearable electronics. I am curious to see if the paint can be used to attach conductive thread to the power source. I'll let you all know if it works.

Need more inspiration? Here is a video of interactive wallpaper made with conductive paint. It plays music.

We do some very simple circuits and logic gates in the APCS Principles class suing play-doh. The play-doh works well because it can be changed and experimented with very easily, but the stuff dries out so nothing can be taken home. This paint would make a nice extension, especially if they can make something to take home. Prototype in play-doh then paint for permanent.

Sunday, May 26, 2013

Make an Inside Out Computer

For the end of the year my AP students are working on projects. This year I left it very open ended, use anything in the lab and just make something awesome.


They can make with code or something physical. I have students doing everything from a scratch version of Doom to building a cell phone signal amplifier.

One of my favorites at this point is this - the Inside-Out Computer. The parts are all recycled from a couple of old 486s that were donated. Once we can find a non USB mouse the plan is for them to load Linux on it.
I'm pretty excited about having this in the lab next year when we need to teach hardware. 

I am particularly excited about this for next year when we go over computer hardware. Having a running computer while you point out all the various parts and pieces seems like it will be very helpful.

Basically they're attached all the parts to an old plastic crate using zip ties. The have booted it up several times and it works perfectly, except for the no mouse thing.

We have five weeks from the AP exam until the end of the school year, which is a lot of time to fill. In order to get grades on the books I give them a daily Ted Talk to watch and respond to on a discussion board. More on that later.

Update: Another student turned in their final project today. It is a bike with a chainsaw motor added to make a moped. Did all the welding themselves. I was kind of expecting a poster, then they rolled this in:


Amazing!