COMP3111/COMP3111H Course Webpage
News
23/11/2017: Update presentation details and upload Midterm II marking guide
14/11/2017: midterm 2 details
12/11/2017: midterm2 coveragw from design pattern(include those covwred in midterm 1) to Joel testing
3/11/2017: New requirement released here
26/10/2017: Midterm I mark guide is avaliable here
11/10/2017: Midterm I reminder (17/10/2017 evening). No lecture in the morning. Details
6/10/2017: Lab 4 released. Please attend your lab 4 (9/10-13/10).
26/9/2017: Please submit your topic on Canvas - group task
26/9/2017: Please submit your assignment 1 (milestone 0 on Canvas - individual)
26/9/2017: Remember to form your group by 27/9/2017.
28/8/2017: There is no tutorial on 1/9/2017.
Course Information
Description
COMP3111 Methods and tools for planning, designing, implementing, validating, and maintaining large software systems. Project work to build a software system as a team, using appropriate software engineering tools and techniques.
Exclusion(s): COMP 3111H, ISOM 3210, RMBI 4420 (prior to 2016-17) Prerequisite(s): COMP 2012 OR COMP 2012H
COMP3111H General methodologies, techniques, and tools for planning, designing, implementing, validating, and maintaining large-scale software systems. Collaborative development environment, automatic static analysis, and testing techniques. Open source project development methodologies and techniques.
Exclusion(s): COMP 3111, ISOM 3210, RMBI 4420 (prior to 2016-17) Prerequisite(s): Grade A- or above in COMP 2012 / COMP 2012H
Lecture Schedule
Section | Time | Venue |
---|---|---|
--- | Lecture | --- |
3111-L1 | TuTh 10:30AM - 11:50AM | Rm 2465, Lift 25-26 |
3111-L2/3111H | TuTh 12:00PM - 01:20PM | LT-D |
--- | Tutorial | --- |
3111-T1 | Fr 06:00PM - 06:50PM | Rm 1104, Acad Concourse |
3111-T2 | Th 05:00PM - 05:50PM | Rm 1104, Acad Concourse |
3111H-T1 | Fr 06:00PM - 06:50PM | |
--- | Lab | --- |
3111-LA1 | Fr 11:00AM - 11:50AM | Rm 4210, Lift 19 |
3111-LA2 | Th 06:00PM - 06:50PM | Rm 4210, Lift 19 |
3111-LA3 | Tu 03:00PM - 03:50PM | Rm 4210, Lift 19 |
3111H-LA1 | Mo 04:00PM - 04:50PM | Rm 4210, Lift 19 |
Tentative Schedule (Please understand the schedule is still under review and subjected to change)
Wk # | Milestones/ Assignment/ Exam | Lecture (Tu/Th) | Lab (Mo/Tu/Th/Fr) | Tutorial (Th/Fr) | ||||
---|---|---|---|---|---|---|---|---|
# | Date | Topic | # | Lab Topic | # | Topic | ||
1 | 1 | 5-Sep | Overview and Project Introduction | 1 (7-8/9) | Introduction / git / Java | |||
2 | 7-Sep | Java | ||||||
2 | 3 | 12-Sep | Java Spring | 1 | Deploying a chatbot | 2 | Java/Spring | |
4 | 14-Sep | Mastering Git/Github | ||||||
3 | Sep 22: | 5 | 19-Sep | Development process I (code review/pair programming) | 2 | Chatbot with File | 3 | Database |
Project Slide | 6 | 21-Sep | Development process II (Agile process scrum) | |||||
4 | Sep 27: Milestone 0 | 7 | 28-Sep | Requirements | 3 | Chatbot with DB | Collecting User Requirement from TA | |
8 | 29-Sep | UML (class diagram & user case) | ||||||
5 | 9 | 3-Oct | OO Modeling using UML II | No lab | Q & A about Project (Open for all topics) | |||
5-Oct | Mid-Autumn Festival | |||||||
6 | Oct 12: Milestone 1 | 10 | 10-Oct | Design Patterns | 4 | UML Lab | midterm Q & A | |
11 | 12-Oct | Design Patterns - Behavioral Patterns | ||||||
7 | Midterm | 12 | 17-Oct | (7-9PM) No class in the morning | No lab | 4 | UML | |
13 | 19-Oct | Design Patterns - Structural and Creational Pattern | ||||||
8 | 14 | 24-Oct | Refactoring | 5 | Design Pattern | 5 | Midterm 1 exam paper checking | |
15 | 26-Oct | Defensive Debugging Tools | ||||||
9 | Nov 3: Milestone 2 | 16 | 31-Oct | White-box testing | 6 | Refactoring | Design Pattern and Refactoring | |
17 | 2-Nov | Black box Testing | ||||||
10 | Nov 6: TA Intervention of Team conflict | 18 | 7-Nov | Automatic testing | No lab | Q & A | ||
19 | 9-Nov | Joel CI | ||||||
11 | 20 | 14-Nov | Midterm Review | No lab | 6 | Javadoc and Coverage Test | ||
Midterm II | 21 | 16-Nov | (7-9PM) No class in the morning | |||||
12 | Nov 20: Milestone 3 | 22 | 21-Nov | Deep API | 7 | Javadoc | 7 | Midterm 2 Appeal |
23 | 23-Nov | Data-Driven Programming (Deep Learning) | ||||||
13 | 24 | 28-Nov | Final presentation | No lab | No Tutorial | |||
25 | 30-Nov | Final presentation |
Click the above link to find the lab page.
You are supposed to read the self-learning material according to the lab schedule.
Teaching Team
Grading
- individual assignment 10%
- lab 10%
- midterm I 20%
- midterm II 20%
- group project 40%
Assessment Rubrics
Course Learning Outcome | Exemplary (A- to A+) | Competent (C to B+) | Needs Work (D to C- ) | Unsatisfactory (F) |
---|---|---|---|---|
1. Modeling applications | The student is able to apply appropriate modeling techniques to design software for an application of medium complexity. The student is able to model and document data and processing requirements for an application using a modeling language and implement a disciplined software design for an application. | The student is able to apply appropriate modeling techniques to design software for an application of medium complexity with some help from TA and/or instructors. The student is able to model and document data and processing requirements for an application using a modeling language and implement a disciplined software design for an application with a few errors. | The student is not able to apply appropriate modeling techniques to design software for an application of medium complexity, but he/she can understand provided solutions. The student is not able to model and document data and processing requirements for an application using a modeling language and implement a disciplined software design for an application but he/she can understand provided solutions. | The student is not able to apply appropriate modeling techniques to design software for an application of medium complexity, but he/she cannot understand provided solutions. The student is not able to model and document data and processing requirements for an application using a modeling language and implement a disciplined software design for an application but he/she cannot understand provided solutions. |
2.Implementing applications | The student is able to apply appropriate software engineering techniques to implement an application of medium complexity. The student can transform requirements for an application, expressed in a modeling language, into a working software system, select appropriate algorithms to implement the stated requirements and design and implement a variety of tests to validate that a software system meets its stated requirements. | The student is able to apply appropriate software engineering techniques to implement an application of medium complexity with some help. The student can transform requirements for an application, expressed in a modeling language, into a working software system, select appropriate algorithms to implement the stated requirements and design and implement a variety of tests to validate that a software system meets its stated requirements with a few errors. | The student is barely able to apply appropriate software engineering techniques to implement an application of medium complexity even with much help. The student is barely able to transform requirements for an application, expressed in a modeling language, into a working software system, select appropriate algorithms to implement the stated requirements and design and implement a variety of tests to validate that a software system meets its stated requirements with some errors. | The student is not able to apply appropriate software engineering techniques to implement an application of medium complexity even with much help. The student is not able to transform requirements for an application, expressed in a modeling language, into a working software system, select appropriate algorithms to implement the stated requirements and design and implement a variety of tests to validate that a software system meets its stated requirements with some errors. |
3. Function effectively as a member of a software development team: organize, manage and participate in a small software development team and plan and schedule the activities involved in developing the software for a medium-sized application. | The student can play various roles in a software development team. The student demonstrates both technical skills, project management skills, and mastery of the tools used in the project. | The student can successfully play a particular role in the team and demonstrate good technical skills according to the project compilation requirement. | The student can barely work as a member of the team. With help, the student can complete a significant part of the team assignment. | The student cannot work as a member of the team. The student cannot communicate with the team members and cannot complete the team assignment. |