260 likes | 274 Views
This course at University of South Alabama focuses on eXtreme Programming practices, providing a foundation for relevant skills in programming. The course, part of a 2-semester sequence, integrates hands-on labs with lectures, emphasizing problem-solving, testing, OOP, GUI, and more. With a focus on XP practices such as Planning Game, Pair Programming, Refactoring, and Testing, students learn to work in teams, communicate effectively, and deliver quality software. The course emphasizes adaptability, commitment, and work-ethic, preparing students for real-world challenges. For more details, visit the School of Computer and Information Sciences at the University of South Alabama website.
E N D
Agile CS1 Labs: eXtreme Programming Practices in an Introductory Programming Course Dawn McKinney, Julie Froeseth, Jason Robertson, Leo F. Denton, David Ensminger School of Computer and Information Sciences, University of South Alabama, Mobile, AL 36688
University of South Alabama • State university • 13,000 students • Computer and Information Sciences • Not part of a college • Three specializations • 500 students • Masters Program School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
The Course • Second semester of a 2-semester programming sequence • Introductory • Foundation for all three specializations • Closed Lab • Hands-on • Integrated with lecture • Taught by same instructor as lecture School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Problem-solving Testing OOP GUI File I/O Dynamic data structures Communication Commitment Work-ethic Adaptability Honesty/integrity Course Objectives http://www.cis.usouthal.edu/~mckinney/McKinneySyl121Sp2004.htm School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Why XP? • Flexibility • Promotes team skills • Communication • Cooperation • Work-ethic • Commitment • Adaptability • Relevance School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
CS1 Agile Labs • Weekly 75-minute closed lab • Hands-on • Laptop policy • Synergy of teams in same room School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Teams • 7 +/- 2 members per team • Same room • Selected names • Shared info • Evaluated each member periodically • Team spirit School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Project • Semester-long • Same project all teams • Same room • Shared info between • First semester – Nutrition Management • Second semester – Survey Builder • Customer driven School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Introduced • Handouts • Web sites • Discussions • Lectures School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Planning Game • Small Releases • Metaphor • Simple Design • Continuous Integration • Sustainable Pace • Coding Standards School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Planning Game • User Stories • Estimated tasks on cards in minutes • Small Releases • 2-3 lab period schedule • Demonstration after iteration cycle School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Metaphor • Instructor was the customer • Constant communication • Simple Design • Small Stories • Focus School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices: Building Code • Continuous Integration • Team code stored on server • Sustainable Pace • No overtime • Enthusiasm to continue working • Too long of break between labs School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Coding Standards • Taught in CS1 • Uniform standards for each team’s code School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Pair programming • Refactoring • Collective code ownership • On-site customer • Stand-up meetings • Testing School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Pair Programming • Highly emphasized • Task cards • Estimates vs. actual times • Non-matching pairs School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Refactoring • Pairs • … • Collective code ownership • Code on server • Pair programming School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • On-site Customer • Customer presence emphasized • Fall: • Instructor = customer + project manager • Spring: • Instructor = customer • Grad assistants = project manager School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Stand-up Meetings • Beginning/end of class • Each student had to speak • Very efficient School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
XP Practices • Testing • Emphasized because is important • Fall: test plan • Spring: JUnit & test-driven development • Some problems • Tested after coding • Didn’t realize value of JUnit School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Assessment • Quantitative • Affective objectives • Cognitive objectives • Qualitative • Student comments • Observations School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Quantitative Results:Affective Factors Correlated with Course Grade • Student interest • Belonging • Value • Perceived competence • Lack of pressure • Effort School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Student Comments Satisfaction +- Real world +- Team work +- Cooperation +- Professional skills +- Observations Communication +- Cooperation +- Adaptability +- Work-ethic +- Commitment +- Qualitative Data School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Reflections: Benefits • Confidence building, “pair pressure” • A sense of belonging • Shared euphoria • Working code • Higher course relevance • Self-regulated learning • Cooperative learning • A sense of satisfaction • Promoted the development of professional skills School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Reflections: Improvements Needed • Instructor role of customer • Lab assistants as project manager • Student journals • Stricter adherence to the iteration schedule • Test-driven development needs to be automated School of Computer and Information Sciences University of South Alabama, Mobile, Alabama USA
Dawn McKinney dmckinney@usouthal.edu Julie Froeseth jf301@jaguar1.usouthal.edu Jason Robertson jrobertson@usouthal.edu http://www.cis.usouthal.edu/~mckinney/McKinneySyl121Sp2004.htm http://www.cis.usouthal.edu/~mckinney/XPAU2004Alabama.ppt