A Comprehensive Capstone Project In Computer Science I: Getting The (Instant)
Message
April 13, 2007Dr. Tim DeClueDepartment of Computer and Information SciencesCollege of Business and Computer ScienceSouthwest Baptist University
April 13, 2007 CCSC-Central Plains Region
Preview
Background The CS1 Problem The Project Summary
Fahrenheit to Celsius?
Code w/oDesign
LoneCoders?
Bring itOn!
BACKGROUND: My Computer Science I Class, Fall 2006
April 13, 2007 CCSC-Central Plains Region
Background
SBU COBACS CIS Department
– 60-70 majors – CS & CIS– 4+ faculty
Course Organization– Lecture/Lab– Size– Textbook and labs– Netbeans IDE
April 13, 2007 CCSC-Central Plains Region
The Problem
Students do not see a real world connection to their software– Lack of relevance
Students do not see need for design– I can do this in my head
Students do not want to work together – esp. on busy work– What do I need him/her for?
Enjoyment, success and gender neutrality– Why should I major in this if I don’t enjoy it?– Everyone else looks like they are getting it. I’ll just be quiet and
drop after class… (move on syndrome) Students are not reflecting or generalizing
– Compartmentalization– “What do you mean this is a typecast error? It can’t be. We
finished that program a long time ago…”
April 13, 2007 CCSC-Central Plains Region
The Solution
Software should mirror a “real-world” application– Instant messaging is relevant
Make it big enough so design must be necessary, not just additional
– Multiple phases with pair trading– Abstraction to deal with complexity
Make it big so it requires teamwork to complete– Complexity and size– Use pair programming & pair trading (project memory)– Creates a need read and critique code written by others
Must be achievable, enjoyable & gender friendly– Retention of majors– Emphasize communication (gender neutrality)
Must synthesize prior learning – Generalization– Capstone to maximize reflection
Team 1
Team 2
Team 3
Phase 1
April 13, 2007 CCSC-Central Plains Region
The Solution
Software should mirror a “real-world” application– Instant messaging is relevant
Make it big enough so design must be necessary, not just additional
– Multiple phases with pair trading– Abstraction to deal with complexity
Make it big so it requires teamwork to complete– Complexity and size– Use pair programming & pair trading (project memory)– Creates a need read and critique code written by others
Must be achievable, enjoyable & gender friendly– Retention of majors– Emphasize communication (gender neutrality)
Must synthesize prior learning – Generalization– Capstone to maximize reflection
Team 1
Team 2
Team 3
Phase 2
April 13, 2007 CCSC-Central Plains Region
The Solution
Software should mirror a “real-world” application– Instant messaging is relevant
Make it big enough so design must be necessary, not just additional
– Multiple phases with pair trading– Abstraction to deal with complexity
Make it big so it requires teamwork to complete– Complexity and size– Use pair programming & pair trading (project memory)– Creates a need read and critique code written by others
Must be achievable, enjoyable & gender friendly– Retention of majors– Emphasize communication (gender neutrality)
Must synthesize prior learning – Generalization– Capstone to maximize reflection
Team 1
Team 2
Team 3
Phase 3
April 13, 2007 CCSC-Central Plains Region
Course Design
Weeks 1-8Fundamental Programming
Data &Expressions
Using
Classes &
ObjectsWritingClasses& UML
Conditionals& Loops
Intro to OOD
& GUI
Weeks 9-16Synthesis & Reflection
Control Flow
April 13, 2007 CCSC-Central Plains Region
Course Design
Weeks 1-8Fundamental Programming
Data &Expressions
Using
Classes &
ObjectsWritingClasses& UML
Conditionals& Loops
Intro to OOD
& GUI
Weeks 9-16Synthesis & Reflection
Control Flow
Pre
p &
PO
C
Pha
se I
Pha
se II
Pha
se II
I
Deb
rief
Arrays
Inheritance,
Polymorphism
& Sorting
ExceptionHandling Recursion
Collections
April 13, 2007 CCSC-Central Plains Region
The Project
Phase I
File I/OPOC
LoopingExceptions
Pair-Programming
Phase II
A buddy list
ArraysSorting &SearchingInterfaces
Phase III
GUIFront End
GUI ComponentsTesting
Two Weeks Two WeeksTwo Weeks
Student 123456
Student 121212
message.txt message.txt
WriteWriteRead
Read
Two students reading and writing text messages.
WRITEs are done with a local text file in a WWW accessible folderREADs are done by treating the file in another student’s WWW folder as a URL
The Proof of Concept (POC)
MessageSystem
+ main(String [] args):void//Manage the user interface
MessageStream
+ MessageStream (buddy : String)//Creates a message stream with a buddy
+ send (message: String) : void//Sends a message by writing to message.txt
+ read (): String//Returns a read message as a String
MessageFormatter
+ MessageFormatter ()//Creates a default message formatter
+ MessageFormatter (lineLength: int) : void//Will break a string into lines of lineLength
+ showMessage (message: String)//Displays message with lines of lineLength
- buddy : Stringuses
uses
Phase 1 UML
MessageSystem
+ main(String [] args):void//Manage the user interface
MessageStream
+ MessageStream (buddy : String)//Creates a message stream with a buddy
+ send (message: String) : void//Sends a message by writing to message.txt
+ read (): String//Returns a read message as a String
MessageFormatter
+ MessageFormatter ()//Creates a default message formatter
+ MessageFormatter (lineLength: int) : void//Will break a string into lines of lineLength
+ showMessage (message: String)//Displays message with lines of lineLength
- buddy : String
uses
uses
BuddyList
-buddyList [] : MessageStream
+ BuddyList()//Creates an empty buddy list
+ save () : void//Writes buddylist info to a file
+ showMessage (message: String)//Displays message with lines of lineLength
uses
Phase 2 UML
SBUIMS
Yes…I think so
123456232323454566
Send
Buddies
AddBuddy
123456 Says: Hey, what’s up?Not much…how ‘bout you?123456 Says: I’m hungry…how bout lunch?OK! Sounds good to me!232323 Says: Did Dr. DeClue post the assignment yet?Yes…I think so
232323
Current buddy
Phase 3: GUI Front End Design
April 13, 2007 CCSC-Central Plains Region
Summary & Reflection
Survey supported purpose– Students had to rely on design to address complexity– Students had to rely on pair programmers (even if their
partner wasn’t as proficient)– They were proud of their product
Retention– Only one student dropped the course, two pre-engineering
majors and one Math major switched (or declared dble-mjr) in CS/CIS
Design needs to be improved if used again
April 13, 2007 CCSC-Central Plains Region
Questions