Competence and character: pedagogical considerations for preparing students to be professionals

Our goal in teaching undergraduate computer science should not be merely to impart knowledge, but to develop professionals. This paper uses Aristotle's concept of intellectual virtues as a starting point for understanding the range of skills needed to build professional competence. The paper then discusses the use of various evaluation approaches (tests, projects, etc.) and classes policies to develop professional competence.