Communications of the ACM
Teaching recursion as a problem-solving tool using standard ML
SIGCSE '89 Proceedings of the twentieth SIGCSE technical symposium on Computer science education
The design and implementation of the Pascal GENIE
CSC '89 Proceedings of the 17th conference on ACM Annual Computer Science Conference
The case for case studies of programming problems
Communications of the ACM
A top-down approach to teaching an introductory computer science course
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
Using C in CS1: evaluating the Stanford experience
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
Approaches to programming assignments in CS 1 and CS 2
SIGCSE '93 Proceedings of the twenty-fourth SIGCSE technical symposium on Computer science education
Karel the robot (2nd ed.): a gentle introduction to the art of programming
Karel the robot (2nd ed.): a gentle introduction to the art of programming
SIGCSE '90 Proceedings of the twenty-first SIGCSE technical symposium on Computer science education
Recommended curriculum for CS1, 1984
Communications of the ACM
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
Teaching OOP in C++ using an artificial life framework
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Application-based modules using apprentice learning for CS 2
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Design patterns: an essential component of CS curricula
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Hi-index | 0.00 |
This paper describes our experience in using situated programming to deliver modern computer science concepts in the introductory programming course at Carnegie Mellon University. We used an artificial life simulation and taught object-oriented programming as well as more traditional material. The course was an experience, not an experiment, since many aspects of the course simultaneously changed from prior offerings. Nevertheless, what we saw was fundamental and potentially far-reaching. The most important result was that students were intellectually engaged. They came to grips with basic object-oriented programming, they mastered the topics of procedural programming, they learned first hand about computer simulation, they learned perhaps a bit about biology. Most importantly, through it all they used programming to express and explore their own powerful and novel ideas.