COSC 310 – 001 – Software Engineering
Winter 2023 – Term 2
Land Acknowledgement
We respectfully acknowledge the Syilx Okanagan Nation and their peoples, in whose traditional, ancestral,
unceded territory UBC Okanagan is situated.
COSC 310: Software Engineering
Faculty: Irving K. Barber Faculty of Science
Department: Computer Science, Mathematics, Physics, and Statistics
Instructor(s): Dr. Gema Rodriguez-Perez
Duration: Term 2 Winter 2023
Delivery Modality: In-Person
Course Location: COM 201
Course Days: Wed/Fri
Class Hours: 12:30 PM - 2:00 PM
Office Hours: M/W 4:00 – 5:00 pm
Course Description
Academic Calendar Entry: Techniques to construct large systems using fundamental activities of specification, design, implementation, testing, and maintenance. Various life cycle models, exposure to software devel opment tools, modelling techniques, good development practices, and project management. [3-2-0]
Prerequisites: One of COSC 210, COSC 222, COSC 223 and third-year standing
Students who lack the prerequisites should not be registered for this course and will receive a failing grade if they remain in it. Any exceptions must be brought to the attention of the instructor immediately.
Learning Outcomes:
Upon successful completion of this course, students will be able to:
1. Evaluate software engineering processes used to build modern industrial-calibre systems by justifying their benefits and tradeoffs.
2. Elicit, deconstruct, and refine functional requirements and quality attributes such that they are described succinctly, completely, and precisely.
3. Devise and justify high- and low-level designs to support a given set of requirements and in support of future evolutionary needs.
4. Carry out the implementation of a design incorporating ethical and security implications of code-level choices and software process and methodological approaches.
5. Independently acquire and apply modern and unfamiliar technology and language stacks.
6. Validate systems using both black-box and white-box approaches to reason about, and improve the quality of a software system.
Course URL: https://canvas.ubc.ca
Assessment
• Quizzes: (total: 20%)
o Quiz 10 % (each quiz)
• Project: (total: 60%)
o Project Grade = Teamwork Grade * ((M1 grade + M2 grade + M3 grade + M4 grade+ M5 grade)). M1,M2,M3,M4 and M5 are the milestones deliverables
o Teamwork Grade = % Scrums attended * % Surveys
• Individual work (total: 20%)
o TA/Instructor weekly meetings * team survey evaluations
Passing criteria: To pass the course, a student must receive: an overall course grade of at least 50%.
Otherwise, assignments/quizzes/projects will not be counted, and the students mark will be 45% or the combination of the assignments/quizzes/projects in the above proportions, whichever is lower. Studentswill not be able to receive a passing grade if they are not registered to the required lab section.
Final Grade: Final grades will be based on the evaluations listed above, and the final grade will be assigned a ccording to the standardized grading system outlined in the UBC Okanagan Calendar.
Grievances and Complaints: A student who has a complaint related to this course should follow this procedure: The student should attempt to resolve the matter with the instructor first. Students may talk first to someone other than the instructor if they do not feel, for whatever reason, that they can directly approach the instructor. If the complaint is not resolved to the student's satisfaction, the student should e-mai the Department Head Dr. Sylvie Desjardins at
[email protected]
Course Format
The class will be offered in-person.
Lectures: This course is given in-person, i.e. both lectures are given in class as shown the schedule on Canvas.
Quizzes:
- There will be two quizzes during the course.
- There is no exam in this course
Labs
- Labs will be offered in-person as indicated on page 1 of this syllabus.
- A student must be registered in one lab for their assignments to be accepted.
Quizzes
• Platform: Quizzes will be held in-person.
• Scope: They will focus on material discussed in the lectures. Only language accepted for coding in the exams is Java.
• Format: The quizzes in this course are all closed-book, so you are NOT permitted to access any of the course materials, including your notes, during the quiz. You are also NOT to communicate with anyone about the exam during the scheduled write time or after the examination – you are to work independently. Communication with other students (written, text, verbal, etc.) is not permitted and will constitute Academic Misconduct.
Missed Graded Work
Missed Quiz: If a student misses a quiz without acceptable excuse according the UBC Okanagan's policy on excused absences from examinations, the mark received will be zero. If an acceptable excuse is provided to the instructor, then the instructor will reschedule the quiz.
Late assignments: Except for extreme situations (e.g., illness, childbirth, or bereavement supported by a written proof such as a doctor’s note), the following policy is applied to late assignments:
• 0 to 24 hours late: 25% mark deduction (e.g., if an assignment is worth 20 marks, then 5 marks will be deducted regardless of the mark you get in the assignment; no negative marks will be given).
• 24 to 48 hours late: 50% mark deduction
• More than 48 hours: no mark.
Textbook and Reference Materials
• Course website and discussion forum on Canvas
• Lecture Notes (available on Canvas).
• Textbook: Y. D. Liang, Intro to Java Programming and Data Structures, 11th Edition, ISBN: 0134670949, 2017 (Earlier editions are ok).
Supplemental Learning (SL)
This course may come with SL sessions. SL is an academic enhancement program designed to help students match what they are learning in class with how to best engage with and study that information. SL should provide additional support for students outside of class time. More information about SL program will be given during class time and can be found on: https://students.ok.ubc.ca/academic-success/learning-hub/supplemental-learning/
Important Dates
http://www.calendar.ubc.ca/okanagan
Course Schedule (tentative)
The course schedule contains the most up-to-date information and important dates for main events such as assignments due dates and tests. Note that these dates and topics are subject to change. Any such change
will be announced to students.
Week
|
Topics
|
Project deadlines
|
Others
|
1
|
1. Introduction
2. Version control System and tools
|
|
|
2
|
1. Software Process
2. Software Process models
|
|
|
3
|
1. Teams and Project Planning
2. Requirements & User Stories
|
Milestone #1 –
|
Scrum survey
|
4
|
1. Specifications & User Stories
2. System modeling/Architectural
|
|
|
5
|
1. System modeling/Architectural design
2. Testing, black box
|
|
Scrum survey
|
6
|
1. Testability and Assertions
2. Quiz 1
|
Milestone #2
|
Scrum survey
|
7
|
Midterm Break
|
Midterm Break
|
|
8
|
1. Design Patterns (I)
2. Design Patterns (II)
|
|
Scrum survey
|
9
|
1. Design Patterns (III)
2. Design Patterns (IV)
|
Milestone #3
|
Scrum survey
|
10
|
1. Highlevel Design(I)
2. Highlevel Design(II)/Reuse.
|
|
Scrum survey
|
11
|
1. Design Principles (I)
2. Design Principles (II)
|
|
Scrum survey
|
12
|
1. Refactoring (I)
2. Refactoring (II)
|
Milestone #4 –
|
Scrum survey
|
13
|
1. Quiz 2
2. Software Automation
|
|
Scrum survey
|
14
|
1. Security/Ethics
|
Milestone #5 -
|
Scrum survey
|
PROJECT: Students will also work on a project that aims to give them a hands-on experience of using the topics learned in one relatively large program. Labs will be used for students to work on and plan their project together with their TA. In addition to that, students need to submit 4 project milestones. These milestones are reports indication different parts and updates of the projects. Guidance will be given during class and lab time for different parts. As the semester advances, less guidance will be provided and students will be more and more expected to come up with their own design.
DUE DATES: The due dates of the assignments and project parts are posted on Canvas and can be seen on the schedule provided early.
LABORATORY/TUTORIAL MEETING TIMES: Labs will start on Monday, January 16th. It is strongly recommended to be prepared for the lab, so that students can use the lab time for planning the week and update the TA properly. Further details on labs will be available on Canvas. Students must be registered in a lab (secondary activity) for this course.
LABORATORY SCHEDULE: The laboratory time will be spent performing scrum meetings between the teams and the TA.
Other Course Policies
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 usually result in a failing grade or mark of zero on the assignment or in the course. Careful records are kept to monitor and prevent recidivism. A more detailed description of academic integrity, including the University’s policies and procedures, may be found in the Academic Calendar at:
http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,54,111,0
Cooperation vs. Cheating: Working with others on assignments is a good way to learn the material and we encourage it. However, there are limits to the degree of cooperation that we will permit. Any level of cooperation beyond what is permitted is considered cheating. When working on programming assignments, you must work only with others whose understanding of the material is approximately equal to yours. In this situation, working together to find a good approach for solving a programming problem is cooperation; listening while someone dictates a solution is cheating. You must limit collaboration to a high-level discussion of solution strategies, and stop short of actually writing down a group answer. Anything that you hand in, whether it is a written problem or a computer program, must be written by you, from scratch, in your own words/code. If you base your solution on any other written solution, you are cheating. If you provide your solution for others to use, you are also cheating.
Class time: Lectures will involve, besides explaining course materials, working on design examples and in class exercises. Class attendance and taking notes are expected, and students are responsible for all material covered in class. You are also expected to respect the other members of the class as well as the instructor.
Inappropriate class behavior is not allowed (e.g., talking on cell phones, engaging in non-class activities, sleeping, using disrespectful language, etc.).
Final Examinations: The examination period for W2022 Term 2 is Monday, April 17th, 2023 to Friday April 28th, 2023. You can find the Senate-approved term and examination dates here. Except in the case of examination clashes and hardships (three or more formal examinations scheduled within a 27-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 Okanagan Academic
Calendar http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,48,0,0
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:
http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,41,90,1014
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.
http://www.calendar.ubc.ca/okanagan/index.cfm?tree=3,41,90,1014
Resources to Support Student Success:
UBC Okanagan Disability Resource Centre: The DRC facilitates disability-related accommodations and programming initiatives to remove barriers for students with disabilities and ongoing medical conditions. If you require academic accommodations to achieve the objectives of a course please contact the DRC at:
UNC 215
Web: www.students.ok.ubc.ca/drc
UBC Okanagan Equity and Inclusion Office: Through leadership, vision, and collaborative action, the Equity &
Inclusion Office (EIO) develops action strategies in support of efforts to embed equity and inclusion in the daily operations across the campus. The EIO provides education and training from cultivating respectful, inclusive spaces and communities to understanding unconscious/implicit bias and its operation within in campus environments. UBC Policy 3 prohibits discrimination and harassment on the basis of BC’s Human Rights Code. If you require assistance related to an issue of equity, educational programs, discrimination or harassment please contact the EIO.
UNC 325H
250.807.9291
Web: www.equity.ok.ubc.ca
Student Wellness: At UBC Okanagan health services to students are provided by Student Wellness. 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 Student Wellness for more information or to book an appointment.
UNC 337
250.807.9270
Web: www.students.ok.ubc.ca/health-wellness
Office of the Ombudperson: The Office of the Ombudsperson for Students is an independent, confidential and impartial resource to ensure students are treated fairly. The Ombuds Office helps students navigate campus-related fairness concerns. They work with UBC community members individually and at the systemic level to ensure students are treated fairly and can learn, work and live in a fair, equitable and respectful environment. Ombuds helps students gain clarity on UBC policies and procedures, explore options, identify next steps, recommend resources, plan strategies and receive objective feedback to promote constructive problem solving. If you require assistance, please feel free to reach out for more information or to arrange an appointment.
UNC 328
250.807.9818
Web: www.ombudsoffice.ubc.ca
Student Learning Hub: The Student Learning Hub is your go-to resource for free math, science, writing, and language learning support. The Hub welcomes undergraduate students from all disciplines and year levels to access a range of supports that include tutoring in math, sciences, languages, and writing, as well as help with study skills and learning strategies. Students are encouraged to visit often and early to build the skills, strategies and behaviors that are essential to being a confident and independent learner. For more information, please visit the Hub’s website.
LIB 237
250.807.8491
Web: www.students.ok.ubc.ca/slh
The Global Engagement Office: The Global Engagement Office provides advising and resources to assist
International students in navigating immigration, health insurance, and settlement matters, as well as opportunities for intercultural learning, and resources for Go Global experiences available to all UBC Okanagan students, and more.
Safewalk: Don’t want to walk alone at night? Not too sure how to get somewhere on campus? Call Safewalk at 250-
807-8076. For more information, see: www.security.ok.ubc.ca