Software Engineering Presentation

For this assignment, you are asked to create a presentation that covers a particular software engineering topic in depth. All topics related to software engineering or to the design and implementation of concurrent software systems are valid.

  • Presentations should consist of a minimum of 30 slides
  • Presentations should attempt to introduce the topic, cover some aspect of the topic in depth, and provide references for more information.
  • Presentations will not be presented in class but will be made available on the class website.
  • In order to get students to look at your presentation on the website, you are asked to create a one-slide executive summary.
  • Executive summaries will be presented during lecture.

Suggested topics are listed below but students are free to propose their own topic ideas to Prof. Anderson for consideration. Note: when presenting on a specific technology framework, you can certainly focus on the framework's features but you must also discuss what software engineering benefits the framework provides to developers.

Teams of up to two students can work on developing a presentation. A 30 minute presentation developed by two students should be of much higher quality and/or go into greater depth than a 30 minute presentation developed by a single student. In other words, the fact that two people were working on the presentation should be evident in the final product.

Slides can be created in a number of formats including Powerpoint, Keynote, Google Docs or PDF.

Presentations are due to Professor Anderson by Friday, March 23rd at 11:59 PM. Students are free (indeed encouraged) to submit presentations early. The presentation will be graded on a 100 point scale and is worth 20% of your grade for the class.

Students should contact Professor Anderson when they have selected a topic... he will update this page to indicate that the topic is “taken” so that we do not have students working on the same thing.

Suggested Topics

History of SE Research (TAKEN)
Apache MINA (TAKEN)
Concurrency Design Patterns (TAKEN)
Test-Driven Development, Mock Objects, and Hamcrest (TAKEN)
Specific agile life cycles
    Lean (TAKEN)
    Scrum (TAKEN)
Pair Programming (TAKEN)
Indie App Development (TAKEN)
Distributed configuration management systems
    Git (TAKEN)
    Mercurial (TAKEN)
Continuous build systems (TAKEN)
    Jenkins (TAKEN)
    Bamboo (TAKEN)
Testing frameworks (TAKEN)
Concurrency Frameworks
    Advanced Java Concurrency Framework (TAKEN)
    Comparision of Scala and Go's Concurrency Constructs (TAKEN)
CUDA and CUDA concurrent applications (TAKEN)
Model-Based Software Engineering
Software Disasters: Lessons Learned (TAKEN)
Application Frameworks
    Qt SDK (TAKEN)
Web Application Frameworks
    Django (TAKEN)
    Ruby on Rails (TAKEN)
    Symfony (TAKEN)
    Tapestry (TAKEN)
Program Analysis (Tools, Frameworks, and Lessons) (TAKEN)
Static Analysis (TAKEN)
Software Security (TAKEN)
Software Architecture (TAKEN)
Software as a Service (SaaS) (TAKEN)
Service-Oriented Architecture (SOA) (TAKEN)
OSGi (Open Services Gateway initiative) (TAKEN)
Modern integrated development environments (TAKEN)
Software Design Techniques
Software Engineering in Game Design (TAKEN)
Structures for Software Development Teams (TAKEN)
Testing and verification of concurrent programs (TAKEN)
Software Metrics (TAKEN)
Software Engineering [Concerns] in Community Driven Projects (TAKEN)


© University of Colorado, Boulder 2011