Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Function objects, function templates, and passage by behavior in C++
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
Design issues in computer science education
ACM SIGCSE Bulletin
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
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Toolkits in first year computer science: a pedagogical imperative
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
Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor
Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor
Exploring recursion in Hilbert curves (poster session)
Proceedings of the 6th annual conference on Innovation and technology in computer science education
Objects from the beginning - with GUIs
Proceedings of the 7th annual conference on Innovation and technology in computer science education
The SIGCSE 2001 Maze Demonstration program
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Interactive Pushdown Automata Animation
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Simple problem solving in Java: a problem set framework
Journal of Computing Sciences in Colleges
A road map for teaching introductory programming using LEGO© mindstorms robots
Working group reports from ITiCSE on Innovation and technology in computer science education
Embryonic object versus mature object: object-oriented style and pedagogical theme
Proceedings of the 8th annual conference on Innovation and technology in computer science education
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Java IO and testing made simple
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Proceedings of the 35th SIGCSE technical symposium on Computer science education
MODeLeR: multimedia object design learning resource
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Treemap visualizations for CS2
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
Teaching the HCI component of computing curriculum 2001 with KlassroomSwing
Journal of Computing Sciences in Colleges
Incorporating human-computer interaction into an undergraduate curriculum
Journal of Computing Sciences in Colleges
Refactoring model-view-controller
Journal of Computing Sciences in Colleges
Evaluating assessments of novice programming environments
Proceedings of the first international workshop on Computing education research
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Teaching an object-oriented CS1 -: with Python
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Automated web-based user interfaces for novice programmers
Proceedings of the 50th Annual Southeast Regional Conference
Hi-index | 0.00 |
The Java Power Tools or JPT is a Java toolkit designed to enable students to rapidly develop graphical user interfaces in freshman computer science programming projects. Because it is simple to create GUIs using JPT, students can focus on the more fundamental issues of computer science rather than on widget management. In a separate article[4], we will discuss with examples how the JPT can help freshman students to learn about the basics of algorithms, data structures, classes, and interface design. In this article, we will focus on how the JPT itself can be used as an extended case study of object-oriented design principles in a more advanced course.The fundamental design principles of the JPT are that the elements of a graphical user interface should be able to be combined recursively as nested views and that the communication between these views and the internal data models should be as automatic as possible. In particular, in JPT, the totality of user input from a complex view can be easily converted into a corresponding data model and any input errors will be detected and corrected along the way. This ease of communication is achieved by using string objects as a lingua franca for views and models and by using parsing when appropriate to automatically check for errors and trigger recovery. The JPT achieves its power by a combination of computer science and software design principles. Recursion, abstraction, and encapsulation are systematically used to create GUI tools of great flexibility. It should be noted that a much simpler pedagogical package for Java IO was recently presented in [9].