« NCLB Resulting in Serious Decreases in Many Subjects | Main | Introducing: Your Newest Members of the Board of Directors (Part I) »

First Day Activities

Every year this question is asked on the AP List Serv: What do I do on the first day?

I noticed that the question didn't come up this year, and I know that there are new teachers out there looking for first day activities to do with their classes.

As educators we want to engage our students right off the bat and show them that computer science is fun and interesting. When I talk to students about computer science and programming, I purposely avoid the current debate about how it is defined. Instead, I like to explain to my students that computer science is about being specific and solving problems in a linear and clearly defined fashion.

I also like to help them to understand that you cannot take anything for granted when giving instructions to the computer.

One of my favorite first day activities is the paper airplane building exercise. I pair the students in groups of two and give each person a sheet of paper. The rules are that only one student is allowed to talk, and the other needs to follow the directions they are given EXACTLY. I then sit the students back to back so that they cannot see each other. The student who is allowed to talk creates a paper airplane and talks through the process, while the student who is not allowed to talk follows along. It is fun to see if they come out with the same airplane at the end of the session.

After the paper airplanes are built, I engage students in a discussion about the process, asking them questions such as: "Does the order in which you gave the directions matter?", "What was the most difficult thing about not being able to talk?" and "Would it have been helpful to get feedback during the process about how you were progressing so far?" (Hint - this is a subtle reminder about writing programs in pieces and compiling as you go along rather than trying to do it all at once.) I then refer back to this activity throughout the year as a common experience in which I can frame other parts of the code - compile - run - refactor process.

What's your favorite first day activity? How do you hook your students in? How do you introduce the class? Leave a comment, a sentence, a link, or just a short experience here!

Leigh Ann Sudol
CSTA Communications Chair

Comments

I do something similar but for putting on and tying shoes but I first have them write down the instructions then pass the instructions to someone else then pair them up. It's funny watching them explain "Loop, swoop, and pull".

I was doing some research and found this paper that was presented at last years SIGCSE conference. It is entitled Food-First Computer Science: Starting the First Course Right with PB&J and gives good directions about how to start off either your first day, or your lesson about algorithms.

Enjoy!
The link to copy and paste into your browser is: http://delivery.acm.org/10.1145/1230000/1227440/p372-davis.pdf?key1=1227440&key2=8129658811&coll=ACM&dl=ACM&CFID=28378640&CFTOKEN=73035000

One of the cool interview questions I heard from a peer was along the lines of "if you were tasked with re-architecting the microwave, what are some things you would do differently?" This really got me thinking about how I use the device and how it relates to other devices in the process. The person I talked to had some really interesting thoughts about the other devices within the cooking process such as the refrigerator, and the fact that you actually have no idea how long food was cooled before cooking, what the cooling temperature was, how long your item has been out of the cooling environment before starting, etc. There is also an opportunity to introduce online services. Why are items cooked for "10-14" minutes? It should be possible to do a web call to the cloud and determine exactly how long to cook something based on your desired result (crispy crust, etc) and shared data from other kitchen devices.

This got me really excited about the possibilities of software improving items I use every day. A classroom solution based on this experience might include student workgroups each assigned with a common device such as the washing machine, alarm clock, etc. Ask the students to brainstorm how these devices could be improved and share with the class, then as each is discussed relate how their creations could work together in a master "smart home".

I break the class into small groups and have them write instructions for sorting 8 playing cards. The rules:
1. The cards start face down on the table
2. The instructions must be for only one person.
3. The person moving the cards can only have one card in each hand at any point (i.e. s/he can only look at the values of two cards)
4. The instructions can't require that the person remember the value of a card once they put it down. You can however use the space on the table however you like.

Then we share.

This works really well for me for a number of reasons:

1. If there are enough groups you'll usually see all of the n^2 sorting algorithms come out...on the first day! At least one group does selection-sort, another insertion-sort, another bubble-sort, and you even get crazy mixes, it's quite fascinating. This pays huge dividends down the line when you actually have to teach the sorts. Just harken back to day 1.

2. The students don't feel patronized. Sorting is a deep, but accessible problem. They haven't touched a computer in the class yet, but they can understand that a computer needs to process things as a series of steps and this exercise immediately gets to the depth of that, showing that sorting things is not just something a computer can "do." There are choices that have to be made, trade-offs to be considered. Students also immediately, innately, start asking good questions - "what if the list is already in order?" - "What's the 'worst' order it could be in?"

3. I usually have one group read their instructions to me (I'm the computer) and follow *EXACTLY* what they say to make the point about ambiguity in instructions.

4. Once the kids have struggled with this, you can demonstrate mergesort on a set of cards (I sometimes wait until later in the year) and it's like magic to them. They love it, and see immediately why/how it works. I'm sure many of them use it as a party trick.

Anyway, that's my first day activity. Enjoy.

Thanks, you have a great blog here! I'm definitely going to bookmark you!

I found a Autism App site. It pretty much covers tech. related topic.

Come and check it out if you get time.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)