Advanced Software EngineeringCPSC 410, Winter Term 2 2024, Instructor: Caroline Lemieux (clemieux@cs.ubc.ca) Mo/We 2:00PM-3:30PM, IRC-Floor 1-Room 4 |
This is Not the Official Course Website ^This webpage serves to provide some information about the course description which may help students who are deciding whether to take/drop the course. The official course webpage is the canvas webpage. This canvas page contains all the details of the schedule, the course slides, etc. There is also an official piazza, on which course updates will be posted. You can find the full syllabus here; the most up-to-date verison will be on canvas. |
Course description ^Course-level learning goalsThis course builds on your existing software engineering knowledge and experience with a hands-on approach to collaborative software engineering. The course is project-heavy and requires you to plan, coordinate and work with a team of your colleagues. You will design, build and evaluate two moderate-sized team projects throughout the course of the term, and we will use these as vehicles for exploring what it takes to work with a team break down a software project, and coordinate with other team members in a productive manner The topics of the projects will also provide a grounding in programming language design and implementation, and tools and techniques to aid programmers in understanding and analysing their code. In particular, we will explore two main focus areas (one for each project):
Interwoven with these focus areas, we will discuss empirical evaluation methods appropriate to software engineering projects in general, as well as relevant object-oriented programming techniques for implementing languages and program analyses. You will exercise good practices in development and teamwork via the team projects throughout the term, while regular exercises will cover both specific techniques and encourage you to problem-solve, exploring and evaluating alternative designs and implementation choices. Course-Level Learning ObjectivesUpon successful completion of this course, students will be able to:
How it will goThis will be a practical course: during the term you will complete two group projects (one on each of the focus areas above), as well as roughly-bi-weekly individual quizzes which will form a continuous assessment of your progress throughout the term. Plan to spend at least 6 hours a week on average on this course in addition to the contact time, and be sure to plan your individual and team activities carefully from the beginning to avoid falling behind. Note that this is an average: some weeks may be more or less intensive and your mileage may vary; you will definitely benefit from spreading the work for each deadline out, especially for the projects. Make sure to agree clearly with your project groups what your expectations are of each other, communicate regularly and revise your plans as needed; a key purpose of the projects is learning to work together as an effective development team, and you and your team members are collectively responsible for ensuring your team’s success and the wellbeing of your other team members. |