Tag Archives: Teaching Tools

Ciphers and Codes – Vol. II

Code and Ciphers and very interesting topics to discuss in a Computer Science.  There are many ciphers that can be used as Computer Science assignments.  I use Ciphers and Codes as a curricular thread throughout my AP A CS class to provide students with relevant reasons to learn more about Computer Science.   Ciphers and Codes have been around for a very long time and can be seen throughout history.

A very good book about Ciphers and Codes is “The Code Book” by Simon Singh.  Mike Scott, UT CS faculty member, discussed this book at the 2010 First Bytes Camp for CS Teachers.

I made an earlier post called Ciphers and Codes – Vol. I and provided some slides, a lab, and a lesson plan.  I include in the lesson plan a reference to a National Treasure special edition DVD that has a short video about Codes that has commentary by  Simon Singh.  It is a very good video to show students as it has some great cipher information although it can be a bit dull in a spot or two.

Timing out the cipher lessons in your class to correspond with the Social Studies classes is a great idea.  For example, find out when they are going to talk about the Zimmerman Telegram in U.S. History and teach a related Cipher lesson at the same time.  Everybody wins!

Cross-curricular projects work great to show students what they can do with Computer Skills and to provide relevance for why they need the skills.  These projects also provide a nice context for teaching Computer Science concepts.  Students tend to get a bit more excited about what they are learning if they realize what they will eventually do with it.

Teaching AP Concepts in Scratch – Vol I

The AP A exam tests a student’s ability to solve problems and formulate algorithms.  The exam is not focused exclusively on Java language syntax.  The exam does use Java as a testing vehicle, but students need to have a broader knowledge of Computer Science to score well on the exam.

Many times there is much focus in the AP A course on Java and Java syntax details that it is easy to forget that Computer Science is more than a language; it is using a Computer and some set of tools to solve problems.  Solving problems involves designing algorithms and finding ways to use computing power to create a solution that might otherwise not be possible or would not be nearly as efficient.

Can you teach the concepts tested on the AP A exam using Scratch?  The answer is clearly – YES!  Scratch enables students to solve problems and design algorithms which are two of the main components of the AP A Computer Science exam.

What do you use to design an algorithm?  Well, often simple and very basic algorithms include ifs, loops, and some type of list.  On the AP exam, there are typically several  free-response questions or components of questions that focus on using loops and ifs to manipulate a list of stuff,  be it numbers, words, or objects.

Can you use ifs and loops to process a list of stuff in Scratch?  Yes, you can.  Then, you can obviously teach AP level concepts using Scratch.  Wow, I am getting really good at answering my own questions.  I think I am channeling Walter Bishop again ( Fringe reference – Google Fringe ).

In my Pre-AP / intro Computer Science course, I use Scratch to teach students fundamental algorithmic design principles and problem solving skills.  The reason I use Scratch is that I can focus solely on the problems and prevent students from getting bogged down in the syntax details of a typical text-based language like Java.  For students new to Computer Science, the minute details of a typical language can be overwhelming at first which is one of the reasons the subject does not appeal to a large number of students.   Most students will eventually use Java , Python, or some other language that requires lots of typing in a text editor, but I would prefer they have a solid understanding of computing concepts first.

A typical AP A free-response problem that seems to show up on the exam every single year is one that involves accessing the items in a list one at a time to make some determination about the items.   Students may be looking for how many blue things there are, which one is the biggest, which one is the smallest, or making all of the red ones turn green.  Whatever they are doing, they need to know how to design a solution that will move from the first item to the last item as well as do some stuff with each item visited.   Teaching these concepts in Scratch enables the student to learn an important skill in a very friendly environment at a very early point in the year.  The skills they are learning are easier to learn because they are using Scratch to implement the algorithm and not dealing with loads of minute syntax details at the same time.  The skills being learned are fundamentally the same in Java as they are in Scratch.

Processing a list in Scratch and Java

Processing a list in Scratch and Java

Is it bad or “dumbing-down” to make learning Computer Science easier?  I just erased my original response and am now just going to provide the politically-correct version:  learrning does not have to be hard to be considered rigorous.  Actually, it is quite absurd to think that learning that is not painfully hard is not really learning.  A bad teaching approach can make even the easiest concept seem hard; a great teaching approach can make even the hardest concept seem easy.

CS News – What do sorts sounds like?

What do sorts sound like?

I do not know about you, but I think sorts are sexy!  Well, not really, but when you turn the sorts into music, then you might be getting my attention.  Most students do not find sorts all that exciting especially when they see them running in plain text – sorts in a black DOS window are not sexy!  Adding some music and animation should increase student interest as most all of them love videos and music.  Making them get up and act out the sorts helps as well.  Students learn in many different ways and often demonstrate intelligence in different ways and we need to do more to recognize this.  Howard Gardner came up with a whole mess of different intelligence types back in 1983.

CS News – Old People Like Scratch

Kids Teaching Scratch to Old Folks

This is a great article about the HILR program at Harvard.  Teenagers are teaching retirees how to write programs and create amazing stuff using Scratch.  I think this is awesome.  My sons, 6 and 9, both use Scratch and have attempted to teach every one of their friends how to “Crank Code in Scratch”.  It is very cool to see kids sharing their love for Comp Sci!
Disclaimer : I am using “Old Folks” and “Old People” in the title and link for the humor aspect only.  Retirees rock!

CS News – The Mobile App Revolution

Mobile App Revolution Will Change Your Life

