Topics in Computer Science: Industry Skills

The course will be fully online for summer 2020 (due to COVID-19). For more information, please go here:

Update on the state of the course for summer 2020 (COVID-19)

 

Registration note: For administrative reasons, registration for 2020S is to the waitlist only. Visit the UBC calendar page for CPSC 436I to get the schedule, but use only the waitlist section to actually register.

CPSC 436I (Topics in Computer Science, undergraduate: Industry Skills) is a 3 credit course in 2020S (across the whole summer, meeting on roughly alternate Saturdays for everyone and weekly Tue, Wed, or Thu early evening for individual labs).

The course is aimed at students who have taken CPSC 310 and who want to build additional technical and career skills relevant in industry, for co-op or full-time jobs.

You can find a detailed description below.

 

Course description: Technology in the computing industry moves quickly, and “hot” technology may not be appropriate in conceptually-driven CPSC courses. Experience with these technologies prepares students for entering co-op and industry positions and builds context for the conceptual content of other courses. A personal project with current technologies also serves as a portfolio piece that can help students launch fulfilling careers.

In this course, students design, implement, and release a project in teams of 2-4 using a suite of related, current, and in-demand technologies. Specific technologies will change over time, but a current example would be full-stack web development with technologies including HTML, CSS, JavaScript, React, MongoDB, NodeJS, and release engineering systems. These are taught with a “mobile-first” focus and via cloud-based technologies like AWS and heroku.

To deepen the career preparatory experience, the course is primarily taught via a series of interactive, hands-on workshops led by industry experts who are ideally departmental alumni, held on alternating weekends. Industry experts give a 2 hour interactive introduction to a technology, a 30 minute discussion of their career path and guidance for early-career professionals, and support facilitation of a 2 hour hands-on session to work with the technology. Students also spend 30 minutes presenting their work in progress to other teams in their lab section. By the second workshop, students propose a project that must integrate technologies from each of the first five modules. (See below for details about the sixth, non-technical module.)

Along with the workshops, students also attend one 2-hour weekly evening lab each week. The labs offer hands-on work time for individual assignments and the group project and supplemental instruction time.

Part of the second half of the workshop and the second lab of each unit will also be used for demo/review-based grading by TAs (assignments and project) and peers (project). The design reviews serve as a forcing function for project progress and to build community in the course, encouraging students to contribute to each others’ progress.

Finally, the term closes with a final showcase session where students present their work to their peers, the course staff, and departmental and especially industry guests.

Students’ work products in the course include: the course project done in teams of 2-4 and small individual assignments for most modules to demonstrate basic proficiency with the technologies. For the project, students will submit their final running project and source code and present about the project’s result and process. They will also produce interim products of various sorts, including internal and external code reviews, team member evaluations, and interim presentations and demos.

We will offer this course as CPSC 436I in 2020S to 108 students. The six modules expected are: HTML5/CSS/JavaScript intro, React/Redux front-end, NodeJS back-end, NoSQL and MongoDB, release engineering, and networking and portfolio-building.