Previous Lecture Lecture 29

Lecture 29, Thu 12/01

Final Exam slot (presentations)

Here is some information about the final exam and the final presentations.

Final Exam

The final:

There is more info about the final in the drop down

About the final

Here is what the top of the final exam will look like, and here is a preview of the first question.


NOTE: THE FOLLOWING INSTRUCTIONS APPLY TO EVERY QUESTION ON THIS EXAM, even though they will not be repeated in detail.

Anywhere you see: Answer as if in a job interview, please apply these guidelines:

  • First: DO NOT COLLABORATE on answers. If you do, you are liable to end up with wording that is too similar to another student to have arisen by chance.
  • Answer as if the question were posed to you orally, during a job interview, not in writing.
  • Answer in a conversational tone, the way you would really speak to a person interviewing you for a job.
  • Get to the point fast; during an interview you want to spend your time wisely. The interviewer will get annoyed if your answer is too long and detailed.
  • Show that you understand things not just from a “textbook definition” standpoint, but that you can refer to examples from your own experience.
  • Include relevant technical detail where possible in order to demonstrate your knowledge but avoid getting too far into the weeds. For example, in a conversation about testing, it is helpful if you can mention the specific tools that you used by name. You don’t, however, need to give a full lesson on the syntax or operation of each of those tools.
  • You really should avoid just “googling” something and then just copying and pasting the text. That’s not how anyone speaks in a job interview situation. It’s fine to use the internet to look up things, but use it the way you would prepare for a job interview; read the articles, understand the material, then close the browser tab and give the answer you would give to the interviewer.

In summary: this exam is designed to both:

  • help you prepare for how you would answer questions like these in future job interviews (it’s your final learning exercise)
  • measure how well you did that preparation.

I wish you success in both of these tasks.

Question 1

Answer as if in a job interview

Interviewer: I really want to focus on the projects you did in CMPSC 156 for a minute, both the technical aspects and the non-technical aspects.

By technical aspects, I mean things that have to do with computers, systems, code, and software tools.

By non-technical aspects, I mean things that have to do primarily with human beings, teams, communication, goals, success and failure, emotions, and so forth.

Question 1, part a

Please describe a specific technical challenge that came up for you during the project and how you worked with your team to address it.

(Note: for full credit, please be as specific as possible.

You don’t need to write three pages, but you do need to say something more than “I wrote some Java code for the backend and it was hard but I figured it out”. That’s definitely too vague.

Instead, you might describe the application you were working on, the specific issue you were trying to address, where you got stuck or what was challenging, and the specific ways that you overcame that challenge.

You can answer this at the team level, so even if your issues were comparatively straightforward, you can describe a challenging issue that you helped a teammate to overcome. But if you do that, do so in your own words; don’t collaborate on an account and then copy/paste it.

Know your audience: keep in mind that the audience is an interviewer; they don’t know what “Happy Cows” or “Course Search” means, unless you explain it briefly. You can assume that they are familiar with basic ideas of full-stack web development such as “backend”, “frontend”, “CRUD”, and “unit testing”, and that they know about git and GitHub, Kanban boards, code review, etc.

Also note that in Gradescope, the answer boxes for open ended questions will expand as you type.


Final Presentations

The order of presentations will be determined by rolling a 12 sided die with all of the team names on it. That one dice roll will determine which team goes first, and in what order the teams present.

Details of how a die roll turns into the presentation order

Basically, each team has an equal chance of being either first or last in presentation order.
But once the order is determined, then we go by project, and by pairs of teams that worked on the same repo.

We’ll group teams by project, so the canonical order is this (and this is the order we follow if f22-5pm-1 happens to be the die roll:

  • Start with Courses in this order: f22-5pm-1, f22-5pm-2, f22-6pm-1, f22-6pm-2, f22-7pm-1, f22-7pm-2
  • Then Happy Cows in this order: f22-5pm-3, f22-5pm-4, f22-6pm-3, f22-6pm-4, f22-7pm-3, f22-7pm-4

If we get a die roll other than f22-5pm-1, here’s how the order changes:

  • As long as the team number is an odd number (-1 or -3), we pick that team and project and just go through each of the lists above wrapping around.
  • For example, if the team chosen is f22-6pm-3, the order will be:
    • Happy Cows first: f22-6pm-3, f22-6pm-4, f22-7pm-3, f22-7pm-4, (wrap around), f22-5pm-3, f22-5pm-4
    • Then Courses in this order: f22-6pm-1, f22-6pm-2, f22-7pm-1, f22-7pm-2, f22-5pm-1, f22-5pm-2
  • If the team number rolled is even (-2 or -4), we pick that team, and then go through the canonical order backwards, for each project, wrapping around.
  • For example, if the team chosen is f22-7pm-2, the order will be:
    • Courses first: f22-5pm-2, f22-5pm-1, (wrap around backwards) f22-7pm-2, f22-7pm-1, f22-6pm-1, f22-6pm-1
    • Then Happy Cows in this order: f22-5pm-4, f22-5pm-3, (wrap around backwards) f22-7pm-4, f22-7pm-3, f22-6pm-4, f22-6pm-3