Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming examined
Extreme Programming Installed
DrJava: a lightweight pedagogic environment for Java
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Efficient Implementation of Run-time Generic Types for Java
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Rethinking computer science education from a test-first perspective
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
Taming a professional IDE for the classroom
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Benefits of using socially-relevant projects in computer science and engineering education
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Improving student performance by evaluating how well students test their own programs
Journal on Educational Resources in Computing (JERIC)
Assessing undergraduate experience of continuous integration and test-driven development
Proceedings of the 28th international conference on Software engineering
DrProject: a software project management portal to meet educational needs
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Open source projects in programming courses
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Can humanitarian open-source software development draw new students to CS?
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Training students to be agile information systems developers: a pedagogical approach
Proceedings of the 2008 ACM SIGMIS CPR conference on Computer personnel doctoral consortium and research
ROSE: a repository of education-friendly open-source projects
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Using open-source robocode as a Java programming assignment
ACM SIGCSE Bulletin
Proceedings of the special interest group on management information system's 47th annual conference on Computer personnel research
OCSC '09 Proceedings of the 3d International Conference on Online Communities and Social Computing: Held as Part of HCI International 2009
Linux kernel projects for an undergraduate operating systems course
Proceedings of the 41st ACM technical symposium on Computer science education
Software studio: teaching professional software engineering
Proceedings of the 42nd ACM technical symposium on Computer science education
Teaching cross-platform design and testing methods for embedded systems using DICE
WESE '11 Proceedings of the 6th Workshop on Embedded Systems Education
Proceedings of the 34th International Conference on Software Engineering
Journal of Computing Sciences in Colleges
Proceeding of the 44th ACM technical symposium on Computer science education
A comparison of two iterations of a software studio course based on continuous integration
Proceedings of the 18th ACM conference on Innovation and technology in computer science education
Hi-index | 0.00 |
Students in programming courses generally write "toy" programs that are superficially tested, graded, and then discarded. This approach to teaching programming leaves students unprepared for production programming because the gap between writing toy programs and developing reliable software products is enormous.This paper describes how production programming can be effectively taught to undergraduate students in the classroom. The key to teaching such a course is using Extreme Programming methodology to develop a sustainable open source project with real customers, including the students themselves. Extreme Programming and open source project management are facilitated by a growing collection of free tools such as the JUnit testing framework, the Ant scripting tool, and the SourceForge website for managing open source projects.