After the Exam
Many schools have three to four weeks of class after the AP Exams are administered. How do you keep students engaged in meaningful activities? Some colleagues share their ideas.
Student-Defined Project
After the AP Exam, students are generally ready to shift focus. Have your students develop their own final project and a rubric for grading it. Work with students to ensure that they are not reaching beyond the scope of their abilities in the time left in the course. Students are given free reign on what topic to choose; however, the project must reflect an area of computer science or engineering that they would like to learn more about. For example, students can write research papers on TCP/IP, build robots (you can write a grant to receive LEGO robotics kits), learn about 3-D graphics, work on fuzzy logic as a primitive AI for blackjack, and even do comparative book reading (like In Code
and Cryptonomicon
).
The variety of this assignment allows each student to focus on a particular topic of interest to them and keeps them motivated through the end of the course.
Group Project: The Amusement Park
This group project gives students the experience of working on a team to develop one project.
Ask your students to design the software for an amusement park using OOP. The members of each team of three determine the Attraction
class, a parent class for an amusement park attraction. It includes such data members as maximum number of riders, cost of tickets, number of tickets to use, number of attendants, cost of utilities, length of ride, riders per hour, hours per day, speed, height, etc.
Students create a client program and test methods for calculations such as daily cost, profit, etc. Each student then creates a specific attraction of their own that inherits the agreed-upon data members of the parent class. Each student makes a class that has an is-a
relationship to the Attraction
class. So the first student might create a FerrisWheel
class , the second a Merry_Go_Round
class, and the third a RollerCoaster
class. Each inherits the basic Attraction
class, plus has its own unique data members and methods. Interesting data members might include speed, number of turns and other factors, depending upon the attraction. Methods unique to the child class include calculating g-force, "puke factors," and daily profit. Students have a lot of fun making their classes more outrageous than the next, all the while using inheritance and concepts such as is-a
and has-a
.
Each team demonstrates their finished product, the class votes on their choice, and you get to cast the trump card vote.
End-of-Year Computer Science Games
Fun After the Exam
Here are two games you can set up for your students after the AP Exams.
Information Hiding
In this game, each student assumes the "identity" of an important concept, person, or event relevant to computer science. Create name tags for each student's new identity. Then tape one of these tags to each student's back, without them knowing who or what they are. By asking yes or no questions, each student must figure out his or her identity. Have the students rotate through a line so that they ask a different person each of their questions.
Sample name tags
- Charles Babbage: Born December 26, 1791, in St Mary's Newington, London. Died 1871. Invented difference machine and analytical engine.
- Alan Turing: Born June 23, 1912, in Paddington, London. Died June 7, 1954, by cyanide poisoning (suicide) in Wilmslow, Cheshire. Invented "Turing" machine and worked on breaking the Enigma code.
- Herman Hollerith: Born 1860. Died 1929. Invented information-processing method using punched cards for the 1890 census. His method processed census data for individuals by counting holes punched on cards. He started the Tabulating Machine Company, which eventually turned into the IBM Corporation.
- Thomas J. Watson, Sr.: Born February 17, 1874. Died June 19, 1956. Considered to be the founder of International Business Machines (IBM).
- MITS (micro instrumentation and telemetry) Altair computer: Created 1975. Early personal "computer."
- Admiral Grace Murray Hopper: Born December 9, 1906, in New York City. Died January 1, 1992, in Arlington, Virginia. Created COBOL compiler.
- Dennis Ritchie: Born September 9, 1941, in Bronxville, New York. Credited with creating the C language.
- Recursion
- OOP (object-oriented programming)
- FILO (first in, last out)
- Encapsulation
- Polymorphism
- Inheritance
- MBS (Marine Biology Simulation) dater fish
- Bill Gates: Born October 28, 1955, in Seattle. Founded Microsoft Corporation.
- Steve Jobs: Born February 24, 1955, near San Francisco. Founded Apple Corporation.
- Tim Berners-Lee: Born 1955 in London. Invented the World Wide Web.
- George Boole: Born 1815 in the English industrial town of Lincoln. Died 1864. In 1854 he published An Investigation into the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and Probabilities.
- Ada Augusta Byron: Born 1815. Died 1852 in London, England. Known as the Countess of Lovelace, the only legitimate child of the poet Lord Byron and his wife. Worked with Charles Babbage. She is sometimes called the first "computer programmer," though she wrote instructions but no actual code.
- The first computer bug: Moth that was found in a computer by Grace Hopper and labeled as the "first computer bug."
I Am, Who Is?
Divide the class into two groups, and ask each group to make up an "I Am, Who Is?" game for the other group to play. The “I Am, Who Is?” game works like this:
- Each section gets several index cards. Mark one card as the first to play.
- Each student writes a question on the front of the card in the form of "Who is...?" (Example: "Who is the access level of data in a parent class that allows that data to be available to a child class?").
- In fine print, the student writes the answer to this question on the same side as the question.
- Once all the questions are written, the students place their answers in the form of "I am..." (example: "I am the access level protected") on the back of another student's question card. They have to be sure the card marked first to play has the last answer on the back of that card. They have to avoid an infinite loop between question and answer. They also have to avoid duplicate answers. I let them fix these conditions if they occur.
- The students test the game by starting with the first card. As each question is read, the student with the answer responds and then asks the question on the flip side of that answer card. The game should end with the person asking the first question giving the last answer.
Give each student a topic for their questions to avoid duplication (sample topics: sorting algorithms, arithmetic operations, Boolean logic, string methods, Marine Biology Simulation, inheritance).
Small sample game: Each bullet below represents one card. On one side of the card is the "Who is?" question. On the other side is the "I am" answer. Mix up the cards before passing them out.
- First card: Start here with the "Who is?" side of the card—I am the number 2. Who is the condition that will end a recursive call?
- I am the base case. Who is passed to the Random constructor?
- I am a seed value. Who is true or false?
- I am true. Who is the sort that works by moving the largest elements to the end of the list?
- I am the selection sort. Who is the result of 2 % 3?