CS 4243W

Senior Design

Logistics

These sections contain information about all assignments, presentations, and demos.

Meetings and Classes

On Tuesdays, your team will meet with your assigned mentor. We will assign your team to one of the Tuesday sections. Show up at the assigned time and await your mentor meeting.

Wednesdays will be used for a variety of purposes. Most Wednesdays will feature lectures or your team presentations. When teams present, we will do so in the BBUltra course room in special breakout rooms.

In addition to the official Tuesday/Wednesday times, you should meet with your team at least once during the week.

Teams

You must meet with your team at least once a week, and everyone in a team must commit to that common time. If your team cannot meet due to time-zone constraints, you should let the instructional team know so a communication scheme is designed.

Group dynamics in a team can sometimes turn sour, in which case you first try and resolve the issue within the team, and then approach your mentor. You need to approach your mentor soon after the problem occurs. We will not save doomed teams late in the game. We will have team-health surveys throughout the semester that will contain inter-member grading that will affect your participation grade and could ultimately result in grade weight modifications or changes in even team membership. Please do your part and communicate often and respectfully.

Trello and Git

(Fall and Spring) We will use Trello and Github throughout this course in both semesters.

Trello is a time-and-task management tool that helps coordinate within a team, and also allows continual updating and editing of tasks. You will be given your team’s trello account by the instructors.

Github is a code repo system that makes it convenient for teams to share code and keep code up to date. You will be given your team’s GitHub project by the instructors.

Please view tutorials on both and learn how to use these tools yourself. Each team will have a single trello account, and a single Github repo. We will expect you to have this set up by the end of the second week.

Your Trello screen should have three columns:

  • The first column (initially empty) will have "Completed tasks". This will contain all the cards for tasks that have been completed. Each item should be tagged with the person that did most of the work on that item.
  • The second column will feature "Currently working on" tasks, typically for the next couple of weeks.
  • The third column will feature "Future tasks". Ideas for the future will come up in discussions and during mentor meetings. These should first go into "Future tasks". Then, once you deliberately pick on a task for the current month, move that card to the "Currently working on" column.

Every task should have a start-date, projected end-date, and a clear description of what the outcome will be.

Tasks can be quite small, as in: "install and test OpenCV". Generally, it's preferable to break tasks into small ones.

Description of Writing Assignments

(Fall) Our alumni are always telling us "require more writing and oral presentations" and "clear writing is essential to success in the workplace".

Accordingly, this course will feature several writing assignments in which the content is rather straightforward but where you will have an opportunity to practice writing clearly. All writing assignments will be due in the Fall.

Guidance on Writing, Teams, and Assignment Objectives

  • The sequence of three writing assignments will together combine to create a complete proposal that showcases your project idea. You will write this complete proposal in three pieces, each of which will constitute Writing-1, Writing-2, and Writing-3.
  • When you receive feedback on Writing-1, you must respond to the feedback by revising your Writing-1 submission and including your revised writing in Writing-2. Similarly, include your revised Writing-2 into the Writing-3 document.
  • The first writing submission is an individual submission even though the content is based on your team's project. This is OK because the real goal of the writing assignments is for you, as an individual, to practice writing.
  • The next are team writing assignments. Each member of the team must submit the commonly created document which will include a different first part for each individual based off of Writing-1.
  • For team submissions, all members of the team must contribute and, in the right margin, indicate who wrote which paragraph or section.
  • All your writing must generally be in the plural first person ("Our project develops a ...") as opposed to singular first person ("My project ...").
  • You should avoid the passive voice. Thus, instead of "the password is then entered by the user", write "the user then enters the password".
  • Above all, your writing should strive for clarity and flow. Use good transition words or phrases to promote flow.
  • Please take pains to write well, reviewing your own writing several times before the deadline.
  • Please use inclusive terminology. It is important to start learning alternatives to terms that might be offensive or for which there is a less charged option. Here is a guide you can use to help you detect those terms and appropriate substitutes.

Reference: Strunk & White's Style Manual

