Systems Programming

CS 241, Spring 2014

Honors Section

The honors section of 241 consists of an independent development project. The project should demonstrate concepts that we learn in 241, such as: advanced use of memory; multiple threads or processes; or networking.

The topic must be approved by the course staff. You must submit a proposal, but may also want to chat with the course staff first. In past semesters, many students have written mobile phone apps, including news readers and games played on multiple phones over the network. While it is easiest if you use your own phone, we do have some Android phones available for loan for the semester. You may also propose a project which is not a mobile phone app.

You may work in a team of up to three people. If you have more than one person, your project proposal should describe specifically how each individual plans participate. In the end of semester demo, each of team member will have to demonstrate their contribution.

How to enroll in the honors section

If you would like to take the honors section, you should:

  1. Register for CS 296 section 41.
  2. By Friday, Feb 7th, 2014, submit a project proposal via email to the course staff (plain text or PDF only). The proposal should be at most half a page long, and describe: What you plan to build; How the project will use 241 concepts; What each team member will contribute; and a timeline of development milestones over the semester.
  3. Work on your project throughout the semester. The course staff is here to advise if you have questions. Please remember that this is an independent project; you won't be turning in weekly pieces so you need to be self-directed and manage your own time to make steady progress. A good grade at the end of the semester requires a working project with substantial contributions from each member. You may be requested to update your progress once or twice during the semester.
  4. Demo your project at the end of the semester. The demos must occur prior to the course final exam.


"A" level work is a working implementation of the main functionality of the project that you proposed, demonstrating concepts (e.g., networking, multithreading, etc.) that we learned in 241. In addition we expect each group member to be able to explain how the code works in order to demonstrate that that group member actively participated in the project.

Lower grades will be given proportional to the extent of effort and quality of results.

Project demo guidelines

Plan to prepare an 8-10 minute presentation: at most 5 minutes to demo your application, at most 5 minutes to explain how you implemented it. You can describe how you implemented it using a few presentation slides if you want, or by showing parts of the code. You should have the actual code with you, in a way that you can display it on the screen in a visible way (with a large enough font size), so that we can ask you questions about it. Each group member should speak part of the time and be prepared to answer questions about the project. Plan to bring your own laptop(s), phones, or other items you need to do the presentation. You'll be able to hook up to the projector with a VGA cable.