CSE 3902 Project: Design, Development, and
Documentation of Interactive Systems

This is a Junior-level (or advanced Sophomore) course on Professional Software Development. You will learn through hands-on activities, large team-based software development and processes. Our goals are to build a simple 2D platformer game. Not! Our goals are to craft high-quality software, understand the process of Agile software development, advanced tools for software development, testing plans and tools, and how to work in a small sized team (5-6 people). There will be a large amount of critiquing of code and interactive feedback. This will lead to refinement and improvement of your software (for future expansion and maintenance).

Grader: Ian Stitzlien (istitz -at- gmail.com)

Google Calendar for sprint planning sessions and feedback. Please pick a team when Ian can meet with your group. At the beginning of your weekly meetings would be good.

Google Calendar

Notes for class:

Official Syllabus

Reading Resources

C# and .NET

Coordinate Systems

Super Mario

XNA

Sprites

ALM

Team Rubrics (Word) (Pdf)

Software:

Groups

J#.NATE

team Goomba

The Luigi Bros.

Infinite Loop

Team Juggernaut

Team Excalibur

Running Schedule

  1. Lecture 1 (W): Overview of class
  2. Lecture 2 (F): Demo of Visual Studio / C# language / arrays
  3. Lecture 3 (M): Presentation on C# Classes and interfaces (powerpoint)
  4. Lecture 4 (W): Presentation on Inheritance (powerpoint)
  5. Lecture 5 (F): Group Formation, Requirements Gathering and other BS.
  6. Lecture 6 (W): Requirements / Agile
  7. Lecture 7 (F): Agile and sprints
  8. Lecture 8 (M): Colors and sprites
  9. Lecture 9 (W): The Sprite Engine
  10. Lecture 10 (F): The Game Loop and Sprint 1
  11. Lecture 11 (M): Design Patterns and the v1 software
  12. Lecture 12 (W):
  13. Lecture 13 (F): Cameras
  14. Lecture 14 (M): Quality Software Foundations
  15. Lecture 15 (W): Code Metrics continued
  16. Lecture 16 (F): Code Smells and Refactoring

October

  1. Lecture 17 (M): Sprint1and Sprint2
  2. Lecture 18 (W): Code Reviews
  3. Lecture 19 (F): Code Smells and Refactoring continued
  4. Lecture 20 (M): Out sick
  5. Lecture 20 (W): Sprint 2 and Sprint3
  6. Lecture 22 (F): Debugging in VS 2012
  7. Lecture 23 (M): Automating the Build Process with TFS
  8. Lecture 24 (W): Switching to MonoGame (maybe?)
  9. Lecture 25 (F): More Design Patterns
  10. Lecture 26 (M): Midterm review
  11. Lecture 27 (W): Sprint3 and Sprint4
  12. Lecture 28 (F): Midterm review
  13. Lecture 29 (M): Midterm
  14. Lecture 30 (W): Unit Testing

November

  1. Lecture 31 (F): No class
  2. Lecture 32 (M): Team Meetings
  1. Lecture 33 (W): Team Meetings
  2. Lecture 34 (F): Team Meetings
  3. (M) Veterans Day
  4. Lecture 35 (W): Team Meetings
  5. Lecture 36 (F): Team Meetings
  6. Lecture 37 (M): Sprint 4 due
  7. (W) Thanksgiving break
  8. (F) Thanksgiving break
  9. Lecture 38 (M): Data driven applications (also called Table-Driven or Metadata-Driven)
  10. Lecture 39 (W): Plug-in applications
  11. Lecture 40 (F): Final exam review
  12. Lecture (M): Last Lecture
  13. Final Exam: December 10, 2012 from 4:00-6:00pm