Fall) Nearly a century ago, William Strunk, a professor of English, crafted a slim volume of writing rules that with the help of E.B.White became the classic now called The Elements of Style (A more recent version is available).

Every college student should read this book at least once. We will expect you to make sure your prose follows the book's rules on writing style.

Writing assignment 1: project summary (individual)

(Fall) Length and Format: 1 page, Times New Roman size 12, single spaced

For this assignment you will write a short proposal for your senior design project. That is, pretend that you are seeking funding for your project from an investor or a philantropic foundation and write a compelling one-page proposal.

You should convince the (non-technical) reader that your project solves an important problem, overcomes difficult technical challenges, and will have an audience or social purpose. The reader should feel that you understand the problem area and have some interesting ideas for solving the problem.

Use this rubric to guide your writing.

Submission:
Since this is an individual submission, include your name in the file name. Create the document (Google-Doc) in the shared Google Drive team folder.

Writing assignment 2: impact (team)

(Fall) Length and Format: Corrected Writing 1 + 2 pages, Times New Roman size 12, single spaced.

For this assignment you will continue fleshing out your proposal to add two sections on the commercial or social-impact opportunities related to your project and the impact it will have on society. Start by copying the previous writing submission into the current assignment and revising it to address the comments you received. Then, write 2 additional pages with sections labeled as follows:

  • Comparison with similar projects. What's already out there that's similar to your project, how is your project different, and how will that matter in having impact?
  • Target audience. Who exactly will use your project, and why? How will they afford your product, and why is it feasible for them to use your project? If your project is aimed at generating revenue, what is the business model (how will you charge, and why is that going to be profitable)? If your project is a social-impact project aimed at foundations, explain how you will generate awareness in the target audience and persuade them to use your project.
  • Societal and global impact. What is the broader societal need you are trying to address? If used widely, how would it impact society? Will it need regulation? Can it be put to bad use? What are the global issues or international-use issues related to your project?

This part will also be written for a non-technical reader.

Submission:
Since this is a team submission, create a team-wide document (Google-Doc) in the shared Google Drive team folder.

Writing Assignment 3: technical overview (team)

(Fall) Length and Format: W1 + W2 + 2 pages, Times New Roman size 12, single spaced

Now that you've explained why your project is valuable and how it will be used, you need to convince that it's technically feasible and innovative.

Start by copying over your most recent version of Writing-1 and Writing-2 into the Writing-3 document. Then, you will add 2 pages with the following sections:

  • A diagram for the “project milestones and timeline” which will be used as a roadmap for future demos and presentations.
  • Technical innovation. Describe the technologies that will go into your project. What exactly is technically novel about the project? How does this compare to what already exists out there?
  • Technical feasibility. What existing tools and technologies can you use to build your project? How can you be confident that it's do-able?
  • Cost, risks, and risk mitigation. What is the development cost in terms of hardware and software? How many lines of code do you estimate (and why)? What are the project milestones and a timeline for achieving these milestones?

Some parts of Writing-3 will necessarily get technical. However, write these sections for a technical manager, someone who is technical savvy but does not want to see unnecessary detail.

Submission:
Since this is a team submission, create a document (Google-Doc) in the shared Google Drive team folder.

Description of Presentations

(both Fall and Spring) One way by which you can have striking impact and work your way towards leadership is to give effective presentations. Many of our alumni have rated the presentation training in senior design as one of its most important non-negotiable features. We often hear of alumni stories where, in a workplace room full of ivy-leaguer, our alumni stand out because they are able to give an excellent presentation.

Accordingly, in this course, we will show you how to blow an audience away with a strong presentation.

Guidance on Presentations, Teams, and Assignment Objectives

Your team will practice six presentations throughout the year in preparation for the final (D-day) presentation in Spring (April). The following are suggested durations.

Some will be short presentations:

  • 5 minutes for a 1 or 2-person team
  • 7 minutes for 3-person team
  • 9 minutes for 4-person team

Some will be standard length:

  • 8 minutes for a 1 or 2-person team
  • 10 minutes for 3-person team
  • 12 minutes for 4-person team

