engaging students in software development course projects

16
Tapia 2009 – April 4 Auburn University Computer Science and Software Engineering Engaging Students in Software Development Course Projects Winard “Win” Britt Jacqueline “Jackie” Hundley Computer Science and Software Engineering Auburn University

Upload: saina33

Post on 11-May-2015

145 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Engaging Students in Software Development Course Projects

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

Page 2: Engaging Students in Software Development Course Projects

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

Page 3: Engaging Students in Software Development Course Projects

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

Page 4: Engaging Students in Software Development Course Projects

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.

Page 5: Engaging Students in Software Development Course Projects

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

Page 6: Engaging Students in Software Development Course Projects

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

Page 7: Engaging Students in Software Development Course Projects

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

Page 8: Engaging Students in Software Development Course Projects

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

Page 9: Engaging Students in Software Development Course Projects

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

Page 10: Engaging Students in Software Development Course Projects

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

Page 11: Engaging Students in Software Development Course Projects

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

Page 12: Engaging Students in Software Development Course Projects

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

Page 13: Engaging Students in Software Development Course Projects

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.

Page 14: Engaging Students in Software Development Course Projects

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.”

Page 15: Engaging Students in Software Development Course Projects

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.

Page 16: Engaging Students in Software Development Course Projects

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