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 (requirements, design, testing, version control, new higher level programming languages or frameworks, new life cycle or management techniques, etc.) 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 by Prof. Anderson.

Part of this assignment is to demonstrate intellectual curiosity about the field of software engineering. Perform some research about current topics of interest in software engineering (either in terms of the practice of software engineering or in terms of software engineering research) and select a topic that you would like to learn more about. Note: if you choose to present on a specific technology framework (e.g. distributed version control), 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 are working on the presentation should be evident in the final deliverable.

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

Presentations are due to Professor Anderson by Thursday, October 30th (Week 10) at the start of lecture. 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 will be graded on the quality of the presentation, the relevance of the topic to software engineering, the ability to adequately introduce the topic, the ability to provide a range of examples including at least one in depth, and the ability to provide pointers to more information for those who are interested in learning more about the topic.

Students should contact Professor Anderson by Thursday, October 2nd (Week 6) with a selected topic; this page will be updated to reflect the topics selected by students to avoid having two or more students working on the same topic.

Selected Topics

Advanced Java Concurrency Frameworks (TAKEN)
Android Concurrency Model (TAKEN)
Apache Hive (TAKEN)
Aspect-Oriented Programming (TAKEN)
Asynchronous Aspects of Node.js (TAKEN)
Change Requests in Software Engineering (TAKEN)
Continuous Integration and Jenkins CI (TAKEN)
End-User Software Engineering (TAKEN)
F# (TAKEN)
Functional Programming Techniques in Web Development (TAKEN)
Functional Programming Techniques and Distributed Processing Techniques (TAKEN)
Git Version Control System (TAKEN)
Google Drive API (TAKEN)
Hadoop (TAKEN)
Haskell (TAKEN)
Impact of Test-driven development (TDD) on software quality (TAKEN)
iOS Development (TAKEN)
JavaFX (TAKEN)
Lean Software Development (TAKEN)
Maven and Nexus (TAKEN)
NoSQL Databases: Columnar Datastores (TAKEN)
Perforce Version Control System (TAKEN)
Responsive Web Design (TAKEN)
Ruby on Rails (TAKEN)
Scala and Akka (TAKEN)
Scrum (TAKEN)
Software as a Service and the decision to Build vs. Buy (TAKEN)
Software Disasters (TAKEN)
Software Maintenance (TAKEN)
Software Requirements Engineering (TAKEN)
Software Usability and Human-Computer Interaction (TAKEN)
Spring MVC (TAKEN)
Stream Processing (e.g. Storm and Spark) (TAKEN)
The use of User stories across different agile life cycles (TAKEN)
Trello (TAKEN)
Virtual Machines (TAKEN)


© University of Colorado, Boulder 2014