ABSTRACT
The ACM/IEEE Guidelines (1990) for CS1/CS2 recommend that these classes present a variety of concepts from the field of computer science. This is a departure from the traditional method of presenting this course, a course that stressed primarily programming. This paper describes a CS1/CS2 curriculum that integrates the breadth-first approach coupled with programming assignments that reinforce concepts covered in this curriculum. Students still spend a majority of their effort on programming. However, the programs that they write represent concepts that are usually presented later in the curriculum. These programs include an SLR parser, a problem from the realm of scientific computation, a dynamic programming problem from formal language theory, an implementation of the relational algebra operators for querying relational databases, an example from the field of artificial intelligence, and a simple example of concurrent programming. This curriculum is no doubt daunting to some students, but it does succeed in integrating topics covered in a breadth-first curriculum with related programming assignments. Experience has shown that most students prefer this rigorous set of meaningful programming assignments to ones that are more contrived and trivial.
- ACM/IEEE-CS Joint Curriculum Task Force, (1990) Computing Curricula 1991, Tucker, Allen B. et al., ACM Press/IEEE Computer Society Press.Google Scholar
- Aho, Alfred V., Sethi, Ravi, and UUman, Jeffirey D. (1985) Compilers- Principles, Techniques, and Tools, Addison- Wesley. Google ScholarDigital Library
- Feldman, Michael B., and Koffman, Elliot B. (1993) Ada - Problem Solving and Program Design, Addison-Wesley. Google ScholarDigital Library
- Gehani, Narain (1983) Ada - An Advanced Introduction, Prentice-Hall. Google ScholarDigital Library
- Hayes, John P. (1986) Computer Architecture and Organization, McGraw-Hill. Google ScholarDigital Library
- Hopcroft, John E., and Ullman, Jeffrey D. (1979) introduction to Automata Theory, Languages, and Computation, Addison-Wesley. Google ScholarDigital Library
- Pattis, Richard E. (1994) "Teaching EBNF First in CSI", SIGCSE Bulletin, 26(1), 300-303. Google ScholarDigital Library
- Rich, Elaine (1983) Artificial Intelligence, McGraw-Hill. Google ScholarDigital Library
- Ullman, Jeffrey D. (1988) Database and Knowledge-Base Systems, Computer Science Press. Google ScholarDigital Library
Index Terms
- Integrating a breadth-first curriculum with relevant programming projects in CS1/CS2
Recommendations
Integrating a breadth-first curriculum with relevant programming projects in CS1/CS2
The ACM/IEEE Guidelines (1990) for CS1/CS2 recommend that these classes present a variety of concepts from the field of computer science. This is a departure from the traditional method of presenting this course, a course that stressed primarily ...
Adding breadth to CS1 and CS2 courses through visual and interactive programming projects
The aim of programming projects in CS1/CS2 is to put in practice concepts and techniques learnt during lectures. Programming projects serve a dual purpose: first, the students get to practice the programming concepts taught in class, and second, they ...
CS1 and CS2 (panel session): foundations of computer science and discrete mathematics
SIGCSE '00: Proceedings of the thirty-first SIGCSE technical symposium on Computer science educationOver a period of thirty years there have been many curriculum reforms in the Undergraduate Computer Science curriculum. The ACM/IEEE-CS task force is currently working on the Curriculum 2001. In this struggle to define and develop this dynamic field of ...
Comments