Ada: an advanced introduction
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Artificial intelligence
Computer architecture and organization; (2nd ed.)
Computer architecture and organization; (2nd ed.)
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
ADA; Problem Solving and Program Design
ADA; Problem Solving and Program Design
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Introductory computer science for general education: laboratories, textbooks, and the Internet
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Computer science and general education: Java, graphics, and the Web
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Using handheld computers in the classroom: laboratories and collaboration on handheld machines
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
A study of the impact of student background and preparedness on outcomes in CS I
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Hi-index | 0.00 |
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.