All members of a team need to be part of preparing and delivering the presentation. Ideally, the speaking parts should be evenly distributed.

It is your responsibility to ensure that you've tested your presentation laptop and equipment before the presentation time.

Presentation 0: Presentation Workshop (individual)

Fall) You will attend a workshop on presentation skills during a September “lecture” (9/23). The workshop is one of the most valuable things you will get out of senior design. See a forthcoming email about this.

Instructions:

  • The workshop will be completed by pairs of teams (6-8 people) during scheduled time slots of about 25 minutes. The presentations will be held in the usual course BBUltra page, within one or two of the breakout rooms.
  • Please report 15 minutes early to the main course page where you will be greeted and where you will wait until asked to enter one of the breakout groups.
  • Everyone will present, so be ready to share and speak up. We will be in “small” groups so you don’t need to get too nervous. After this workshop you’ll be ready for the other “full-room” presentations (which will still be online).

Presentation 1: overview (team)

(Fall) Length and Format: short presentation, with slides

For this presentation, pretend you are presenting your project to non-technical investors or foundations. Explain what your project is about, what problem it solves, what the impact will be, and why it's novel. Outline what it will be like to use your project.

Presentation 2: impact (team)

(Fall) Length and Format: short presentation, with slides

Think of this presentation as your second "vetting" with investors or foundations who are doing due-diligence. Start again with an overview of the project, why it's useful, and what you hope to achieve. Explain what other solutions exist to the problem you are solving, and why yours is better. Flesh out with statistics.

Presentation 3: technical overview (team)

(Fall) Length and Format: short presentation, with slides

Imagine the audience for this presentation to be high-level, technically savvy managers. In addition to a quick overview (reminder) of your project, your goal is to persuade that you have a sound technical approach. Outline the technical solution, explaining key components, providing intuition for algorithms. You are required to mention the features of your front-end interface or visualization features.

Presentation 4: mock-final (team)

(Spring) Length and Format: standard presentation, with slides

The audience for all the Spring presentations are technically savvy generalists. In this case, you are going to pretend you've completed your project and practice what your final presentation might look like. Some slides will be wishful or placeholders because you haven't reached those milestones yet. That's OK, the purpose is to solidify your final presentation.

The final presentation will have the following:

  • What is your project about? What is its purpose and why is it valuable?
  • Include a video demo (screencast or otherwise).
  • Outline key technical contributions using pictures, showing for example, how one of your algorithms work.
  • If you have data from experimentation, show the results.
  • A strong ending.

please consider the following helpful tips too:

  • When creating your presentations, think about the entire slide design. It is important to focus on both content and how you are presenting it on the slide.
  • Please reflect on the feedback you have received from previous presentations.
  • Include relevant visuals to your project
  • When constructing the presentation, think of a logical flow of the project from start to finish. Assume that you are presenting your project to people for the first time.
  • Focus on the big picture (introduction) and then the details
  • Every team member should speak for an equal amount of time

Presentation 5: mock-final II (team)

(Spring) Length and Format: standard presentation, with slides

Update your presentation based on feedback and based on added progress in your project.

Practice for final (team)

(Spring) Length and Format: standard presentation, with slides

Update your presentation based on feedback and based on added progress in your project. At this point, your project should be nearly complete.

Final presentation (team)

(Spring) Length and Format: standard presentation, with slides

Also called D-Day: Everything you’ve prepared above will let you do this precisely and with absolute control.

Description of SD's Design Aspect

(Fall) Chris Toombs will be teaching you about software engineering and design.

How exactly do you go about building a large project? What is a systematic way to plan ahead, think through pieces of the project so that the process is manageable? What are best practices in design? These questions and others will be the focus on his lectures.

Your goal is to apply design principles to your project. First, you will use your project as the basis for completing homework assignments set by Chris. Second, you will apply sound design principles as you proceed with your project, with the understanding that you will have to explain how these design principles were applied.

Description of SD's HCI Aspect

