engaging students in software development course projects
TRANSCRIPT
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
Engaging Students in Software Development Course Projects
Winard “Win” BrittJacqueline “Jackie” Hundley
Computer Science and Software EngineeringAuburn University
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
MOTIVATION
• Basic understanding of computers a necessity for a college student
• For non-majors, a tool for solving problems in their discipline
• Only one CS course to influence these students’ thoughts about computing
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
PROBLEM
Software development: – Abstract, complex, and frustrating– Examples and assignments seen as trivial
and not applicable to the non-majors area of study
– Learning comes by doing the assignments– Assignments are cumulative and time
consuming
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
TEACHING
• Good assignments are an important part of a successful course
• Teaching programming in the context that a student will apply their skills encourages students to use the skills after the course has ended.
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
STUDENT LEARNING• College is different from high-school
• After one CS course many become demotivated about studying CS
• Non-majors have low faith in their ability in CS
• Social consciousness– Women and minorities, esp., looking toward
careers with social impact
• Textbook examples can be confusing to some cultures
• Issues like student anxiety, attitude, and self-worth must be considered
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
CONCRETE PROJECT THEMES
• Find a theme of interest to students– an “ice-breaker” during an early class– survey
• Allow non-majors to apply what they learn to their area of study
• Real world problems
• Spur creativity which can improve interest and retention
• Creative solutions inspire students to care about a project and makes it harder to cheat
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
CASE STUDIES
• Extend themes over multiple assignments
• Allow students to apply new knowledge and skills in familiar context
• Extending ones own work is less stressful than starting a large project from scratch
• Code reuse and modification
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
Zombies
Personal Finance
Fast Food
OrdersAU Sports
Anti-terrorism applications
Health Stats
Mortgage Analysis
CASE STUDIES THEMES
Mortgage Analysis
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
PERSONAL FINANCE
• Students chose personal finance– how to save, spend and invest their money
• Using basic control structures, determined total cost of loans based on term, interest rate, & principal
• Used real-world advertised loans
• Generated an investment tool to predict future value taking into account simple inflation, taxes, randomness in markets, & different investment instruments
• Explored options: mutual funds, bonds, stocks, & cash
• Students attempted to refactor previous solution taking advantage of inheritance
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
HEALTH STATISTICS
• Students enjoyed checking out their health stats using their own functions– Ideal body weight (IBW)– Lean body weight (LBW)– Body mass index (BMI)
• Utility functions: metric conversions• Real-world look up values online
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
ZOMBIES
• Basic topics in C++: console I/O, randomnumber generation & basic libraries
• Given dimensions estimate numberof zombies that fit in a room
• Create a game with goal to escapefrom a zombie infested building
• Given only a minimal set of “technical requirements” create game rules and scenarios
• Be creative; free to change basic nature of game to adventure based or puzzle-based
• Expanded previous game to used a vector-based database and sorting/search algorithms
• An enjoyable approach to introduce the C++ language
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
FASTFOOD
• Visualizing a fast food scenario allowed students to help build the pseudocode algorithms to apply C basics
• Demonstrates sequential, selections, and repetition control structures; I/O; and modularity
• Checking for correct combo number introduces error checking and conditional loops
• Examples build on previous algorithms as new syntax is introduced
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
CONCLUSION
Concrete course themes give students a foundation they can relate to, rather than be intimidated by the abstract nature of programming.
– Can give the instructor an immediate means by which to relate to the students.
– Students get involved in deciding what they will work on throughout the semester.
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
• It is quicker to use assignments without considering student audience (i.e. problems from a text), but beneficial to take the extra time and thought into project design.
• Both computer science and non-CS majors respond better when they feel as though their interests have been considered.
• Students and instructors can make the introduction to programming class something better than a semester that students must “struggle through.”
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
CLOSING REMARKS
• “Software is hard” just isn’t good enough.
• “I’m not going to be a programmer” is short sighted.
• Bring your students into the loop and – bring yourself into their loop a little bit, too.
Tapia 2009 – April 4Auburn UniversityComputer Science and Software Engineering
Questions, Comments, and Additional Discussion
E-mail: brittwr at auburn.edu
E-mail: hundljh at auburn.edu