Giving a Presentation

Table Of Contents

Overview

Being a good software developer also means being able to communicate what you did and will do to clients, management, and your peers. The oral presentation component of the projects helps to give you practice in this arena.

In-Class Project Overview Presentations

The big picture goal is to get across the ideas of the current state of your project to the audience. You should speak at a level appropriate for your peers in the class. That is, people with technical expertise but you are not already familiar with what you are doing.

  • Present an overview of your project: the goal and what the user expects to get out of it.
  • If appropriate, demo any features that are working. Practice ahead, or record a movie of it to avoid potential mishaps. It is quite easy to record a movie of an XCode simulator. In most cases, it is sufficient start your app, open a terminal window, and issue the following command xcrun simctl io booted recordVideo filename.mov. Otherwise, zoom and other programs permit screen/window video capture.
  • Describe the high-level code architecture, server interactions, databases used, etc. This can include a UML-style class diagram or be kept at a more abstract “system architecture” level.
  • Briefly describe what the status of your implementation is at this point, and what’s left to do.

Here is a mock presentation I put together for the ToDo app we put together in lecture.

Logistics

  • I’d like you to plan to talk for maybe 5-7 minutes about the project, and then we’ll discuss it a bit.

  • We’ll use Zoom. We should be able to use screen sharing for demos of anything you’d like to show and for slides.

  • You may prepare slides however you prefer. PowerPoint, Keynote, GoogleDocs, etc. are all good options. Just commit them to your repository or send me a link ahead of time so I can access them while we chat.

Random Advice for Preparing a Presentation

This is mostly general advice whenever you are called up to present something. Doing it over Zoom will make it a little more challenging, but the basic ideas are the same.

In many ways, giving a short presentation like this is harder than giving a long presentation, because there is less margin for error – crashing programs, confusing slides, or unclear explanations can really eat up the limited time you have. Here are a few thoughts on ensuring a successful presentation.

First, I encourage you to practice ahead of time. Give the presentation to a friend, your rubber ducky, or some other inanimate object. The goal isn’t to rehearse until you have the presentation memorized. However, you do want to be confident that you can clearly explain the big ideas within the alloted time. I’m sure you all can tell when I have carefully thought ahead about a particular concept in lecture and when I’m less prepared. You should aspire to my better days — I don’t have my lecture memorized but I have planned enough to have a good idea of what I want to convey for each topic or slide.

Whenever I plan a presentation on complex topics or for a large/important audience, I spend a little time thinking about the big idea of each slide I’ll use and also go through in my mind the first sentence I will say on each slide. Then I run through my slides speaking out loud once or twice to find the words to fill in the gaps. If I discover rough edges, I revise the slides or my words until it’s relatively smooth. A couple iterations is sufficient most of the time.

Also, if I’m doing any demo, I rehearse it ahead of time. If I can make a movie I do that too, just in case the demo goes haywire. Oftentimes a couple of screenshots convey just as much as a live demo while avoiding some potential pitfalls. Going that route is fine too.