CS50 AP Newsletter — December 2016

Erin Carvalho

Erin Carvalho here again. This AP Newsletter is going to focus on our two biggest events of the semester, the Hackathon and the CS50 Fair. We will take you behind the scenes so to speak to help you plan your own versions of these events. Hopefully by this time in the semester most of you are wrapping up the Explore Task, the first of the two performance tasks mandated by the College Board. For more information on how the tasks are graded and some sample responses you can visit their website.


The Hackathon is by far the longest event we hold here at Harvard, and because of this, it requires a lot of planning and preparation. Our event is 12 hours, but yours won’t need to be nearly that long. It is a time for students to work on projects or problem sets in a collaborative setting. The final project is meant to give students the chance to synthesize and expand on what they’ve learned during the course. At the high school level, the Hackathon can be a chance for students to dive deeper into the AP exam’s Create Task. It is also an opportunity to publicize your CS50 AP class and promote campus-wide excitement for your student’s final projects, which, once completed, can be showcased at a CS50 Fair, which we’ll talk about later.

First up is publicity. Gauge interest via survey and collect RSVPs a few weeks before the event. Try opening up the event up to the broader school community who can attend as volunteers. Ask local mom and pop businesses for some problems that could be solved with a little computer science expertise. This allows students take further ownership of their projects and have a “real-world” impact. This could also help you accumulate some sponsors for your CS50 Hackathon and Fair.

Once you have the people, you will need to think about feeding them. Most of the money goes towards food. Reach out to local potential sponsors early, and stay in touch often! In the past, teachers have had success soliciting free or discounted signage, shirts, and food from local companies. Solving some tech problems from potential sponsors could be a great way to get some food donated. Ask parents too! You’d be surprised how many connections students and their parents have in the community. Depending on how strict your school is on fundraising it might be worth it to have students put on a car wash or bake sale to get some funds and start promoting the fair, where all their projects will be showcased.

So far we have our attendees and funding covered, let’s talk venue. Decide on a space early on. A gym-like area with lots of open space often works well. Take note of how much signage you’ll need to fill the space. Signage should direct students to:

  • Sign-in when they show up.
  • Bathrooms.
  • Food options.
  • Other rooms that are part of the event.

If access to the building is secured, send over a guest list ahead of time, for access. Decide on table layout before setting up and figure out how to distribute power cords through out the space. Contact your school’s grounds keepers or the like to have them set up power so as not to short circuit the venue. Also make note to talk to network folks to ensure there’ll be sufficient internet bandwidth during the event.

Tables should accommodate groups of size one, two, and three. It’s nice to disperse tables throughout each room you use (not just along edges). In adjacent room have a staff/chaperone/volunteer area that students are not allowed in. Everyone needs their space to breathe! Make sure to print out some Staff Only signs for the doors. Run a photo loop from the year on a display screen. This lets students remember how far they’ve come.

The day before the event you’ll want to transport all nonperishable items, like candy, tables, signage, and any additional items that can stay in the venue over night. Get a zip van or Uhaul van for 48 hours and make sure to rent one early, as it’s hard to get one for two days on short notice. We recommend 48 hours so that you can use the van to shop for food/beverages two days before and then transport it to the venue the day before. You’ll probably want to bring everything from wherever you were storing it to the venue the afternoon before to expedite setup on the day of.

To reduce headache, you’ll want a list of volunteers, their phone numbers, and any roles you’ve assigned them. This way you’ll know exactly who to call if something goes wrong. We here at CS50 open a slack channel during the Hackathon and invite all participants to jump on as well. This way we can make announcements without disrupting students’ workflow. Students will be collaborating at this event to work through bugs, so make sure you define the extent in which you want them to collaborate and expose them to some platforms for doing so such as collaborator mode in the IDE and Github.

Ordering food can be tricky if this is your first Hackathon, but allow us to share some insight to how we order food. In terms of meals, we order two dinners (our event is 12 hours after all). First dinner is burritos, then we bring out veggie platters, second dinner is pizza, lastly is some fruit platters. Throughout the event we leave out candy (chocolate and non-chocolate), sodas, coffee, and water. We use small plates, so that students are forced to take smaller amounts at a time. Keeping portion size smaller tends to reduce waste. Here are some portion sizes that we found helpful:


