This course aims at bridging the gap between academic studies of computer science and production software engineering with particular focus on startups. The course will provide a fast-paced introduction to key tools and techniques that can facilitate the building of prototypes and turning those into actual production-grade working systems. It will introduce technologies for creating web, mobile and data applications and systems, as well as tools that support all aspects of the development process. The curriculum for this course changes every year and keeps up with the pace of innovation in today's tech startups.
Students will collaborate on an ambitious software project from start to finish during the semester.
- Comfortable manging systems, processes, and editing files using only unix shell
- Experience with at least one well-typed or compiled language (Scala, Java, C++, etc.)
- Experience with at least one scripted language (JavaScript, Ruby, PHP, node.js, Python, etc.)
- Experience with HTML and CSS.