Skip to Content
Syllabus

Syllabus

Instructor · TAs · Overview · Weekly Schedule · Grading · Course Policies · Accommodations

Instructor

Chen Ying, Assistant Professor, Teaching Stream

c.ying@utoronto.ca

eecg.utoronto.ca/~cying/ 

Teaching Assistants

Zihan (Albert) Huang: zihang.huang@mail.utoronto.ca

Xindan Zhang: xindan.zhang@mail.utoronto.ca

Overview

This graduate-level course provides a practical introduction to modern full-stack web development, with an emphasis on the React ecosystem and contemporary web frameworks. Students will learn how frontend interfaces, backend services, APIs, databases, application state, and storage fit together to form complete web applications.

Through lectures, hands-on assignments, and a collaborative course project, students will develop not only the ability to implement modern web applications, but also the ability to reason about application architecture, data and state management, technical trade-offs, and system behavior. The course emphasizes building well-structured applications, making informed technical decisions, and understanding and verifying the systems you create.

Learning Objectives

By the end of this course, students will be able to:

  • Explain the architecture and major components of modern full-stack web applications, including clients, servers, APIs, databases, and application state.
  • Design and implement interactive user interfaces using React, Next.js, TypeScript, and modern UI tools.
  • Design and implement backend services and APIs using server-side JavaScript / TypeScript and Express.js.
  • Model, store, retrieve, and manage application data using relational databases, ORM tools, and cloud-based storage.
  • Build full-stack applications using both separated frontend/backend architectures and integrated frameworks such as Next.js.
  • Implement common application capabilities such as data fetching, mutations, persistent state, and client–server interaction.
  • Apply appropriate development practices for testing, debugging, and version control.
  • Evaluate technical choices and application behavior by considering requirements, trade-offs, and appropriate evidence.
  • Design, implement, evaluate, and communicate a collaborative full-stack web application while demonstrating sound technical judgment and understanding of the team’s work.

Technologies Covered

  • Languages: JavaScript and TypeScript
  • Frontend: React, Tailwind CSS, shadcn/ui
  • Backend: Node.js, Express.js
  • Full-Stack Framework: Next.js
  • Data and Storage: SQLite, PostgreSQL, Prisma ORM, cloud-based storage
  • Development Tools: Git, package managers, testing frameworks, and deployment platforms

Prerequisites

This course does not require prior knowledge of web development. Instead, it assumes basic programming experience. Students should be comfortable with at least one programming language (e.g., Python, Java, C/C++) and familiar with core concepts such as variables, control flow, functions, data structures, and basic debugging.

The course primarily uses JavaScript and TypeScript, but prior experience with either language is not required. If you have experience with another programming language, you should be able to learn the necessary JavaScript and TypeScript concepts as the course progresses. The course will introduce language features that are important for web development rather than provide a comprehensive programming language tutorial. Due to limited course time, students are expected to reinforce and extend their understanding through official documentation and self-directed practice outside of class.

Working through Assignment 1 (handout released on September 20) during the two-week submission window can give you an early sense of the prerequisite knowledge and level of technical work expected in the course.

The prerequisites are intended to help you assess whether you have the background needed for the course. You do not need to contact the instructor for prerequisite approval before enrolling.

Required Materials

Additional Resources

Weekly Schedule

The weekly schedule below provides a tentative outline of the planned topics and may be adjusted based on the pace and needs of the course.

WeekLectureLecture DateTopic
11September 11Course Introduction and Fundamental Web Concepts
22September 18Backend Development Fundamentals
33September 25PostgreSQL with Prisma ORM and TypeScript Introduction
44October 2React Fundamentals
55October 9JSX/TSX Syntax and React Hooks
66October 16Advanced React Concepts and Styling Fundamentals
77October 23Modern Styling Solutions and Next.js Introduction
8Reading Week (No Lecture)
98November 6Data Fetching and Mutations in Next.js
109November 13Cloud Storage and Persistent Application Data
1110November 20Additional Full-Stack Topics and Project Development
1211November 27Project Presentations
1312December 4Project Presentations

