About the Course
Spiritual sequel to Peter Thiel’s CS183 course on startups. Bridges the gap between academic computer science and production software engineering. Fast-paced introduction to key tools and techniques (command line, dotfiles, text editor, distributed version control, debugging, testing, documentation, reading code, deployments), featuring guest appearances by senior engineers from successful startups and large-scale academic projects. Over the course of the class, students will build a command line application, expose it as a web service, and then link other students’ applications and services together to build an HTML5 mobile app. General principles are illustrated through modern Javascript and the latest web technologies, including Node, Backbone, Coffeescript, Bootstrap, Git, and Github.
Course Syllabus
The syllabus is optimized to enable students to iterate on their final projects as soon as possible, with technical material in the first half of the class and entrepreneurial considerations in the second half.
- Introduction and Quickstart
- Tools: VMs, IAAS/PAAS, Unix Command Line, Text Editors, DCVS
- Frontend: HTML/CSS/JS, Wireframing, Market Research
- Backend: SSJS, Databases, Frameworks, Data Pipelines
- APIs: Client-side templating, HTTP, SOA/REST/JSON, API as BizDev
- Devops: Testing, Deployment, CI, Monitoring, Performance
- Dev Scaling: DRY, Reading/Reviewing/Documenting Code, Parallelizing
- Founding: Conception, Composition, Capitalization
- Business Scaling: Promotion, CAC/LTV/Funnel, Regulation, Accounting
- Summary and Demo Week
Recommended Background
Familiarity with basic programming at the level of Stanford’s CS106B is required. Some exposure to HTML, CSS, and Javascript will also be helpful.
Suggested Readings
To get a sense of the energy humming through Silicon Valley, the following reading will be helpful:
- First, for the big picture read Why Software is Eating the World, The Rise and Fall of Personal Computing, and Internet Trends.
- Next, look at these articles on Stanford’s Facebook class, The Social Network , and Massively Collaborative Mathematics.
- Finally, read Startup = Growth and as much of the CS183 notes as you can.
This class takes up where CS183 left off.
Course Format
The first part of the course will cover modern software engineering principles with a focus on mobile HTML5 development, taught via 5-10 minute video lectures with in-video quizzes, programming assignments, and multiple choice questions. Guest lecturers from top Silicon Valley startups will bring these concepts to life with real engineering problems from their work.
In the second part, you will apply these concepts to develop a simple command line application, expose it as a webservice, and then integrate other students’ command line apps and webservices together with yours to create an open-source mobile HTML5 app as a final project. Lectures will continue in the second part, but will be focused on the design, marketing, and logistical aspects of creating and scaling a startup. No other homework will be given in the second part to permit full focus on the final project.
Grading will be based on multiple choice questions and programming assignments, and there will be a substantial final project. The best final projects in each category (e.g. genomics, transportation, law, etc.) will qualify for prizes sponsored by startups.
FAQ
- Will I get a certificate after completing this class?
Yes. Students who successfully complete the class will receive a certificate signed by the instructor. - What audiences will benefit most from this class?
The class will be particularly useful for CS undergrads, grad students or alumni in other STEM disciplines, people looking to found or join a startup, and new startup hires. - What resources will I need for this class?
You will need an internet connection and the ability to sign up for free Amazon Web Services and Github accounts. This may require a credit card or prepaid credit card. - What is the coolest thing I’ll learn if I take this class?
You will learn how to turn knowledge into power.