(Fall) Elyse Nicolas will be teaching you about HCI and front-end design.
You will learn about interaction design, good and poor design, how to design for a positive user experience, and much more. You will learn about design principles and usability goals. You will learn about different kinds of interfaces and how you can correctly design interfaces for your various projects. What makes an interface easy-to-use and intuitive? What principles can one distill from years of HCI experience with actual users? How do you apply these to your project? These questions and many others will be the focus of the lectures. It is a requirement of your projects to properly apply what you have learned in these class sessions to an interface/visualization. Each project will differ, some projects will have more extensive user interfaces than others. And in some cases (like a systems project) you will create visualizations. This Fall semester, you will complete a homework assignment applying what you have learned during the class sessions. Please find the description below:

HCI HW#1 Description:
This is a team homework assignment. Please work together in the same group that you are working in for your senior design project. For this assignment, start to plan your interface/visualizations for your senior design project. In a one to two page document (use Times New Roman size 12) include the following:

  1. An introductory paragraph explaining your project idea, AND the general idea for the interface/visualizations. All team members should contribute to this paragraph.
  2. Each team member will write one paragraph explaining how your interface/visualizations will address one of the following usability goals: effectiveness, efficiency, safety, utility, learnability, or memorability.
    Each team member must choose a different usability goal to write about, this means there cannot be a repeat of the same usability goal by another team member. Note: for groups of n members, there should be n paragraphs in this section.
  3. Specify in the margin the name of the team member who wrote each paragraph.
  4. Include all of your full names in the document as well as the title of your project.
Keep in mind that you will be graded both on your individual contribution and the collective group submission. If you have any questions, please email your instructor at: enicolas "at" gwu.edu



HCI HW#2 Description:
Presentation Date: February 17th.

This is a team presentation assignment that will occur on February 17th during the class session.
Please work together in the same group that you are working in for your senior design project. For this assignment, present the entirety of your front-end interface/visualizations. Include the following:
  • Present all aspects of the interface that are either completed or currently being worked on. By this stage of the project, there should be significant amount of work to show in this section.
  • Present mock-up representations of the rest of the interface/visualizations.
  • This presentation should be complete showing the intended idea of the final interface.
This is a presentation of the user interface. Keep in mind that you will be graded both on your individual presented section and the collective group presentation. All team members are required to speak an equal amount of time. Decide how you want to divide the presentation and you may choose to each focus on the areas where your contributions directly affect the interface.
If you have any questions, please email your instructor at: enicolas@gwu.edu

Description of Demos

To demonstrate progress on your project throughout the year, we will schedule demos that indicate the expected level of progress:

Fall Demos:

  • Bootcamp. The "bootcamp" phase of your project is the beginning phase where you are exploring various tools and APIs. You need to show that you've installed the tools, are able to get the "hello world"-equivalent within each tool/API working and are able to integrate these in your project. At this stage, your project remains "undesigned" and somewhat haphazard. That's OK, because you are exploring the underlying technologies or solving small issues, such as getting some hardware to work, or getting a phone to talk to a server, and so on.
  • 30% demo. Discuss with your mentor what aspects, if completed, will constitute 30% progress towards completion. Important: By this time, you will have attended lectures on design and thus, your 30% needs to start incorporating elements of design.
  • 40% demo. A few more things demonstrably working beyond 30%. Also, at this stage, your project should feature considerably more design. You should be able to explain how components integrate and how you can test both individual components and the whole. There should be no "totally empty" component. Even if you haven't gone far with a component, you should at least have a "shell" of a component that does something as a placeholder. By this time you will have attended lectures on HCI, and your 40% demo needs to include detailed ideas for the features of your interface/or the visualizations you intend to show.

Winter Break work:

  • Work during the break: Integration. During the winter break, you are expected to continue working on your project. The objective is getting enough work done that you can reach the 70% demo in spring. This cannot be done if you do not work during the break. Clearly, you'll want to also rest and recover, but please plan on blocking off enough time during the winter break to work on your project.
  • Why do we do this? We have scheduled your final presentations in mid-April rather than May (during finals) to avoid panic over whether project completion will hold up graduation. We would rather you spend your last few weeks as a senior in a celebratory mood, basking in nostalgia and excitement about graduation, rather than nervously scrambling to pass the course.
  • Note that you always have the option of being ahead of schedule, which will free up more of the winter break.

