Carleton University

School of Computer Science

COMP 3004B: Object-Oriented Software Engineering

Winter 2021

Last Updated January 2nd, 2021


Class Logistics

Lectures: offered online synchronously, recorded and then posted 

               Tuesday and Thursday 11:35AM to 12:55PM

Winter Break: week of February 15th (no office/TA hours that week)

My Office Hours   will be held online via Zoom starting the week of January 18th and run until April 9th (total: 11 weeks)

                          Tuesday and Thursday 13:00-14h00 (just after lectures)

                          There are no tutorials in this course.


Instructor Info

Jean-Pierre Corriveau

email: jeanpier AT scs.carleton.ca


Course Website

http://people.scs.carleton.ca/~jeanpier//3004W21/

cuLearn will be used for announcements and for submission of course deliverables. Posted course material will be on the course’s web page or, occasionally, in cuLearn. All material remains the exclusive intellectual property of their author(s).


Required Textbook:

(It is suggested you wait after the first lecture before purchasing it)

Head First Design Patterns, Freeman & Freeman, O’Reilly (publishers)


TAs: names, emails, office hours (same weeks as my office hours)

Isaac Popoola    [email protected]    Thursday      3-6pm

Emma Sewell     [email protected]     Monday        3-6pm

Sri Vadlamani    [email protected]     Friday          9am-12pm

Lance Wang       [email protected]       Monday       9am-12pm


Short Course Description

This course teaches an agile yet model-driven approach to object-oriented software development (OOSD). More precisely, we will use a scenario-driven repository-based approach emphasizing testability. The use of design patterns will guide how we organize object-oriented code for ease of change. JUnit will be used for software testing. 


Calendar Description

COMP 3004 [0.5 credit]

Object-Oriented Software Engineering

Development of object-oriented software systems: theory and practice. Topics include: Computer ethics, software development processes, requirement specification, class and scenario modeling, state modeling, UML, design patterns, traceability. Students are to complete a team project.

Includes: Experiential Learning Activity

Precludes additional credit for SYSC 3020, SYSC 3100 (no longer offered), SYSC 3120SYSC 4120, SYSC 4800 (no longer offered).

Prerequisite(s): COMP 2401, one of COMP 2404SYSC 3010SYSC 3110 and COMP 2406 or SYSC 4504.


More on the Prerequisites

You are assumed to have a strong background in object-oriented programming, as provided by COMP 1406 and COMP 2404. You must also be familiar with networking (from COMP 2401), Java (from COMP 1406), C++ (from 2404) and Web programming (from 2406).

In addition to programming, you must be able to structure and write quality documents in clear and concise English.


Learning Objectives

-   Understand the advantages of agile development over a waterfall process

-   Know the essentials of UML 2.0

-   Practice scenario-driven OOSD focusing on its emphasis on traceability from requirements to scenarios to tests.

-   Practice software testing using JUnit

-   Gain experience with using a software repository

-   Understand a representative subset of the Gang of Four (Go4) design patterns

-   Gain experience with the team-based development of (models and code for) a medium-sized project

-   Gain experience with the use of continuous integration and Go4 patterns.

Note: COMP 4004 is the course where how to develop a systematic suite of tests is addressed. In COMP 3004, software testing will instead rely on your intuition as well as tests required by the instructor.


Software

All course deliverables are in Java: no other language is allowed. Students will be using Github, Maven/Java/IntelliJ IDEA and JUnit. Students are expected to learn by themselves all tools used in this course.

There are several tutorials available online for the tools we use, in particular for JUnit (http://www.vogella.com/tutorials/JUnit/article.html).


Assessment Scheme:

Students will be evaluated according to the following components:

1) 2 individual assignments   40%

  A1 (15%) Developing use cases

due Jan 26 7AM

  A2 (25%) Using a repository and JUnit to code and test a simple system

due Feb 12 11:59PM

Collaboration for these assignments is strictly disallowed.

2) Team Project:   60% (with weekly deliverables)

due April 14 11:59PM

  As will be explained in class, continuous integration is essential for success.

  You will receive individual marks for the project. These marks are based on:

o   your specific contributions

o   your team’s weekly progress

o   end-of-term intra-team peer evaluations

o   comparison by instructor with work of all other teams

o   TA and instructor specific evaluations

  Some time will be devoted early in the term to team issues.

  Collaboration on team projects is restricted to members of the same team.

       Inter-team collaboration is strictly disallowed.


About passing the course:

-   In order to get a D- or better in this course:

o   The total of the marks you accumulate for the individual assignments must be greater than 19 out of 40

o   The mark you obtain on the team project must be greater than 29 out of 60


Basic Advice:

For each assignment, you will be submitting one or more files that contain models and/or source code, and these files must be given the correct filename and be provided in the required format. Assignments that are incorrectly named or in an incorrect format will be penalized and may receive a mark of zero.

If the source code you submit does not run, it will receive a mark of zero. Consequently, if you cannot complete all requirements of an assignment, focus on fewer ones but make sure they execute correctly. 


Additionally:

1) The use of a private repository is compulsory for all code deliverables.

2) All alleged plagiarism will be reported to the office of the dean of Science (ODS). Penalties for such offences can be found on the ODS webpage: https://science.carleton.ca/academic-integrity/. In particular, posting any work put in a public location (eg a GitHub public repository, or Chegg, CourseHero, OneClass) constitutes a form of sharing that enables plagiarism and will be treated as such.

