Instructional frameworks: toolkits and abstractions in introductory computer science
CSC '93 Proceedings of the 1993 ACM conference on Computer science
From animation to analysis in introductory computer science
SIGCSE '94 Proceedings of the twenty-fifth SIGCSE symposium on Computer science education
AAA and CS 1: the applied apprenticeship approach to CS 1
SIGCSE '95 Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
A C-based graphics library for CS1
SIGCSE '95 Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
WWW interactive learning environments for computer science education
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Thetis: an ANSI C programming environment designed for introductory use
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Foundations of computer science: what are they and how do we teach them?
ITiCSE '96 Proceedings of the 1st conference on Integrating technology into computer science education
Algorithm visualization served off the World Wide Web: why and how
ITiCSE '96 Proceedings of the 1st conference on Integrating technology into computer science education
Tools for creating portable demonstration programs
ITiCSE '96 Proceedings of the 1st conference on Integrating technology into computer science education
An overview of visualization: its use and design: report of the working group in visualization
ITiCSE '96 Proceedings of the 1st conference on Integrating technology into computer science education
The supplemental proceedings of the conference on Integrating technology into computer science education: working group reports and supplemental proceedings
Function objects, function templates, and passage by behavior in C++
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Teaching with object oriented libraries
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
Algorithm visualization on the World Wide Web—the difference Java makes!
Proceedings of the 2nd conference on Integrating technology into computer science education
Recursion and grammars for CS2
Proceedings of the 2nd conference on Integrating technology into computer science education
Design issues in computer science education
ACM SIGCSE Bulletin
Design patterns: an essential component of CS curricula
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Scaling: a design pattern in introductory computer science courses
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Automatic array algorithm animation in C++
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
simpleIO: a Java package for novice interactive and graphics programming
ITiCSE '99 Proceedings of the 4th annual SIGCSE/SIGCUE ITiCSE conference on Innovation and technology in computer science education
C++ program design: an introduction to programming and object-oriented design
C++ program design: an introduction to programming and object-oriented design
Programming Abstractions in C: A Second Course in Computer Science
Programming Abstractions in C: A Second Course in Computer Science
The Art and Science of C: A Library-Based Introduction to Computer Science
The Art and Science of C: A Library-Based Introduction to Computer Science
Problem Solving with Java
Programming patterns and design patterns in the introductory computer science course
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Pedagogical power tools for teaching Java
Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in 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
Java power tools: model software for teaching object-oriented design
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
A paradigm shift to OOP has occurred…implementation to follow
CCSC '00 Proceedings of the fourteenth annual consortium on Small Colleges Southeastern conference
Easy, realistic GUIs with Java in CS1
CCSC '00 Proceedings of the fourteenth annual consortium on Small Colleges Southeastern conference
The SIGCSE 2001 Maze Demonstration program
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Teaching programming from a distance: problems and a proposed solution
ACM SIGCSE Bulletin
The novice problem in computer science
Proceedings of the 12th International Conference on Computer Systems and Technologies
A portable graphics library for introductory CS
Proceedings of the 18th ACM conference on Innovation and technology in computer science education
Hi-index | 0.00 |
Traditional first year computer science courses teach the principles of computing using the basic features of some chosen programming language such as C, C++, Java, Ada, Scheme, Eiffel, etc. Abstraction and encapsulation focus on entities such as algorithms, functions, data structures, classes, objects, and closures that can be built directly on top of the raw language. If a facility such as windows and graphics is not directly available in the language then it is not used. This means that student exercises tend to look inward at computer science issues rather than outward to the exciting applications that show the breadth and power of computing.The fundamental thesis of this article is that teaching students in the framework of powerful toolkits is essential to maintain student interest and is pedagogically important precisely because toolkits are a rich source of examples that illustrate the principles of computation. We hope to convince computer science faculty that the use of toolkits is imperative in a modern first year curriculum.We will first discuss in general why toolkits are important. We will spice this discussion with some simple illustrations and with references to the use of toolkits by faculty at other institutions.We will then describe the toolkits we have developed at Northeastern University and explain both what they do and why they are pedagogically valuable. We will see how toolkits enable students to do more interesting and effective work and how principles of design and algorithms can be demonstrated by the key components of the toolkits.We will conclude with some general remarks and explain why the arguments made against toolkits do not have sufficient weight to change our conclusions. We will also give the web site address where our toolkits are available.