Grading

Assignments (40%)

Each assignment should be completed individually.

  • 4 assignments, 10% each

Project (60%)

Students will work in groups of 2 to 4 to develop a web application that demonstrates their understanding of the modern web technologies and frameworks covered in this course.

  • Proposal (15%): due on November 8, 2026, 11:59 PM
  • Presentation (10%): November 27 & December 4, 2026
  • Final Deliverable and Report (35%): due on December 6, 2026, 11:59 PM

Course Policies

Academic Integrity

Students are expected to follow the University’s Academic Integrity Policies  and the Code of Behaviour on Academic Matters . All submitted work must be original and properly attributed.

AI Usage Policy

This course permits the responsible use of AI tools and follows a First Think, Then AI principle.

Students are expected to develop their own initial understanding before relying on substantial AI assistance, critically evaluate and appropriately verify AI-assisted work, and document AI usage where required (e.g., reasoning.md for assignments and ai-session.md for the course project).

Expectations differ between assignments and the course project. See the AI Usage Policy Overview for the core principles, AI Use in Assignments and AI Use in the Course Project for assessment-specific expectations, and AI Examples & Checklists for practical examples.

Assignment Remarking

If you believe an assignment may have been graded incorrectly and would like it to be reviewed, please submit an Assignment Remarking Request Form to the instructor in person, on paper (after a lecture or during office hours) within two weeks of the grade release. Email submissions are not accepted. If you are unable to attend in person, you may ask a classmate to submit the form on your behalf.

The remarking process may also be used if you would like clarification on how a particular part of your submission was graded. Full grading criteria and relevant test details will be published on the assignment handout after grades are released, so please review these materials before submitting a request.

To keep remarking requests organized and reviewed consistently, all requests should be submitted through the remarking form rather than by email to the instructor or TAs.

All remarking requests will be processed together after the two-week submission window closes. You will receive an email once your request has been reviewed.

Communication

Piazza  will serve as the primary platform for course-related questions and communication with the teaching team.

Students may post anonymously to their classmates; however, their identities will remain visible to the instructor and TAs. Questions that may be useful to other students should generally be posted publicly.

Use a private post only when your message contains information that should not be shared with the class. Formal processes described elsewhere in the course, such as assignment remarking, should be followed through the designated procedure.

Accommodations

The University of Toronto supports accommodations for students with diverse learning needs, which may be associated with mental health conditions, learning disabilities, autism spectrum, ADHD, mobility impairments, functional/fine motor impairments, concussion or head injury, visual impairments, chronic health conditions, addictions, D/deaf, deafened or hard of hearing, communication disorders and/or temporary disabilities, such as fractures and severe sprains, or recovery from an operation.

If you have a learning need requiring an accommodation the University of Toronto recommends that students register with Accessibility Services  as soon as possible.

We know that many students may be hesitant to reach out to Accessibility Services for accommodations. The process of accommodation is private; we will not share details of your needs or condition with any instructor.

If you feel hesitant to register with us, we encourage you to reach out for further information and resources on how we can support. It may feel difficult to ask for help, but it can make all the difference during your time here.

Phone: 416-978-8060 Email: accessibility.services@utoronto.ca

Equity, Diversity and Inclusion

U of T Engineering strives to create equitable and inclusive learning environments for all individuals. Each person has their own lived experiences and socio-cultural identities that shape their worldview and their experiences with privilege and oppression.

Looking for community? Feeling isolated? Not being understood or heard?

You are not alone. You can talk to anyone in the Faculty that you feel comfortable approaching, anytime — professors, instructors, teaching assistants, department academic advisors , student leaders or the Assistant Dean of Diversity, Inclusion and Professionalism.