Spring Demos:

  • 70% demo. You will be at the 70% stage when your modules are integrated (working together) and the design is refined, and most components are at least partially working. It's quite possible that the algorithmic challenge remains or that you have yet to successfully train a machine-learning algorithm. We're looking for software completion as opposed to project success at this stage. What you demo should feel like a rough full project. That is, all parts connected to each other and a clear sequence of data processing or user actions in "one integrated system". After this it is time to complete a working interface, GUI, command-line tool, web app, etc.
  • 90% demo. At this stage, The algorithmic part is complete and nearly everything is working. You should only have finishing touches or a little more functionality to add. Also, at this stage your interface should be complete, with the exception of a few final touches.
  • 100% demo. As the name implies.
  • Final demo. The final demo is where we "kick the tires" and grade the project. You will bring everything you need to demo, demonstrate compilation, execution, and answer detailed questions about your implementation.

Description of Final Submission

(Spring) You will accummulate Homework assignments and project deliverables in a Google Folder. In addition, you will create a website and put together a final submission that encapsulates your work during the year.

Project webpage

(Spring) Create a single webpage for the project, which can be hosted anywhere, as long as it's publicly accessible (your personal GitHub account is the best option).

It should contain the following elements:

  • A clear picture of every team member:
  • For every team member: a short (one paragraph) biosketch that says a little about you, your interests, dreams etc.
  • Project Presentation (Screencast). Create an 10-to-12-minute screencast using the slides in your final presentation where you talk as you go from slide to slide. Think of this as a record of your final presentation that anyone can view.
  • Commercial Screencast. Create an 5-minute screencast using any resources (video evidence, slides, pictures, animations, live-action) that allow you to "sell" and promote your project to a target audience (industry/academia/general population). This should be addressed to the average (non-expert) viewer that is not familiar with you work.
  • Links to the following:
    • All writing assignments (even though they are cumulative).
    • The Final-Report (that's in the final package below).
  • Note: do not link to the source code from the website. The source is in the final package.

Final package

(Spring) The final package must be submitted by (TBD) in your group's google drive folder (a replica of the code should be in your team's GitHub account) with the following items:

Code:

  • The most recent working version of all your project’s code in a single zip file.
  • A README file that explains how to install all required libraries (include versions), what paths need to be set up, etc. to get your project running.
  • A simple test program that can be run at the command-line that will run only if everything is correctly installed.

Submitted Homework Assignments:

  • All submitted homework assignments (design, HCI) for each team member for both Fall and Spring. Make one folder for each team member inside of which should go that team member's submissions.

Final Report:

A document called "Final Report" that includes the following sections:

  • Section 1: Team member names, and a description (a list) of who-did-what in the project.
  • Section 2: A brief non-technical overview of your project (2 paragraphs).
  • Section 3: The link to your project website, with a list of items on the website. See the description above on this page about what the project webpage needs to have.
  • Section 4: A complete list of libraries, packages and APIs that you used for the project. This is not inclusive of your own code.
  • Section 5: A brief technical overview of your project (2 paragraphs).
  • Section 6: One "if I had to do this again" paragraph from each team member that contains technical lessons learned, and what would you have done differently if you know what you know now (but with exactly the same project). Examples could include using a different API, some other type of restructuring etc.
  • Section 7: Instructions for follow-on projects. Write a detailed set of instructions for the next group of SD students who choose to build on your project:
    • How to download and get the project working. If there's equipment, a description of where to purchase (what model # etc).
    • What works, what doesn’t, what to be aware of (pitfalls, issues).
    • Ideas for next steps.
  • Any other relevant documents such as licenses.

Important:

  • If your project involved equipment bought by the Department, please return the equipment before the last day of classes.
  • The final website and package will be graded on completeness and ease of use. Please take the time to make them understandable.