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, system requirements and  software design (using slides; REQUIREMENTS & DESIGN; see below)  are scheduled for [date and location to be specified during the kick-off meeting].  

25 [23-27] minute oral presentations of the results including implementation, software tests and documentation (using slides; IMPLEMENTATION & RESULTS; 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 or joint written reports (max. 10 pages per member) 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]. 

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

Withdrawal from the lab after the presentation of the PROPOSAL will be regarded as not passing the 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 & DESIGN (20% of final grade)

A formal use case analysis is supposed to yield a list of functional and nonfunctional system requirements. 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, use case, activity, 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 & RESULTS (30% of final grade)

Sell your product including the software and the upcoming 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. 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.
  • Present a live demo of your software.
  • Provide an overview of your upcoming written report's contents.
  • Use the provided LaTeX template for slides.
  • Stay within the allocated time frame.
  • All team members must participate equally.

PUBLICATION (40% of final grade)

The software and the final written report are the ultimate outcomes of your work. The report 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.