Course Syllabus (Official)#
Below is the official UBC-mandated Course Syllabus for CPSC 455.
Course Information#
Name |
Description |
---|---|
Course |
CPSC 455 |
Term |
2024 Summer Term |
Instructor |
Ian McLean and and Dr. Firas Moosvi (he/his/him) |
Lectures |
Every other Saturday starting May 11th: Online |
Mode of Delivery |
Online |
Student Hours |
To get live 1 on 1 help in the course, use Slack or see Zoom at various times (see below for schedule). |
Canvas URL |
|
Course Discussion |
To ask any course-related questions, use private (personal, not useful for anyone else) or public (helpful for other) messages on Slack |
You can find all the important term dates in the UBC Academic Calendar.
Warning
If there is a lab and/or tutorial listed on the SSC for this course, You must register for all course elements without conflicts, otherwise the department will remove you from the course! There are usually lab or tutorial exemptions for some students (i.e. those repeating the course) and instructions for that will be in this syllabus.
For information on how to contact your course instructor, including office hours, see the course website.
Calendar Description#
CPSC 455 (3) Applied Industry Practices
The UBC calendar description of this course is:
Hands-on project, mentored by industry experts, integrating skills relevant to early career in the computing industry: technical skills, communication, teamwork, networking and portfolio building. [2.5-2-0]
Prerequisite: Pre-reqs: One of CPSC 310, CPEN 321.
Corequisite: N/A
Warning
If there is a lab and/or tutorial listed on the SSC for this course, You must register for all course elements without conflicts, otherwise the department will remove you from the course!
Contact Us#
Team Member |
Pronounce as |
Contact |
Office Hour |
---|---|---|---|
Ian McLean; Instructor |
Ian McLean |
||
and Dr. Firas Moosvi (he/his/him); Instructor |
Fur-az Moose-vee |
||
Cathy Yang |
Cathy Yang |
||
Davis Song |
Davis Song |
||
Yixuan Li |
Yixuan Li |
||
Michelle Kim |
Michelle Kim |
||
Justin Jao |
Justin Jao |
||
Mahmoud Al Khatib |
Mahmoud Al Khatib |
Learning Outcomes#
The Learning Outcomes for this course are:
Typically, learning objectives state what you will be able to do. As we intend this to be an intensely practical course, we instead discuss what you will have done upon successfully completing this course:
applied a variety of current, popular, highly industry-relevant technologies;
expanded your professional portfolio with compelling, hands-on
experience working on a complete software project, start to finish;
applied good communication and collaboration practices in a small-team environment; and
networked with industry contacts and potential mentors.
This course will be a LOT of fun, you’ll get lots of practice writing a lot of code, and you’ll learn some cool things from industry folks.
More details about the course can be found on the course website.
Learning Materials#
There is no requirement to purchase textbooks or any other materials for this course. However, it may be difficult to complete the course successfully without your own computer. Many of the resources we use are cloud-based; so, lab, library, and other public computers may suffice, but you’ll need to be very careful with your time and planning. We will require you to register with and use various online resources that may only be available on servers outside Canada. If this is an issue for you, please raise it with the course staff immediately by the end of the first workshop. For a rundown of likely tools and systems used this term, please see the course schedule.
Course Schedule#
The tentative course schedule, subject to change, can be found on the course website.
This is the tentative plan for CPSC 455 this term. Things may change depending on many factors so this is subject to change.
Wk |
Date |
Topic |
Speaker |
Lab |
---|---|---|---|---|
1 |
May 11 |
HTML/CSS/Javascript |
Ian |
Lab 1 |
2 |
May 18 |
No Class Meeting |
- |
Lab 2 |
3 |
May 25 |
Front End: React & Redux |
TBD |
Lab 3 |
4 |
June 1 |
No Class Meeting |
- |
Lab 4 |
5 |
June 8 |
Back End: NodeJS & Express |
TBD |
Lab 5 |
6 |
June 15 |
No Class Meeting |
- |
Lab 6 |
7 |
June 22 |
NoSQL with MongoDB |
TBD |
- |
8 |
June 29 |
No Class Meeting |
- |
Lab 7 |
9 |
July 6 |
No Class Meeting |
- |
Lab 8 |
10 |
July 13 |
Release Engineering |
TBD |
Lab 9 |
11 |
July 20 |
No Class Meeting |
- |
Lab 10 |
12 |
July 27 |
Portfolio Building and Networking |
TBD |
Lab 11 |
13 |
Aug 3 |
[OPTIONAL] Practice Talk/Demo at 10 AM |
Firas |
- |
13 |
Aug 6 |
[OPTIONAL] Practice Talk/Demo at 5 PM |
TBD |
- |
13 |
Aug 7 |
Final Showcase! |
N/A |
- |
Typical 2-week module#
A typical 2-week unit starts with the pre-class prep work for that unit’s workshop. The unit then stretches to the next workshop—though we’ll occasionally deviate from this schedule:
Stage |
Activity |
Due |
---|---|---|
Pre-workshop |
Prep work (including technical setup) |
TBD |
Workshop (Sat AM) |
Initial practice with technology/skill; career discussion with an industry expert |
TBD |
Workshop (Sat PM) |
Graded TA and peer project design/code reviews; group work time |
TBD |
Week 1 lab |
Supplemental instruction; facilitated assignment or project |
- |
Pre-2nd lab |
Assignment due (push latest commit to repo for grading) |
Monday morning |
Week 2 lab |
Assignment grading demos; facilitated project work |
TBD |
Next Sat workshop |
On to the next unit; Scrum updates |
Saturday at 10 PM |
Evaluation#
The grading scheme for this course is:
Tip
Prior to July 7th 2024, Participation was set to 11% and Teamwork was set to 9%, now it’s an even 10/10 split. This change was made to make accounting easier, and since we no longer require students to attend the lab sections.
Item |
Weight |
Due date(s) |
---|---|---|
Team Project |
50% |
Bi-monthly |
Lab Assignments |
30% (6 x 5%) |
TBD |
Participation |
10% |
Weekly |
Teamwork |
10% |
TBD |
Breakdowns of Items (July 13, 2024)#
Here is a more complete breakdown of each of the grading items
30% Lab Assignments (5% each)
50% Final project
5% – project demo for industry judges
15% – project demo for course staff
25% – final project submission (code, documentation, etc.) … we then apply a weight to this based on intra-team survey results
5% – design review grades (5 design reviews worth 1% each)
10% Participation
4% – Scrum Reports
3% – Survey Completion
3% – Slack Claps
10% Leadership/Teamwork
7% – Intrateam Survey Results
3% – Design Review Participation
Attention
Our expectation is that all team members will contribute substantially to the project, and will be scored by both the participation and teamwork components. In cases of lower contributions, the final project mark for individuals may also be impacted.
Note
The bi-monthly workshops are essential for this course and students must be present for all workshops. Students must have extensive consultations with the course staff in advance of an absolutely unmissable pre-planned absence such as a wedding, funeral, birth of a child, etc.
During these consultations, students may be recommended to withdraw from the course if the teaching team feels the absence would be too disruptive.
Equity, Inclusion, and Wellness#
The CS Department has a fantastic statement on Equity, Inclusion, and Wellness with a large number of resource links available, for example if you have concerns or needs for accommodation.
We hope that all of us in the CPSC 455 also create a welcoming, respectful, inclusive, and positive environment. While the course is unlikely to be stress-free (because learning and projects are hard work, and hard work is often stressful), we also hope you will not find the course overwhelming. You may have ideas, questions, or concerns about creating such an environment in the course; we may make a mistake; or we may just plain do something wrong. If any of that happens, please let someone know. Talk to one of us on the course staff if you’re comfortable or to someone from the link above (or the Head or Undergraduate Associate Head of the department) if you’re not.
Passing Criteria#
All students must satisfy ALL conditions to pass the course:
Pass the Lab Assignments component of the course with an average grade of at least 50%,
Pass the Team Project milestones with a grade of at least 50%.
If the passing requirements above are not met, the student will be assigned the lower of their earned course grade or, a maximum overall grade of 45 in the course.
Course Policies#
Students on the Waitlist#
Waitlist Policies#
Waitlisted students: Be sure to participate fully in the course to maintain your standing, and be ready to be flexible with your project group assignment.
Waitlisted students in project groups: We may form project groups entirely from waitlisted students or by replacing students who dropped from existing teams, but we are unlikely to provide free choice of group to waitlisted students.
Project Groups#
Your course project will be completed in a group of four. All members of the group must be registered in the same lab section!
We are open to discussing groups of three or five in extraordinary cases (including where the our lab size just isn’t divisible by four!), but do not plan or expect to have a group size besides four.
Absences#
Emergencies: If you’re ill or an accident or emergency occurs, contact the course staff and your group ASAP to let them know at least that you will be or did miss because of an emergency. Follow-up with the course staff with enough details for us to be able to accommodate your absence in terms of grades. Expect to put in a lot of work to make up the missed time!
Planned absences from workshops: If you will miss a single workshop in the term because of scheduling conflicts, communicate that to the course staff RIGHT AWAY and by at least a week before the add/drop deadline. We may be able to accommodate that. Also be sure your group knows once you’ve formed a group. If you will miss two or more workshops, you should drop the course. That’s the equivalent of missing four weeks of lecture in a regular course that has mandatory lecture attendance and is NOT ACCEPTABLE. See rubric for absences here.
Planned absences from labs: If you have to miss a small number of labs over the term for good reasons, we should be able to accommodate that. Be sure to let us and your group know in advance. If possible, we may want you to attend the other day’s lab.
Planned absence from final showcase: Treat this like missing two or more workshops (as discussed above) or a course’s final exam. You should likely DROP THE COURSE.
Contact us privately on Slack (preferred) or at cpsc455-staff@cs.ubc.ca in all of these cases. If you contact us on Slack, please add ALL course instructors (Ian and Firas) to your Slack chat.
Late submissions#
For all course components, if you have extenuating circumstances, contact us privately on Slack (preferred) or at cpsc455-staff@cs.ubc.ca ASAP, ideally in advance, and we will try to handle the situation empathetically, reasonably, and respectfully. If you contact us on Slack, please add ALL course instructors (Ian and Firas) to your Slack chat.
A few components have specific additional rules, see below.
Individual Assignments#
Individual assignments are graded by a live demo. As a result, managing late assignments is rather burdensome! We have a fairly generous late policy when it comes to the individual assignments:
first late - no penalty
second late - 30% penalty
third late - assignment gets 0
Once an assignment is late, you can submit your assignment by Friday at 10PM without incurring further penalties. You don’t need to do anything to let us know about this, just submit your late assignment by Friday at 10PM and you’ll be graded either at the end of workshop or the following week in the labs (if we run out of time at the end of workshop).
Scrum reports#
We do not accept late Scrum updates. Instead, update us on where you are when the time comes for the update! (We’ll allow a reasonable grace period. If your computer was hit by a bus with the flu, please get to a library branch or UBC lab as soon as you’re able and post your (rather exciting) update!)
Final showcase:#
It would be logistically challenging to consider late final presentations and impossible to consider them fully. Try to arrange, even in emergencies, that someone on your team can handle the presentation. Of course, contact us in case of emergencies!
Collaboration and Academic Misconduct#
Our course builds on the department’s academic integrity statement with additional rules designed to create a professional but collaborative environment.
For group submissions:
Group submissions are the joint effort of your group. We place no specific limits on your collaboration except where we explicitly ask you to document and discuss it (Scrum updates, peer evaluations, individual components of presentations/reports, etc.). Collaborate productively so that everyone learns!
The majority of your project should be yours, as a group. However, we encourage you to find help and resources, as you would in a professional setting! Where you use or adapt existing code, you must cite it and be cognizant of its license. Where you get help from others, you must acknowledge that help. (This is especially critical for classmates, as it may benefit their participation grade!) Citations/acknowledgments should be in a clear section in your main README.md, in your license (if you have one!), and repeated locally where you used the code/help.
Critically, be able to justify and explain your design: no piece should be obscure to your group as a whole, and little should be obscure to any individual team member.
For individual submissions:
Except where a tutorial used for the assignment guides you to do so, do not copy-paste code. Ask for help only from course staff or in “public venues” from fellow students: during lab or workshops or on public Slack channels. Otherwise, ensure you follow the group submission guidelines for citation and acknowledgment!
Critically, be able to justify and explain all of your design.
We hope these rules encourage collaboration that helps you learn. Please inform us if you find they are imposing unreasonable limits on your work!
Privacy, Online Systems, and CS Alias#
We will require you to register with a variety of web-based tools that may be hosted outside Canada. In some cases, we may register you directly for such services using your @ugrad.cs.ubc.ca email alias (as listed in https://www.cs.ubc.ca/getacct).
Thus, we want to remind you to keep your @ugrad alias private, just as you would any other account information. If you choose not to keep your @ugrad alias confidential, please note that UBC will proceed on the assumption that you do not object to the services we use potentially identifying you personally, and that you are consenting to the storage of personal information on their servers outside Canada.
Communication#
Course communication will be a combination of face-to-face and on Zoom (in workshops, labs, and your team meetings), via our course website, on GitHub, or on Slack.
Slack is an industry-standard communication tool for teams, and learning to use it is a course goal! Indeed, participation on Slack will factor into your participation grade for the course. As a rule, we prefer even private correspondence to go over Slack. (You and your group may have a primary Slack point-of-contact on the course staff assigned to you.)
Our preferred mode of communication is: Create a single chat with all course instructors (Ian and Firas), and send your message there. We will get back to you there.
Tip
DO NOT MESSAGE US INDIVIDUALLY ; we will just direct you to send a message to all instructors.
Note that Slack does store information on non-Canadian servers. So, if you wish to contact the course staff on a sensitive or private topic, please e-mail cpsc455-staff@cs.ubc.ca.
We may also occasionally communicate with you via your @ugrad.cs.ubc.ca e-mail alias or the e-mail address registered for you at the UBC student service centre. Be sure to check both addresses or forward them to somewhere you check.
Finally, we may require some additional communication mechanisms as the term goes on, such as LinkedIn.
Acknowledgements#
Credit for the creation of this course goes largely to contributions by:
Danya Karras, UBC Alum, D2L Software Engineering Manager
Ian McLean, UBC Alum, D2L Sr. dev
Stephanie Mah, UBC Alum, Produce8 Software Developer
Steve Wolfman, UBC Professor of Teaching
Land Acknowledgement#
UBC’s Point Grey Campus is located on the traditional, ancestral, and unceded territory of the xwməθkwəy̓əm (Musqueam) people. The land it is situated on has always been a place of learning for the Musqueam people, who for millennia have passed on their culture, history, and traditions from one generation to the next on this site.

UBC Policies#
University Policies#
UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions.
Details of the policies and how to access support are available on the [UBC Senate website](Details of the policies and how to access support are available on the UBC Senate website.).
Final Examinations#
The examination period for 2024 Summer Term is Monday June 23 - 27 (Term 1) and Tuesday Aug 12 - 16 (Term 2). Except in the case of examination clashes and hardships (three or more formal examinations scheduled within a 24-hour period) or unforeseen events, students will be permitted to apply for out-of-time final examinations only if they are representing the University, the province, or the country in a competition or performance; serving in the Canadian military; observing a religious rite; working to support themselves or their family; or caring for a family member. Unforeseen events include (but may not be limited to) the following: ill health or other personal challenges that arise during a term and changes in the requirements of an ongoing job. Further information on Academic Concession can be found under Policies and Regulation in the UBC Academic Calendar.
Copyright Disclaimer#
Diagrams and figures included in lecture presentations adhere to Copyright Guidelines for UBC Faculty, Staff and Students and UBC Fair Dealing Requirements for Faculty and Staff. Some of these figures and images are subject to copyright and will not be posted to Canvas. All material uploaded to Canvas that contain diagrams and figures are used with permission of the publisher; are in the public domain; are licensed by Creative Commons; meet the permitted terms of use of UBC’s library license agreements for electronic items; and/or adhere to the UBC Fair Dealing Requirements for Faculty and Staff. Access to the Canvas course site is limited to students currently registered in this course. Under no circumstance are students permitted to provide any other person with means to access this material. Anyone violating these restrictions may be subject to legal action. Permission to electronically record any course materials must be granted by the instructor. Distribution of this material to a third party is forbidden.
Grievances and Complaints Procedures#
A student who has a complaint related to this course should attempt to resolve the matter with the instructor first. Students may also talk to other members of the teaching team (TAs, course coordinators, co-instructors) if they do not feel, for whatever reason, that they can directly approach their own instructor.
Academic Integrity#
The academic enterprise is founded on honesty, civility, and integrity. As members of this enterprise, all students are expected to know, understand, and follow the codes of conduct regarding academic integrity. At the most basic level, this means submitting only original work done by you and acknowledging all sources of information or ideas and attributing them to others as required. This also means you should not cheat, copy, or mislead others about what is your work. Violations of academic integrity (i.e., misconduct) lead to the breakdown of the academic enterprise, and therefore serious consequences arise and harsh sanctions are imposed. For example, incidences of plagiarism or cheating may result in a mark of zero on the assignment or exam and more serious consequences may apply if the matter is referred to the President’s Advisory Committee on Student Discipline. Careful records are kept in order to monitor and prevent recurrences.
A more detailed description of academic integrity, including the University’s policies and procedures, may be found on the Academic Integrity Website
If you have any questions about how academic integrity applies to this course, please consult with your professor.
Grading Practices#
Faculties, departments, and schools reserve the right to scale grades in order to maintain equity among sections and conformity to University, faculty, department, or school norms. Students should therefore note that an unofficial grade given by an instructor might be changed by the faculty, department, or school. Grades are not official until they appear on a student’s academic record. If you have any questions about how academic integrity applies to this course, please consult with your professor.
Disability Assistance#
The Centre for Accessibility (CFA) ensures educational equity for students with disabilities, injuries or illness. If you are disabled, have an injury or illness and require academic accommodations to meet the course objectives, visit the CFA website for more information or contact the CFA directly at: info.accessibility@ubc.ca.
Equity, Human Rights, Discrimination and Harassment#
UBC is a place where every student, staff and faculty member should be able to study and work in an environment that is free from human rights based discrimination and harassment. If you require assistance related to an issue of equity, discrimination or harassment, please contact the Equity Office or email (info@equity.ubc.ca), your administrative head of unit, and/or your unit’s equity representative.
Health & Wellbeing#
At UBC health services to students are provided by Health and Wellbeing. Nurses, physicians and counsellors provide health care and counselling related to physical health, emotional/mental health and sexual/reproductive health concerns. As well, health promotion, education and research activities are provided to the campus community. If you require assistance with your health, please contact Health and Wellbeing in person (UBC Life Building, Room 1400), or by phone (604.822.8450) for more information or to book an appointment.
Sexual Violence Prevention and Response Office (SVPRO)#
SVPRO is a safe and confidential place for UBC students, staff and faculty who have experienced sexual violence regardless of when or where it took place. Just want to talk? We are here to listen and help you explore your options. We can help you find a safe place to stay, explain your reporting options (UBC or police), accompany you to the hospital, or support you with academic accommodations. You have the right to choose what happens next, and we believe you. We support your decision, whatever you decide. Visit svpro.ubc.ca, email them at svpro.vancouver@ubc.ca, or call us at 604.822.1588.
UBC Investigations Office (IO)#
The UBC Investigations Office (IO) responds to formal reports of sexual misconduct and discrimination involving UBC students, faculty, and staff through investigations and alternative resolution processes. If you or someone you know has experienced sexual assault or some other form of sexual misconduct by a UBC community member and you want the UBC Investigations Office (IO) at UBC to investigate, please contact the IO. Investigations are conducted in a trauma informed, confidential and respectful manner in accordance with the principles of procedural fairness. You can report your experience directly to the IO via a secure webform here or by calling 604.827.2060 or online by visiting io.ubc.ca.
SAFEWALK#
You do not have to walk alone on campus. If you feel unsafe walking alone on campus after dark, or if you are not too sure how to get somewhere on campus, then Safewalk can accompany you to your destination.
Call Safewalk at 604.822.5355 during their opening hours from 8:00 PM – 2:00 AM.
For more information, visit our website or download the UBC SAFE app on iOS and Android devices.