Independent Research Proposal

This is a proposal for 4 units of independent study under Stanford's CS199 system.

Motivations

I've wanted to learn iOS programming for a long time but haven't had the opportunity due to only recently getting a Macbook and not having time last quarter for CS193P. This quarter I was accepted into CodePath's Swift bootcamp to have an accelerated introduction and crash course into iOS and Swift programming. The course expects a 10-12 hour commitment a week that includes live coding in lecture and a substanatial amount of work outside the lectures themselves.

In addition to iOS programming, I also want to extend my capacities as a full-stack engineer - particularly with advanced web APIs and more complex front-end frameworks. This additional goal is to supplant the earlier part of the quarter where the CodePath course will be redundant to parts of iOS programming I've already become familiar with through tutorials and the first two weeks of CS193P.

Learning Objectives:

  1. To obtain breadth in using more complicated web APIs and frameworks (namely Twilio and Facebook's Parse + React)
  2. To complete a substantial project in Swift while following CodePath's course at Stanford to do so.

Proposed Schedule for the Quarter

  • Week 1 - 2: Integrating advanced web APIs with lightweight applications.

    Takeaway: A text-based application for residents to play Assasins. Twilio API for the texting interface and a Parse database to store the order + status of players in the game.
    Skills: Twilio API, Facebook Parse database, deploying non-web-based application.

  • Weeks 3-5: Smaller based Swift applications built from CodePath's cirriculum.

    Takeaway(s): Clones of Yelp, Twitter, and Rotten Tomatoes, etc...
    Skills: Storyboarding, UI elements, navigation elements, networking + application layer, View controllers etc...

  • Weeks 6-10: Group capstone project as a culmination of the CodePath cirriculum.

    Takeaway: Complex application possibly including: Soundcloud downloading app, Video clipping and looping for GIFs. Skills: Working in a team setting, coordinating to develop elements in parallel, etc...

Commitments

I will hold myself to demonstrating some benchmark or progress that I will set the week prior. I will also keep a weekly record detailing the skills learned that week and what I built with what I learned. Benchmarks and progress will be documented simultaneously through a shared Google Document and links to Github repos of the code written that week.

In return, I ask if we could schedule 15-30 minute meetings every week to check up on progress and for feedback on what's been created so far.