“Go do a project.”

Good advice, but is it really a useful thing to hear?

Two months of guided side projects to give people some experience with practical programming and building their portfolios for students at UIUC during Summer 2021.

Commitment

10 hours a week for students.

Target Audience

  • Rising sophomores at UIUC
  • Finished CS 125
  • Less experienced in CS
  • Who have never programmed outside class
  • Who feel lost when told ‘go do side projects’
  • Who want to build a portfolio for job/transfer/research applications
  • Don’t want to get rusty over the summer

Weekly schedule

Tuesday: Introduce topic on a web page with some writeup, link to resources, and live Zoom/workshop/code-along, if any

Wednesday: Google form or similar to submit an idea with an MVP and nice-to-have features.

Monday: Turn in projects by making a forum post with a link and GitHub. Peer + staff feedback.

Calendar

Schedule can be found here

Outline

Month 1: Python

  • Week 1 (June 1): Discord/Slack Chatbot June 1 code repo
    • Tools: Github, VSCode, pylint
  • Week 2 (June 8): Fancy command line interface
    • Tools: Command line, git
  • Week 3 (June 15): web bots (beautifulsoup)
    • Tools: Debugger, Browser Inspect Element
  • Week 4 (June 22): pyGame for a simple interactive game

Month 2: JavaScript and Typescript

  • Week 1 (June 29): Greasemonkey/Tampermonkey/Web Browser extension (JavaScript)
    • Tools: Browser Dev Tools, Eslint
  • Week 2 (July 6): Express JS backend to do something simple w/ Docker
    • Tools: Chai automated testing, GitHub CI/CD
  • Week 3 (July 13): React frontend around some existing API
    • Tools: Postman/Postwoman/Insomnia, Testing
  • Week 4 (July 20): Portfolio site with all the 6 projects from earlier (Gatsby)
  • Wrap up (July 26)

Weekly Projects

Mostly simple projects around the theme of the week that we’ll help students narrow down on an MVP + nice-to-haves. We can guide people towards a workflow similar to this: How to Plan and Build a Programming Project - A Legitimate Guide for Beginners.

For people who have only programmed in class, getting started with side projects is hard, and they’re not at the skill level to fully work on something more ambitious such as courseware or 1-2 month long projects. People don’t always know how to find the right tutorials or they feel overwhelmed by scoping out projects, so we’ll provide a structure around that.

Difficulty-wise, the projects will be intro CS level in complexity, so this is more about learning how to use new libraries, languages, tools and APIs they have not done before. It’s also about learning how to break a large project into smaller pieces and understanding how to go towards an MVP.

Portfolio

Inspired by art school courses, we think it’s a good idea to have the end result as a portfolio they have to show off to their friends, family and even recruiters. This will be in the form of a personal website as well as a Github profile.

We’ll show people how to talk about these on a resume and how to bring these up in interviews as well.

GitHub

Students will learn about

  • Basic git commands from the command line
  • Navigating GitHub website
  • Using GitHub issues/projects
  • Open Source Licenses
  • Markdown and creating good READMEs
  • Creating a good GitHub profile

Forum

We will use the forum.125summer.tech with some categories created for just this.