1 / attendees (cut these in half)
We usually order 45% chicken, 25% carnitas, 10% veggie, 10% chorizo and some gluten free burritos.

Veggie Platters

1 platter / 20–30 attendees (This might be a lower number for high school students)


3 / attendee (ask Dominoes about corporate pricing)
We usually order 45% cheese, 25% pepperoni, 10% buffalo, 10% green peppers and mushrooms and some gluten free pizzas.


1–2 / attendee


5 pieces / attendee (50% chocolate and 50% non-chocolate)


2 / attendee (we’ve noticed that this number has decreased significantly over the past few year so maybe slightly less than this)


1 jug (of the water cooler variety) / 35 attendees — this was for all 12 hours of our event

Again since your event will likely be smaller in size and shorter in time, it might be best to pick one of the meal options, one of the snack options in addition to drinks. Don’t forget about paper goods make sure there are ample cups, plates, utensils and napkins and of course some dispensers for the water jugs mentioned above. Make sure there are lots of trash cans around food and drink areas. Have a volunteer monitor water levels and snack tables to replenish as necessary.

If you’re planning on giving out shirts as swag, have attendees fill out a Google Form or the like to collect sizes. You could also ask sponsors if they have anything worth donating for a giveaway. We’ve also found it useful to have these things on hand:

  • Tablecloths for food, candy, EMS, and checkin tables.
  • Black sharpies for name tags and last minute signs
  • Name tags are adhesive, print 15% extra than expected attendees (printed 2 days in advance)
  • Bring one box of poster adhesives
  • Hang a sign above the check in table that tells people WHERE to check in. Use arrows, it leaves no wiggle room for silliness.
  • Arrive at venue 4 hours prior to start of Hackathon to make sure last minute problems can be addressed
  • Bring a box of garbage bags.

Here is a suggested timeline:

6 Months Before

  • Secure a date and location for the Hackathon.
  • Assemble a committee (not your full list of volunteers) who will help you with the event.
  • Hold a meeting where you go over the below, do further brainstorming, and you delegate responsibilities.

4 Months Before

  • Assign [preproposal form] to students to see what students plan to be working on during the event.
  • Show students some cool projects that have been done in the past at your own school or the CS50 youtube channel
  • Arrange for tables, power cords, banners, and decorations.

3 Months Before

  • Assign [proposal form].
  • Email local sponsors.
  • Think about what food you want, and reach out to these places for discounts.

1 Month Before

  • Begin social media push
  • Create Facebook Event
  • Have students take responsibilities for different aspects of the event
  • For example, some students should be in charge of food, others of posters, others of table setup, cleanup etc.
  • Check in with student projects or have them submit status reports
  • Send out a form to your school asking for RSVPs to the Hackathon. On the form, get dietary information.

2 Weeks Before

  • Make sure student committees are on track
  • Start a unit for students on how to collaborate effectively.
  • Hold in class time for students to get started on their projects.

1 Week Before

  • Call the place(s) you’re getting food from and place your orders. Ideally, have them deliver the night of.

Night Before

  • Ensure that all set up materials have arrived. If balloons are being used, blow them up.

Day Of

  • Set up location with tables/decorations/food/power cords.
  • Put out fires.


In CS50 at Harvard and Yale, students are required to submit a series of forms, including a pre-proposal, formal proposal, and status check on their final project. Eventually, students are required to write up documentation and record a 2 minute video showcasing their project. You are welcome to use any/all of the forms and wording.

The pre-proposal is an opportunity to urge students to begin thinking about what they would like to tackle for their project.

The proposal should ask students to:

  • Outline what they hope to achieve in their project
  • CS50 uses the terminology “good”, “better”, and “best” to ask students to clarify what they **will** accomplish, **think** they can accomplish, and **hope** to accomplish, respectively.
  • Consider what tools/skills they will need to learn
  • Decide whether they are working in groups, and if so, with who

NOTE: Students should not feel limited to the languages/APIs used in class. CS50 has seminars on various topics which may be applicable to the *Create Performance Task*, but it should also be emphasized that students are expected to find and use resources outside of the class, and that you as a teacher will not know all the answers.

