Software Labs

Our software labs for Computer Science follow the same fundamental structure:

Participants are grouped randomly into teams (>=1 members depending on the total number of participants). One topic is assigned to each team. References are provided as possible entry points into the topic.

Following the kick-off meeting on [date and location to be specified] a project proposal (in form of slides) is produced jointly by all team members and it is submitted by [date to be specified during the kick-off meeting]. This preliminary version of the project proposal is defended by each team during a 10 [8-12] minute oral presentation (PROPOSAL; see below) on [date and location to be specified during the kick-off meeting]. Feedback provided during this presentation should be used to improve the proposal.

15 [13-17] minute oral presentations of use cases and system requirements (using slides; REQUIREMENTS; see below)  are scheduled for [date and location to be specified during the kick-off meeting]. 

15 [13-17] minute oral presentations of the object-oriented software design (using slides; DESIGN; see below)  are scheduled for [date and location to be specified during the kick-off meeting]. 

15 [13-17] minute oral presentations of the implementation including software tests and documentation (using slides; IMPLEMENTATION; see below)  are scheduled for [date and location to be specified during the kick-off meeting]. 

The members of each team produce separate, closely coordinated written reports (max. 10 pages each) covering

  • user requirements and technical details
  • use cases and system requirements
  • software design
  • implementation and software tests
  • case studies

of the joint topic (PUBLICATION; see below). The reports  must be submitted by [date to be specified during the kick-off meeting]. 

15 [13-17] minute final oral presentations of the software and of the written reports (FINAL PRESENTATION; see below) are scheduled [date and location to be specified during the kick-off meeting]

The final grade is weighted as PROPOSAL (slides and presentation) 10%, REQUIREMENTS (slides and presentation) 10%, DESIGN (slides and presentation) 10%, IMPLEMENTATION (slides and presentation) 10%, PUBLICATION (report, software and presentation) 40%, FINAL PRESENTATION (slides and presentation)  20%.

Following the kick-off meeting a three-week trial period is granted during which withdrawal from the software lab is possible without further consequences. Later withdrawal will be equivalent to not passing the software lab.

PROPOSAL (10% of final grade)

The aim of the project proposal incl. its oral presentation is to get first and early feedback on the work plan.

  • Use the LaTeX template for slides covering
    • problem description and technical background
    • user requirements 
    • work plan including milestones, deliverables, and risk management.
  • Stay within the allocated time frame.
  • All team members must participate equally.

REQUIREMENTS (10% of final grade)

A formal use case analysis is supposed to yield a list of functional and nonfunctional system requirements

  • Use UML to illustrate the static and dynamic perspectives (e.g, use case and activity diagrams).
  • Add explanatory annotation wherever appropriate. 
  • Use the LaTeX template for slides.
  • Stay within the allocated time frame.
  • All team members must participate equally.

DESIGN (10% of final grade)

The formal object-oriented software design should be suitable for seamless implementation using the programming language of your choice.

  • Use UML to illustrate the static and dynamic perspectives (e.g, class and sequence diagrams).
  • Add explanatory annotation wherever appropriate. 
  • Use the LaTeX template for slides.
  • Stay within the allocated time frame.
  • All team members must participate equally.

IMPLEMENTATION (10% of final grade)

The implementation should meet the user requirements. It should be accompanied by a test suite and meaningful source code documentation 

  • Discuss details of the implementation.
  • Describe the software test strategy.
  • Use the LaTeX template for slides.
  • Stay within the allocated time frame.
  • All team members must participate equally.

PUBLICATION (40% of final grade)

The final written report is the ultimate outcome of your work. It should be based on the  LaTeX template provided and cover

  • user requirements and technical details
  • use cases and system requirements
  • software design
  • implementation and software tests
  • project management
  • user documentation including case studies
  • developer documentation providing entry points into the source code

FINAL PRESENTATION (20% of final grade)

Sell your product including the software and the written report. Products are supposed to be used (bought) by other people. You need to generate interest in your work if you want it to become a best seller.

  • Present a live demo of your software.
  • Provide an overview of your written report's contents
  • Give an outlook to potential follow-up projects.
  • Use the provided LaTeX template for slides.
  • Stay within the allocated time frame.
  • All team members must participate equally.