ABSTRACT

One of the true joys of being a computer scientist is the opportunity to work at multiple levels of abstraction when solving a problem. Unfortunately in teaching, as in the development of programs, it is easy to become caught up in low-level pieces and day-to-day details, and people can miss the big picture. Details are important for the careful solution of problems, but students often wonder why these details are relevant. Communication skills are commonly identified as important skills for graduating computing students, but these skills may be forgotten within courses whose focus involves many low-level details. The products of computer science impact society, and some schools offer a course or two on social and ethical issues. Clearly, course scheduling cannot address all student interests and concerns, but students have reasonable expectations that they will be able to make steady progress toward their degrees once they start.