Skip to content

dcsil/CSC491

CSC491/2600

University of Toronto's Capstone Design Course through the Department of Computer Science Innovation Lab (DCSIL).

Table of Contents

Course Overview

Students will write a software application that implements the business ideas developed in CSC454/2526 (Business of Software). This course will expose students to the core technologies, ideas, and processes in developing a startup.

Students will be given a theme, in the corequisite course (CSC454), in which to develop a startup. Students are expected to:

  • Define their own scope of problem within the theme
  • Develop a cohesive plan
  • Produce a working MVP (minimum viable product)
  • Present their work in various mediums, including written, orally, visually, and through the internet.

Class time will be a mixture of project-focused workshops, lectures, and discussions. The class will be small and very interactive. Students may hear from guest lecturers from the field.

Requirements to take this course

  • There is a co-requisite to CSC491/2600, students must also be enrolled in CSC454/2527 or have taken CSC454/2527 before to take this course
  • Students must maintain a good GPA
  • Students must have some prior software experience (web applictions preferred, though not required)
  • Students must have at least 4 CSC300+ level courses, and any other 300+ level course (previously 5 CSC300+ level courses)

Important: There is also an application process on the DCSIL website.

Expectations and evaluation of students

In general we expect students to come prepared to be guided, mentored, and to work hard throughout the term. This is not an easy course and there is a lot of work, but it is a course former students regularly describe as "having taught me more than all my other courses" and "having taught concepts I use on a daily basis as a software engineer". Despite this, the teaching staff make themselves available via Slack as needed and will help guide and mentor you. The teaching staff is here to help you succeed as long as you put the effort in, effectively contribute to your team, and communicate (that last one is important!). In order for students to be successful in this course and their team, here is a subset of expectations students should have:

  • Students will actively participate in all assignments and communicate regularly with their team
    • Any absences will be communicated in advance to both the team and instructor.
  • Students will write code and substantially contribute to their team's software/data stack.
    • Doing product or design work is great, but it is not a replacement for software in this course. Of course, if you are also designing or doing another role, we won't expect as much coding. Talk to the instructor to make sure you're striking a good balance.
  • Students will adapt and self-teach any technologies their team chooses for their team's project (Instructor does not choose the techs).
  • Students will record all work using GitHub Issues, GitHub Pull Requests, and learn the GitHub / Git platforms if required.

All of these expectations are in place, combined with mentorship and guidance, so that we can evaluate your ability to:

  • Write software and learn new technologies as required
  • Design and architect software systems
  • Manage and execute software projects
  • Collaborate with other roles (business, finance, etc)
  • Set up a robust "Software Development Lifecyle" (SDLC) including continuous integration, testing, and deployments

With these expectations and evaluation principles, we know you'll be better prepared for the software industry.

Required Materials/Software

There aren't any required materials per se, but it is required that you bring a laptop to class with a fully functioning developer environment for your project. iPads/tablets are not recommended as the main vehicle unless you can develop on them.

You will also need a GitHub account.

Lecturer

Hello! My name is Victoria, and you can reach me at victoria.bukta[at]mail.utoronto.ca.

Note: I am still in the process of setting up my email. In the meantime, you can reach me at vickybukta37[at]gmail.com.

I am currently a Member of Product Staff at Databricks, a data and AI company. While I don't have a formal title, my role is essentially that of a Product Manager.

You might be curious why a product manager is teaching this course. I have a technical background, and my current role in Product has equipped me with a unique skill set to bring technical products to market.

A bit about me.

Prior to joining Databricks, I held positions as a Staff Engineer and later an Engineering Manager at Shopify, where I gained experience in leading and developing technical projects within data engineering. I then transitioned to Tabular, a startup founded by the creators of the Apache Iceberg project (which originated at Netflix), where I served as a Product Manager until the company's acquisition in 2024.

As an alumnus of the University of Toronto, I specialized in Computer Science, with a keen interest in AI and Operating Systems. My background in operating systems provides a unique perspective within the big data landscape; I believe every challenge in this space can be viewed as a systems problem, solvable by breaking it down into core algorithms and methodologies learned in theoretical courses. I welcome the opportunity to discuss this further.

Having been a student in CSC 491 and a TA years ago, I'm excited to return and incorporate my product background into the course.

You can find my LinkedIn and GitHub profiles below.

You can view my linked in and Github bellow.

All opinions are my own and do not reflect the opinion of current or former employers.

Office Hours

Office hours are by appointment. Please email me at victoria.bukta[at]mail.utoronto.ca.

Time and Location

Class is on Thursdays from 6-9PM EST.

While some lecture material will be pre-recorded and available asynchronously online, the majority of the discussion-oriented lecture material will be presented during the weekly 6-9pm lecture slot. Any remaining time will be reserved for working periods, guest lectures, demos, further discussion, etc.

Students are expected to attend class times in order to work with their team, attend valuable tutorials, demo their work, and work with the instructor.

I don't like something about this course

There's always room for improvement and I'm happy to take any feedback.

Please submit an issue on this repo, or preferably make a pull request changing or adding something you don't like.

That said, remember that your changes or concerns aren't guaranteed to be addressed how you want. I (the instructor) have the final say.

If you prefer to speak privately, please email me.

About

University of Toronto's Capstone Design Course

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 17