You belong here. In this class, the participation and perspectives of everyone is invited and encouraged. The broad range of identities and the intersections of those identities are valued and create an inclusive team environment that will help you achieve academic success. You can read the evidence for this approach here .

You have rights. The University Code of Student Conduct  and the Ontario Human Rights Code  protect you against all forms of harassment or discrimination, including but not limited to acts of racism, sexism, Islamophobia, antisemitism, homophobia, transphobia, ableism, classism and ageism. Engineering denounces unprofessionalism or intolerance in language, actions or interactions, in person or online, on- or off-campus. Engineering takes these concerns extremely seriously and you can confidentially disclose directly to the Assistant Dean for help here.

Support for Indigenous Students

If you are an Indigenous engineering student, you are invited to join a private Discord channel to meet other Indigenous students, professors, and staff, chat about scholarships, awards, work opportunities, Indigenous-related events, and receive mentorship. Email Professor Jason Bazylak if you are interested.

Indigenous students at U of T are also invited to visit Nations House’s (FNH) Indigenous Student Services for culturally relevant programs and services. If you want more information on how to apply for Indigenous specific funding opportunities, cultural programs, traditional medicines, academic support, monthly social events or receive the weekly newsletter, go to the FNH website , email or follow FNH on social media: Facebook , Instagram , or TikTok . A full event calendar is on the CLNX platform. Check CLNX often to see what new events are added!

As part of the Faculty’s commitment to improving Indigenous inclusion, all U of T Engineering faculty, staff and students are called upon to start or continue their personal journeys towards understanding and acknowledging Indigenous peoples’ history, truths and culture. The Faculty’s 2018 Blueprint for Action report  identified many actions to (re)building relationships between U of T Engineering and Indigenous peoples. These actions also align with the Truth and Reconciliation Commission of Canada’s Calls to Action .

One action is for non-Indigenous people to make a Land Acknowledgement in lectures and/or before important meetings. For reference, here are examples from the University and the COU: University of Toronto’s Statement of Acknowledgement of Traditional Land  and Council of Ontario Universities’ Acknowledgement of Traditional Land .

To combat the fear that land acknowledgements have become largely performative and rote, we advise that the acknowledgement is done with sincerity and reflection on how you benefit from using the land, and on your commitments to Truth and Reconciliation. Take this training  to learn more.

As an environmentalist, I have always been appreciative of the fact that right now we are in the territory covered by the Dish With One Spoon Wampum Belt. This is a treaty originally by the Anishinaabe, Mississaugas, and the Haudenosaunee. It is not a rights-based agreement, but rather a responsibility-based agreement. Hundreds of years ago the First Nations People in this area recognized our responsibility to share and protect the land. Since that first wampum belt many other First Nations and Europeans have joined in this treaty. The First Nations close ties to the land enabled them to see the needs of the land when others could not or choose not to see. For that I am thankful to the Indigenous People of this land we work and study on.

Looking for help personalizing the land acknowledgement? Professor Jason Bazylak  is the Dean’s Advisor on Indigenous Inclusivity. He is willing to chat with anyone on how to go about presenting and/or discussing this with your class. He can be reached at jason.bazylak@utoronto.ca. You can also contact Marisa Sterling, P.Eng. in the Dean’s Office at marisa.sterling@utoronto.ca.

Wellness and Mental Health Support

As a University of Toronto Engineering student, you have a Departmental Undergraduate Advisor  or a Departmental Graduate Administrator  who can support you by advising on personal matters that impact your academics. Other resources that you may find helpful are listed on the U of T Engineering Mental Health & Wellness webpage , and a small selection are also included here:

We encourage you to access these resources as soon as you feel you need support; no issue is too small. You may reach out to the counsellors at U of T Telus Health Student Support  for 24/7 free and confidential counselling support.

If you find yourself feeling distressed and in need of more immediate support visit uoft.me/feelingdistressed  or U of T Engineering’s Urgent Support – Talk to Someone Right Now .