3) There will be NO supplemental or grade raising exam in this course.

4) No mark or extra work can be substituted for another.

5) Late submissions will not be accepted and will get a mark of 0. Assignments/project submissions are handled electronically through cuLearn and there is no "grace period" with respect to a deadline. Technical problems do not exempt you from this requirement, so if you wait until the last minute and then have issues with your connection, you will still receive a mark of zero. Do not expect extensions.


With respect to team work for the project:

It is expected you devote a minimum of 9 hours per week to this course (including 3 hours of lecture time). It is highly undesirable to not sufficiently contribute during a week as this almost inevitably slows down the whole team. Any poor or non-contributor will receive a penalty each week s/he is deemed to contribute insufficiently, unless a) the team is notified as early as possible of any (planned or emergency) absence and b) a medical certificate is quickly provided to the instructor for this absence.

Each week of the project, each team (not each team member) must submit to culearn (i.e., not by email) a single team report that states for each team member:

o   the number of hours spent on the project since the last report

o   what that team member has achieved

o   what methods and tests s/he has submitted to the repository (so this can be actually cross-checked against the actual submission history of the project)

A fundamental learning objective of this course is teamwork. Do not ask to work alone.

Do expect heated discussions if not conflicts in the process of working in a team.

-   Should your team shrink to two students through withdrawals, do proceed as a team but contact the instructor immediately to obtain reduced requirements. Should you be left alone, again immediately contact the instructor. Depending on how far we are into the project, you will either be reassigned to another team OR obtain reduced requirements.

-   You may not submit a request to change teams.

Team formation will be discussed in the first lectures.


Undergraduate Academic Advisor

The undergraduate advisor for the School of Computer Science is available in Room 5302C HP, by telephone at 520-2600, ext. 4364 or by email at [email protected]. The advisor can assist with information about prerequisites and preclusions, course substitutions and equivalencies, understanding your academic audit and the remaining requirements for graduation. The undergraduate advisor will also refer students to appropriate resources such as the Science Student Success Centre, Learning Support Services and the Writing Tutorial Services.


Science Student Success Centre (SSSC)

The Science Student Success Centre is a central advising unit for students in Science courses. We help students achieve their goals by providing access to resources, workshops and activities that enhance their academic and study skills, and help them make key connections with their peers. Mentors can help you customize an individual study plan which includes weekly and semester work or study schedules, and also help when you need information on developing a new study strategy, obtaining summer job opportunities, or clarifying ideas and concepts to better understand and cope with new course content. Science mentors can help you learn how to learn what you need to learn for your classes.

Visit http://sssc.carleton.ca/


University Policies

For information about Carleton's academic year, including registration and withdrawal dates, see Carleton's Academic Calendar.

Pregnancy   Obligation. Please contact your instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details, visit Equity Services.

Religious   Obligation. Please contact your instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details, visit Equity Services.

Academic Accommodations for Students with Disabilities If you have a documented disability requiring academic accommodations in this course, please contact the Paul Menton Centre for Students with Disabilities (PMC) at 613-520-6608 or [email protected] for a formal evaluation or contact your PMC coordinator to send your instructor your Letter of Accommodation at the beginning of the term. You must also contact the PMC no later than two weeks before the first in-class scheduled test or exam requiring accommodation (if applicable). After requesting accommodation from PMC, meet with your instructor as soon as possible to ensure accommodation arrangements are made. For more details, visit the Paul Menton Centre website.

Survivors of Sexual Violence. As a community, Carleton University is committed to maintaining a positive learning, working and living environment where sexual violence will not be tolerated, and survivors are supported through academic accommodations as per Carleton's Sexual Violence Policy. For more information about the services available at the university and to obtain information about sexual violence and/or support, visit: carleton.ca/sexual-violence-support

Accommodation for Student Activities. Carleton University recognizes the substantial benefits, both to the individual student and for the university, that result from a student participating in activities beyond the classroom experience. Reasonable accommodation must be provided to students who compete or perform at the national or international level. Please contact your instructor with any requests for academic accommodation during the first two weeks of class, or as soon as possible after the need for accommodation is known to exist. For more details, see the policy.

Student Academic Integrity Policy. Every student should be familiar with the Carleton University student academic integrity policy. A student found in violation of academic integrity standards may be awarded penalties that range from a reprimand to receiving a grade of F in the course or even being expelled from the program or University. Examples of punishable offences include: plagiarism and unauthorized co-operation or collaboration. Information on this policy may be found here.

Plagiarism. As defined by Senate, "plagiarism is presenting, whether intentional or not, the ideas, expression of ideas or work of others as one's own". Such reported offences will be reviewed by the office of the Dean of Science.

Unauthorized Co-operation or Collaboration. Senate policy states that "to ensure fairness and equity in assessment of term work, students shall not co-operate or collaborate in the completion of an academic assignment, in whole or in part, when the instructor has indicated that the assignment is to be completed on an individual basis". Please refer to the course outline statement or the instructor concerning this issue.


Medical Certificate

The following is a link to the official medical certificate accepted by Carleton University for the deferral of final examinations or assignments in undergraduate courses. To access the form, please go to https://carleton.ca/registrar/wp-content/uploads/med_cert.pdf