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

Engaging Students in Software Development Course Projects

  • Upload
    saina33

  • View
    149

  • Download
    2

Embed Size (px)

Citation preview

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