I am not 100% sure that Cody has it totally right on this, but he does make some really good points.  Mobile apps are everywhere and smart phones are getting more and more popular.   My sons spend more time playing the game apps on my iPhone than I care to discuss.  I have a hard time even getting to use my phone as those dang kids always want to play Deadly Chickens or Goofy Gorillas or some other off the wall kids game.  They rarely play games on the computer anymore as they are always using my phone.
I have had my students work on iPhone games and Android games in the past and will continue that this year.  I am also going to utilize the Google App Inventor that was recently released a few weeks back.  The tie in to Scratch is nice and having an environment that is a bit simpler than Objective C will be nice.  The Android market is growing.  I also saw that DreamSpark has an option for Windows Mobile App creation now that could be useful as well.
We discussed Cody’s blog post today in my Computer Science classes and my students found it very interesting.  Many of them want to write apps for phones and quite a few decided to study Computer Science for that very reason.


DreamSpark Software

Alfred Thompson has a great blog post up about the DreamSpark program Microsoft offers to students for FREE!  Yes, indeed – I did say FREE!  I am not plugging Microsoft or on the payroll ( yet ), but I do think the program is great and hope more people learn about it.  My students love all of the different tools provided.   We hope to do more with it this year.

CS News – CMU Using Robots to Create CS Majors

CMU Using Robots to Create CS Majors

CMU is going to use the tremendous interest in robotics to get more students interested in Computer Science.  Many of us at the high school level have been doing this for years.  Students love working with robots due to the fact they can see the results of their ideas in action.  Robots move and act out the solutions to the problems that students create.  This is very engaging and exciting.  Elementary, middle, and high school students find robotics very engaging.  Using robotics also shows students another side of Computer Science that is very kinesthetic and social.  Two things that are often lacking in typical Computer Science classes.
Way to go CMU!

Google Android App Inventor

Google Android App Inventor – direct link to the Google Site
Article about the App Inventor

I am a big fan of Scratch and feel that it is a great educational tool that accommodates a large number of different learning styles.  Students gain confidence quickly with Scratch and learn tons of very important Computer Science concepts, including problem solving and algorithm development.  Scratch helps to make Computer Science accessible to many students that otherwise would not have given the discipline a go.

I really like that the Google Android App Inventor is built using a block programming structure similar to that of Scratch.  A student or child of any age will be able to use this tool.  I have two elementary age sons that both program using Scratch and I am looking forward to seeing the Android Apps they create.

The Google Android App Inventor will be another great tool to use in schools to help teach Computer Science.  Students will really enjoy that they can write useful applications that can run on their phones.

Here are a few articles that provide some compelling  justification for learning how to design and create Android Apps.


UIL Capital Conference

The University Interscholastic League will be hosting the 14th ANNUAL UIL CAPITAL CONFERENCE in Austin on the UT campus on July 9th and 10th.  This conference is designed to allow teachers and UIL Academic coordinators to discuss the UIL Academic Competitions and the rules, procedures, and contest of the individual competitions.   The conference will have a 2 day Java workshop and a PC^2 workshop.

If you are at the Capital Conference, stop by and chat as I will have a booth setup somewhere on site with information about  contest preparation materials and curriculum materials for the upcoming school year and UIL Academic season.  I will have some cool giveaways, sample materials, and demos running.

I will also be making a stop of at the Salt Lick for the world’s best barbecue.  If you are ever in the Austin area, you have to drive out to Driftwood and eat the original Salt Lick Location.  It is amazing stuff.

Follow up – The Capital Conference was great!  I saw lots of people and had a great time.  Thanks to all that stopped by to chat.   The BBQ at the Salt Lick was world class as usual.

UIL Capital Conference

UIL Capital Conference

AP Computer Science Summer Institute Report

My AP Summer Institute officially wrapped up on Thursday.  It was a great week and we covered lots of material and had fun doing it.

I had participants from all over with the furthest coming from Florida.  Last year, I had a participant from China which was cool as well.  I found out that some of my attendees this year had mad skills, including Senior Olympic archery, Vice-Presidential experience, Athletic Training, CIA experience, Social disturbia ( pretty sure that is the proper description and a pretty common comp sci diagnosis ), Home Improvement, Buried Treasure Hunting, Aerobics, Tennis, Fire Safety, and Computer Science.  I list Computer Science last as it just does not stack up against the rest.  How could Computer Science compete with Buried Treasure Hunting?

During the workshop, we spent a good deal of time discussing how you could and should use GridWorld all year long when teaching the AP A Course.  The case study is very dynamic and makes the course much more fun and engaging for the students.  It provides a nice game platform as well.

I also spent tons of time on the basic fundamentals of the AP A course, including ifs, loops, arrays, ArrayList, interfaces, abstract classes, and recursion, but not necessarily in a programming centric way.  I tried to present ways to teach the topics that makes them relevant and gives them context to which students can relate.  When teaching matrices and interfaces, I teach these topics in the context of Codes and Ciphers to show the students some of the ways Computer Science is used beyond just typing in braces and semi-colons.  It works well and I think the workshop participants found the approach effective as well.

Pre/AP was discussed and I included tools like Scratch, Alice, and Jeroo as pre/AP courses do not have to be taught using Java.  I spent time showing how you can use Scratch, Alice, and Jeroo to teach any AP level topic effectively.  We did some nice list processing in Scratch.

Scratch Pong Game

Scratch Pong Game

We also spent time discussing ways to broaden participation in Computer Science.  Participants visited the ACM Education Policy Committee site to see the resources posted there.

The workshop wrapped up with a look at the new AP Computer Science Principles course that is being developed.  Participants visited the AP Computer Science Principles site as well as Dan Garcia’s Full Frontal Nerdity site ( you have to love the name ) to see some of the resources posted for Dan’s new pilot AP CS course.

Lunch everyday was awesome!  I am very motivated by food that was a huge plus for sure.  It was a great time and I am sad it is over.

I should have taken some pics, but I didn’t so imagine you see people writing code and looking really excited when looking below this line.