In an attempt to bridge a local technology gap, potentially provide software to health care organizations serving the needs of handicapped clients in the Western NY area, and provide innovative and interesting projects for our capstone design classes, the Computer Science and Engineering department at the University at Buffalo (SUNY) began soliciting projects from local organizations in need. The projects have been integrated into required senior-level undergraduate courses. The practical benefits of project experience on student education, and the benefits of providing useful software to the target organizations, were anticipated, but the experiences have proven to be much more. Students have responded with intensity and philanthropy. The clients have participated in the classroom experience as both recipients and teachers. The program has rescued students at academic risk, and the school is enjoying an enhanced reputation in the community. This paper explores positive and cautionary issues regarding the effort.
This paper argues for a design driven approach to an object-oriented CS1-CS2 sequence in which object-orientation is thematic. Our approach integrates several components: (i) a strong object-oriented approach, (ii) design using UML, (iii) design patterns to manage complexity, and (iv) complex examples and projects to motivate the use of object-orientation and to motivate students by solving non-trivial problems. While this is a "programming-first" approach to CS1-CS2, it addresses several disadvantages of programming-first approaches noted in CC2001 [7]. The approach focuses on design rather than syntax, so students do not lose sight of the forest for the trees. We use (relatively speaking) large and complex examples, especially in the CS2 course, which allows us to address in a meaningful way issues of programming in the large. Because the approach is design driven and heavily object oriented, the course is not biased against novices in favor of students with prior programming experience, since CS1 students with prior programming experience typically have no design experience and only procedural programming experience.
Teaching object-oriented programming in CS1 is hard. Keeping the attention of CS1 students is perhaps even harder. In our experience the former can be done successfully with very satisfying results by focusing on the fundamental principles of object-orientation, such as inheritance, polymorphism and encapsulation. The latter can be done by having students create graphical event-driven programs. Care must be taken, however, since teaching graphics can easily distract students and certainly takes time away from the fundamentals being taught. We use Java as a vehicle for OO instruction, but rather than expose CS1 students to the intricacies of Swing we employ an elegant and small graphics package called NGP. NGP allows students to create event-driven graphical programs using only inheritance and method overriding. We describe how we use NGP to enhance rather than detract from our teaching of fundamental OO principles.
In an attempt to bridge a local technology gap, potentially provide software to health care organizations serving the needs of handicapped clients in the Western NY area, and provide innovative and interesting projects for our capstone design classes, the Computer Science and Engineering department at the University at Buffalo (SUNY) began soliciting projects from local organizations in need. The projects have been integrated into required senior-level undergraduate courses. The practical benefits of project experience on student education, and the benefits of providing useful software to the target organizations, were anticipated, but the experiences have proven to be much more. Students have responded with intensity and philanthropy. The clients have participated in the classroom experience as both recipients and teachers. The program has rescued students at academic risk, and the school is enjoying an enhanced reputation in the community. This paper explores positive and cautionary issues regarding the effort.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2025 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.