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.
Contributed by Leigh Ann Sudol
Fox Lane High School
Bedford, New York
After the AP Exam, students are generally ready to shift focus. I require students to develop their own final project and a rubric for grading it. I work together with students on outlining the project 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. I have had students do research papers on TCP/IP, build robots (I wrote a grant to receive three 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
Contributed by Pat Phillips
Craig High School
This group project gives students the experience of working on a team to develop one project.
Students are asked to design the software for an amusement park using OOP. The members of each team of three determine the parent class for an amusement park attraction. It includes such data members as max number of riders, cost of ticket, num of tickets to use, num of attendants, cost of utilities, length of ride, riders per hour, hours per day, speed, height, etc. You get the idea -- anything that would be common to all amusement park rides/attractions.
Students create a client program and test methods for calculations such as daily cost, profit, etc. In the next step each student 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 class for a Ferris wheel, the second a class for a merry-go-round, and the third a roller coaster. Each inherits the basic attraction class, plus has its own unique data members and methods. Interesting data members might include speed, numTurns, etc., 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. It is fun to watch. Each team demonstrates their finished product, the class votes on their choice, and I get to cast the trump card vote. We use Windows forms so they looked great, too, complete with pictures and user-friendly interface. The IDE for the project is Visual Studio.NET. This is now an absolute "must do" in my lesson collection.
End-of-Year Computer Science Games
Contributed by Ruth Hartsook
Extended Day School, Davidson County Schools
Lexington, North Carolina
Fun After the Exam
Here are two games you can set up for your students at the end of the academic year, after the AP Exams.
In this game each student assumes the "identity" of an important concept, person, or event relevant to computer science. I first create name tags for each student's new identity. Then I 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. I have the students rotate through a line such that they ask a different person each of their yes-or-no questions.
Sample name tags:
I Am, Who Is?
- 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.
- OOP (object-oriented programming)
- FILO (first in, last out)
- 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. You will find him at 1 Infinite Loop, Cupertino, California. 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 have two sections of computer science, so I ask each section to make up an "I Am, Who Is?" game for the other section to play. The game works like this:
I also 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).
- 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.
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?
If you would like to contribute suggestions for post-exam projects, please submit your ideas.