Abstract
We have developed an application-based approach to introductory courses in computer science. This approach follows an apprenticeship model of learning, where students begin by reading, studying, and extending programs written by experienced and expert programmers. Applications play a central role since programming constructs are motivated and introduced in the context of applications, not the other way around as is the tradition in most texts and courses. Under our applied approach, (1) students are able to learn from interesting real-world examples, (2) the synthesis of different programming constructs is supported using incremental examples, and (3) good design is stressed vis code and concept reuse. In this paper, we provide several examples of our method as well as pointers to all the material we have developed which is freely available electronically. The philosophy underlying this method transcends a particular programming language, but we present our examples using C++ since that is the language used in the CS 1 and CS 2 courses at Duke. This method has been used with equal success using ISETL at Dickinson.
- AB94 Owen Astrachan and Claire Bono. Using simulation in an objects-early approach to CS1 and CS2. In OOPSLA: Object Oriented Programming Systems, Languages, and Applications: Educator's Forum, October 1994. Portland, Oregon.Google Scholar
- AS85 Harold Abelson and Gerald Jay Sussman. Structure and Interpretation of Computer Programs. MIT Press, McGraw Hill Book Company, 1985. Google Scholar
Digital Library
- BSK94 Doug Baldwin, Greg Scragg, and Hans Koomen. A three-fold introduction to computer science. In The Papers of the Twenty- Fifth SIGCSE Technical Symposium on Computer Science Education, pages 290-294. ACM Press, March 1994. SIGCSE Bulletin V. 26N 1. Google Scholar
Digital Library
- Hoa89 C.A.R. Hoare. Essays in Computing Science. Prentice-Hall, 1989. (editor) C.B. Jones. Google Scholar
Digital Library
- HW94 Brian Harvey and Matthew Wright. Simply Scheme: Introducing Computer Science. MIT Press, 1994. Google Scholar
Digital Library
- KPW94 John C. Knight, Jane C. Prey, and Wm. A. Wulf. Undergraduate computer science education: A new curriculum and overview. In The Papers of the Twenty-Filth SIGCqE Technical Symposium on Computer Science Education, pages 155-159. ACM Press, March 1994. SIGCSE Bulletin V. 26 N 1. Google Scholar
Digital Library
- LC92 Marcia C. Linn and Michael J. Clancy. The case for case studies of programming problems. Communications of the A CM, 35(3):121-132, March 1992. Google Scholar
Digital Library
- Mer95 Rick Mercer. Computing Fundamentals with C++ Franklin, Beedle & Associates, 1995. Google Scholar
Digital Library
- Pat91 Richard E. Pattis. A Philosophy and Example of CS-1 Programming Projects. In The Papers of the Twenty-first SIGCSE Technical Symposium on Computer Science Education, pages 34-39. ACM Press, February 1991. SIGCSE Bulletin V. 23 N. 1. Google Scholar
Digital Library
- Pat93 Richard E. Pattis. The "procedures early" approach in CSI: A heresy. In The Papers of the Twenty-fourth SIGCSE Technical Symposium on Computer Science Education, pages 122-126. ACM Press, March 1993. SIGCSE Bulletin V. 25 N. 1. Google Scholar
Digital Library
- Rob93 Eric S. Roberts. Using C in CS1 evaluating the Stanford experience. In The Papers of the Twenty-Fourth Technical Symposium on Computer Science Education, pages 117-121. ACM Press, March 1993. SIGCSE Bulletin V. 25, N. 1. Google Scholar
Digital Library
- Rob95 Eric S. Roberts. The Art and Science of C. Addison-Wesley, 1995.Google Scholar
- SBK94 Greg Scragg, Doug Baldwin, and Hans Koomen. Computer science needs an insightbased curriculum. In The Papers of the Twenty-Fifth SIGCSE Technical Symposium on Computer Science Education, pages 150- 154. ACM Press, March 1994. SIGCSE Bulletin V. 26 N 1. Google Scholar
Digital Library
- SLC93 Patricia K. Schank, Marcia C. Linn, and Michael J. Clancy. Supporting Pascal programming with an on-line template libr~y and case studies. International Journal of Man-Machine Studies, 38(6):1031-1048, June 1993. Google Scholar
Digital Library
Index Terms
AAA and CS 1: the applied apprenticeship approach to CS 1
Recommendations
AAA and CS 1: the applied apprenticeship approach to CS 1
SIGCSE '95: Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science educationWe have developed an application-based approach to introductory courses in computer science. This approach follows an apprenticeship model of learning, where students begin by reading, studying, and extending programs written by experienced and expert ...
Teaching CS 1: object-first or algorithmic
Before object-oriented techniques were developed, procedural programming languages such as Pascal and C were taught in CS 1 courses. By virtue of the procedural paradigm, the focus of programming was on algorithms. Consequently, teaching methods ...







Comments