Overview

A portfolio is a collection of what you consider your best work to date. It includes assignments that we have completed in class with additional revisions / add-ons, an overarching project that we will work on over the course of the semester, and optional opportunities for extra credit. The goal of these portfolios is to package together a few exemplary pieces of work rather than dozens of disconnected assignments. You might even consider using these portfolios as a showcase of some of your work in a professional setting.

Each portfolio is divided into three parts.

  1. Portfolio Add-Ons (Required)
  2. Overarching Project (Required)
  3. Extra Credit (Optional)

Portfolio Add-Ons

At the bottom of each problem given in lab is a set of add-ons for the portfolio, each with a “credit” value. You are expected to complete ten credits worth of add-ons for the portfolio. Do not start the problem over from scratch. Instead, make additions / changes to your code and push them up to version control, just like we have done thus far this semester.

Each add-on to a lab is given a credit score to indicate approximately how difficult it is. Roughly speaking, one credit is easy, two credits is moderate, and three or more credits is difficult. It is your choice which problems / credits you want to complete (e.g. you can do ten “one-credit” add-ons, five “two-credit” add-ons, or any combination that adds up to ten).

It is highly recommended that if you decide to do portfolio add-ons for a given problem, you first do corrections for that problem (if applicable). Trying to add code onto an existing, incorrect solution is likely to result in more incorrect work.

Overarching Project

Now that we have some experience with programming, we can start working on a larger scale project. This semester, we are going to be writing a game that is playable in the console (the specific game is undecided, as of yet). By the end of the semester, it will allow players to play a game against another human or against a computer player with different difficulties.

I will give you specific instructions on what to implement for each portfolio. Broadly speaking, the portfolios will be divided as follows:

  1. Portfolio One - Human vs. Human Game in the Console
  2. Portfolio Two - Choose Computer Players With Different Difficulties
  3. Portfolio Three - Further Customization of the Game

Your code will be graded in a similar manner to the labs, with points awarded for a working solution, rigorous tests, and clean code.

Extra Credit

When you hand in your portfolio, you have the option to complete some work for extra credit. There is no penalty for skipping extra credit on a portfolio. However, you cannot “go back” and do extra credit for a previous portfolio.

Extra credit is an opportunity to explore topics in computer science / programming that you find interesting. At least one week before the portfolio is due, set up an appointment to sync with me to discuss a topic and the accompanying work for your extra credit. Once I approve your idea, you are free to work on the extra credit for your portfolio.

Some ideas for extra credit include (but are not limited to):

  • Write a one page paper on a major figure in computer science
  • Repeat a few of the lab assignments with a programming language you have never worked in before
  • Write the code for a famous / useful algorithm
  • Work on a personal software project that you find meaningful
  • Complete additional add-on credits, over the minimum requirement of ten

Handing In Portfolios

There are three portfolios due over the course of the semester. For each portfolio, I will provide a cover sheet template that links to all of the GitHub repos that you have worked on for the portfolio. The cover sheet should be organized in a way that makes it easy for me to figure out where each part of the portfolio lives.

Grading

The grade breakdown for your portfolios is as follows:

Part Percent
Portfolio Add-Ons 40%
Overarching Project 60%

You can earn up to 5% credit on a portfolio if you complete the extra credit assignment. The theoretical maximum score on a portfolio is 105%.