Technology Presentation

Read this carefully!

There are all the details here about why and how to prepare and do this presentation. This is a graded assignment.

Purpose

  • Skills you will practice by doing this assignment
    • Researching, reading about and investigating a technology that you have not seen before
    • Learning how to experiment and write a ‘hello world’ example that illustrates the key concepts
    • Designing and delivering a presentation that will teach what you have learned
  • Knowledge that you will gain
    • Deeper knowledge about a key technology that is of interest to you and others
    • How to approach a technical presentation and a sense of your strengths and areas to improve
  • How will this be useful to you in the future
    • Software engineers have to constantly evaluate and learn new technologies
    • Being comfortable and proficient at giving presentations is a crucial skill no matter what you do with your Computer Sceince Degree.

Steps

  • The topic will be decided upon between the teacher and the student(s). It should be something that interests you (“I always wanted to learn …”) and is relevant to the class. You have a lot of freedom here.
  • Once your topic is selected, you want to google to find relevant papers, articles, videos about it
  • Depending on the topic, you will want to know the theoretical foundation; the real world problem or need that it is addressing; where it is being used currently, and how well respected or adopted it is; why it is relevant.
  • Look into what the simplest, smallest program that you could write that illustrates the use cases, the APIs or libraries and how they are used to achieve the desired result.
  • Think about how to explain it in a technical way to the rest of us and prepare a presentation. Think about answering questions such as:
    • What is the problem that this is solving or addressing? Why is it hard? Why is it important?
    • What other approaches exist (if any) to solve the problem? Why is this approach better or at least interesting?
    • What are the key concepts or abstractions that someone using it needs to know about
    • What are the libraries, apis, tools that are needed?
    • Show a simple (or the simplest) code example that illustrates all this?
    • What are the reasons to use this technology (advantages) and what are reasons you would avoid this technoly (disadvantages)
  • It may but doesn’t have to include
    • Slides
    • Sample code written by you or that you found somewhere
    • Anything else you think is useful
  • You will have 30 minutes, including questions, so plan accordingly
  • Make sure you actually understand what you are presenting.
  • The audience will ask questions and it will quickly be apparent if you don’t. Take time to prepare!

Feedback and assessment

  • Learning how to assess a new technology quickly and effectively is a very important skill to work on. This is the life of a software engineer nowadays. Should I or should I not adopt Kubernetes?
  • Being able to give an interesting and clear technical presentation is also a very important ability to practice. For example many companies will ask you to do a quick technical presentation as part of the interview process!
  • And of course Senior Honors Projects and PhDs all require an excellent presentation design and delivery.

What a great Tech Pres looks like

  • New Tech or Concept: We really learn about a new technical or computer science concept, technique, package or library. While some of it may have been heard about before, we feel that we have gained fresh insights.
  • Specific Package or Paper: The presentation is focused, and goes beyond high level concepts, and introduce at least one technology or package, or go in depth about at least one scholarly paper that is relevant
  • Applicable: At the end the we feel ready to incorporate what we learned into their assignments or project. It was specific enough to be actionable. It is important to explain how it will relate or fit into nanoTwitter
  • Real: The presentation includes real code examples that run and illlustrate the specifics. Code examples, or live coding are part of the presentation, as well as links to relevant resources: libraries, papers, blog posts, etc.

Examples