Possible Lessons Plans:

  • Based on pre-proposals and comments, prepare lessons and sample code for common tasks, like logging a user, connecting to a database, or reading new documentation.
  • Examples of project management tools, whether software or a paper based system. See [Margaret Tanzosh’s post on using Scrum Boards](http://cs50xnestm.mywebcommunity.org/process.html).

Teacher Created Resources

Picking a Date

A fair at the high school level can be held during the school day, or in the evening/weekend, depending on your school’s policies. Holding a fair during the school day especially benefits younger students who come on field trips. Other students can visit the fair during breaks/lunch. This is a good time to recruit new students for next year.


Once the date for the fair has been decided, postcards can be sent to other local schools (including elementary and middle schools) as Save the Dates. This is a great field trip opportunity for younger students. Follow up with emails as well, which can be sent as reminders as the date approaches. Send a letter/email home to parents, inviting them as well. A sample letter by Angela Yake can be found here.

In addition, do not hesitate to invite other community members, from state officials to faculty from local universities. A sample invitation by Angela Yake is here. Feel free to post on CS50 AP Discuss as well.

Take full advantage of social media. If your school’s social media policies allow, create a Facebook event (or have students create one) so that students can invite their friends and family. The same applies for creating a hashtag so that students can share the event on social media.

CS50 uses a photobooth that allows students to take snapshots to be printed immediately, and then posts those pictures on Facebook after event so that students can tag themselves.

In addition, get photograph coverage for the event by having someone walk around during the fair. A great way to get a volunteer for this is to advertise for students interested in photography. If the photographs will be posted online/shared, make sure to have students complete the required release forms.


Secure a location as soon as the date has been decided. Possibilities include the school gym, cafeteria, auditorium, or even lobby.

Things to Consider

If students will be showcasing web-based final projects, they will need either WiFi, or wired connection. Make sure that students will have internet access on the day of the fair. Alternatively, the offline CS50 IDE can be used, but students will need to test to make sure everything still works. Keep in mind students may need access to outlets/extension cords.



Toshiba America Foundation Grants

There are many sources from which you can try to get funding (either monetary or in materials). Teachers have reported being able to get t-shirts (which say “I took CS50 schoolname”) for free or at a significant discount from their local t-shirt printing shop. We’ve also had success contacting local businesses, who provide sponsorship in exchange for publicity.

It’s also important to note that it is **entirely** possible to run a fair without outside funding. While photobooths and balloons can help to create a memorable experience, at its core, a CS50 fair is meant to show your community how much your students have achieved.



Tables should be set up so that students have a place to present. If you don’t have access to tables through your school, tables and tablecloths can be found from local party rental supply.


  • Balloons can help provide a festive atmosphere.
  • Posters/Banners are nice to have as well. CS50 uses echodgraphics, but there may be a better local alternative. If ordering, order 2 months early to avoid express shipping. Fliers with a list of student projects are handy to have at the fair, and can be a nice momento.


CS50 Fairs at Harvard and Yale involve giveaways of CS50 “swag” to encourage other students to come. This is completely optional, but if you have the resources, consider checking out our online store.


Enlist students/parents to help make and bring snacks. Consider the “messiness” factor, as it will probably be volunteers cleaning up after the fair is over. Cookies, popcorn, and pizza are all good options.

Water/drinks/cups are also important. CS50 uses Poland Springs water dispensers, and contacts Bill Gray, but there many better alternative contacts locally. Place the cups near the dispensers for easy refill.

Consider breakfast for students/volunteers helping to set up. Contact local grocers/bakeries.

NOTE: If you are having a large (greater than 150 students) fair, or combining with other schools, call your local warehouse club in advance. If you speak to a manager, they can pull all your items in advance for you, and you can just walk in, grab it, pay, and head out. You may want to rent a UHaul van to pick up food and drinks. Be sure to open only what you need. Unopened food can be returned and not paid for. Try to get any restocking fee for unused merchandise voided in writing when booking.


Music is incredibly powerful, and can help create a festive/lively atmosphere. If you can get speakers at your location, consider finding a Pop playlist (or even CS50’s playlist) to play music during the event.

Suggested Timeline

Adapt the below to fit the timeline of your school year

6 Months Before

  • Secure a date and location for the fair
  • Send out Save the Dates to local schools, public officials, and student families .

4 Months Before

  • Assign preproposal form
  • Arrange for tables/tablecloths/banners/decorations

3 Months Before

  • Assign proposal form
  • Email local sponsors

1 Month Before

  • Begin social media push
  • Create Facebook Event
  • Have students take responsibilities for different aspects of the event
  • For example, some students should be in charge of food, others of posters, others of table setup, cleanup etc
  • Check in with student projects or have them submit status reports

2 Weeks Before

  • Make sure student committees are on track

1 Week Before

  • Have students create individual posters summarizing their projects
  • Optionally, ask students to answer some questions on their posters, such as “greatest challenge” or “greatest accomplishment”
  • Organize how the student projects will be laid out on tables. A simple way is to label each table with a number, and then assign each project a number.

Night Before

  • Ensure that all set up materials have arrived. If balloons are being used, blow them up.
  • If you have access to your venue, have volunteers set up tables/banners/signage/non-perishables the night before
  • If you are using a photobooth, set that up.

2 Hours Before

  • Make sure volunteers have arrived
  • If tables etc have not been set up the night before, set them up now
  • Make sure people handling check-in know what they will be doing.

1 Hour Before

  • Begin check-in of students and direct them to their proper places
  • Make sure food/water is set up

15 Minutes Before

  • Start music
  • Make sure all volunteers in their place
  • Optional: Designate volunteers as greeters, who hand out pamphlets and direct people to proper areas
  • Make sure all students are at the correct table
  • Make sure photographer has arrived

Start Time

  • Walk around putting out fires (hopefully not literally)

1 Hour In

  • Make sure refreshments are still stocked and not running low.
  • Delegate this role

2 Hours In

  • Take some time to talk to parents/community members about your students!

After Completion

  • Ensure that all rental items are returned on time
  • Make sure volunteers have arrived to clean up
  • Post pictures on social media

If you or your class can make it, we open up the Harvard and Yale Fairs up to our CS50 AP classes. We’ll keep you posted on dates for next year’s Fair as the time gets closer. This year we had great turnout of AP classes including 13 schools at our Harvard Fair and 10 schools at our Yale Fair.

Two CS50 AP teachers, Greg Mittleider and Scott Tombleson, from across the world meet for the first time.

Hours of Code

This year we held Hours of Code concurrently with our CS50 Fair at Harvard. Our fair started at 11:30am and went until 4:30pm. From 12:00pm until 4:00pm we had an Hour of Code on the hour. Our teaching fellows led these sessions and built the curriculum themselves. Every hour had a less comfortable and a more comfortable section that people could sign up for online or walk into. Topics ranged from Scratch problems to intro Python to basic HTML and CSS.

If you plan on doing a similar session, solicit section leaders early. Allow them time to prepare material for the specific audience. If possible, find a smaller classroom with a projector near the location of the Fair to hold you Hour of Code. It is key to gauge interest for this early via a Google Form or Facebook event to spread the word. This way the hour or hours can be targeted to the appropriate audience.

Microsoft Skype in classrooms

If you haven’t noticed we have a new section on the homepage of our AP portal. Our friends at Microsoft have generously offered their time to Skype in with CS50 AP classes. Have students ask engineers questions about what they do or how they got involved in industry. As per the instructions on the portal, be sure to cc Nacho.

Endorsement and Workshop Signup

After much anticipation, CS50 AP has submitted the appropriate paperwork to be considered endorsed by the College Board. The College Board endorses curriculum and professional development delivered by a limited number of organizations to ensure that schools and teachers have high-quality options for implementing AP Computer Science Principles. To be considered we submitted our curriculum and professional development to undergo alignment review by the College Board. We hope that this will increase enrollment for future CS50 AP workshops and help to grow our program across the country. If you know anyone interested in teaching CS50 AP, direct them to cs50.ly/teach.

Questions, Comments, Thoughts?

If there are any questions at all about anything you’ve seen in this newsletter or anything else, please reach out — you can reach me and Doug by contacting ap@cs50.harvard.edu; this includes if you want to reach out to us because you’d like to get involved in the CS50 AP program for the first time… perhaps next school year!

This is CS50 AP 1617.

Like what you read? Give CS50 a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.