University of Virginia, Department of Computer Science
CS655: Programming Languages, Spring 2001

Manifest: Thurday 19 April 2001

TodayProblem Set 4
24-26 AprilProject Presentations
Tuesday, 1 MayProject Report

Project Presentations
Tuesday, 24 April

Tom Sabanosh
Haiyong Wang
Yuangang Cai
Weilin Zhong

Thursday, 26 April

Michael Deighan
Elisabeth Strunk and Mike Tashbook
Dana Wortman
Chris Taylor
Brian Clarke

Each presentation will be strictly limited to thirteen minutes. If you plan ahead and use your time wisely, this is plenty of time.

The goal of almost all presentations is to get your audience interested enough in what you are talking about that they will want to learn more. For your project presentations, the goal is to make your audience understand and remember the most important idea from your project. You cannot expect to convey a lot of technical information (that's what the report is for), but you should be able to motivate your work and convince your audience why it is important and interesting, make it abundantly clear to your audience what you actually did, and explain one nugget that came out of it.

All talks should tell a story. Don't fall into the trap of giving a list.

All good stories:

Your project presentation (and nearly all other presentations you give!) should follow this model.

Project Reports

Your project reports are due May 1. You should turn in a paper printout of your report, and a URL for your report (which should be either .html or .pdf). I will read the paper you turn in, but make the web reports available from the course site.

Like talks, papers should also tell stories. Your reports should include substantial technical details, though.

The final report should motivate, describe and evaluate your work. You may organize your final report into sections as you see fit. It should include (but is not limited to):

There are no length constraints for the final report, but you should aim to be as concise, clear and organized as possible. The writing and presentation should be at a high quality. It would be highly worthwhile to exchange reports with a classmate and review each others reports before submitting them.

Some Intro to CS courses:

Throughout the history of computer science education, the structure of the introductory computer science course has been the subject of intense debate. Many strategies have been proposed over the years, most of which have strong proponents and equally strong detractors. Like the problem of selecting an implementation language, recommending a strategy for the introductory year of a computer science curriculum all too often takes on the character of a religious war that generates far more heat than light.

In the interest of promoting peace among the warring factions, the CC2001 Task Force has chosen not to recommend any single approach. The truth is that no ideal strategy has yet been found, and that every approach has strengths and weaknesses. Given the current state of the art in this area, we are convinced that no one-size-fits-all approach will succeed at all institutions. Because introductory programs differ so dramatically in their goals, structure, resources, and intended audience, we need a range of strategies that have been validated by practice. Moreover, we must encourage institutions and individual faculty members to continue experimentation in this area. Given a field that changes as rapidly as computer science, pedagogical innovation is necessary for continued success.

7.2 The role of programming

One of the most hotly debated questions in computer science education is the role of programming in the introductory curriculum. Throughout the history of the discipline, introductory computer science courses have focused primarily on the development of programming skills. The adoption of a programming-first introduction arises from a number of practical and historical factors, including the following:

The programming-first approach, however, has several shortcomings. The most commonly cited objections to this approach are the following:

From ACM Computing Curricula 2001.

CS 655 University of Virginia
Department of Computer Science
CS 655: Programming Languages
David Evans