![]() |
|
|
![]() |
|
|
![]() |
|
![]() |
||
![]() |
||
![]() |
Section | Date and Time | Zoom | Venue (when we switch to face-to-face mode) | Instructor |
---|---|---|---|---|
L1 | WeFr 04:30PM - 05:50PM | Meeting link | Rm 1104, Acad Concourse | MAK, Brian Kan Wing |
L2 | TuTh 09:00AM - 10:20AM | Meeting link | Rm 4619, Lift 31-32 | CHAN, Ki Cecia |
L3 | TuTh 04:30PM - 05:50PM | Meeting link | Rm 1104, Acad Concourse | CHAN, Ki Cecia |
L4 | WeFr 01:30PM - 02:50PM | Meeting link | Rm 2502, Lift 25-26 | PAPADOPOULOS, Dimitris |
Section | Date and Time | Zoom | TA1 | TA2 |
---|---|---|---|---|
LA1 | Fr 10:30AM - 12:20PM | Meeting link | MAK, Wai Ho Wallace | CHENG, Tien-chun / SEN, Yigit |
LA2 | Tu 02:00PM - 03:50PM | Meeting link | ZHANG, Mingyang | NARAYAN, Aadityavardhan / VUONG Tung Duong |
LA3 | Th 01:30PM - 03:20PM | Meeting link | LI, Mengxuan | CAI, Zhuo |
LA4 | We 03:00PM - 04:50PM | Meeting link | TONG, Wai | ZHOU, Yuxuan |
LA5 | Mo 01:30PM - 03:20PM | Meeting link | CHAU, Chun Yin | YE, Chengfeng |
Item | Percentage |
---|---|
Programming assignment - PA1 | 10% |
Programming assignment - PA2 | 10% |
Programming assignment - PA3 | 10% |
Programming assignment - PA4 | 10% |
Laboratory exercises | 14% |
Final examination | 46% |
Please check your own marks from the COMP2012 Canvas page.
Note:
Course Learning Outcome |
Exemplary |
Competent |
Needs Work |
Unsatisfactory |
---|---|---|---|---|
1. Write object-oriented programs in C++ with object creation, destruction, member variables and functions, inheritance, polymorphism, and templates. |
Demonstrate a comprehensive grasp of object-oriented concepts and fully demonstrates how to write object-oriented programs in C++. |
Demonstrate a thorough grasp of object-oriented concepts and mostly demonstrates how to write object-oriented programs in C++. |
Demonstrate a basic grasp of object-oriented concepts and barely able to demonstrate how to write object-oriented programs in C++. |
Demonstrate a lack of grasp of object-oriented concepts and fail to demonstrate how to write object-oriented programs in C++. |
2. Analyze simple problems and provide solutions with OOP. |
Demonstrate an exemplary ability to analyze problems and solve them using OOP. |
Demonstrate a proficient ability to analyze problems and solve them using OOP. |
Demonstrate a developing ability to analyze problems and solve them using OOP. |
Demonstrate deficiencies in their ability to analyze problems and solve them using OOP. |
3. Understand the basic operations of data structures such as stacks, queues, lists, binary search trees, and hashes, and their implementations. |
Demonstrate excellent understanding of the basic operations of the learned data structures and ability to implement them. |
Demonstrate sufficient understanding of the basic operations of the learned data structures and ability to implement them. |
Demonstrate limited understanding of the basic operations of the learned data structures and limited ability to implement them. |
Demonstrate a lack of understanding of the basic operations of the learned data structures and inability to implement them. |
4. Demonstrate the ability to use the learned data structures to solve problems in C++ |
Demonstrate an exemplary ability to use the learned data structures to solve problems in C++. |
Demonstrate a proficient ability to use the learned data structures to solve problems in C++. |
Demonstrate a developing ability to use the learned data structures to solve problems in C++. |
Demonstrate deficiencies in the ability to use the learned data structures to solve problems in C++. |
5. Develop large programs using separate compilation, good OOP design, and code reuse through the use of inheritance, generic programming and the standard template library. |
Demonstrate complete comprehension of OOP concepts and techniques for the development of large programs. |
Demonstrate basic comprehension of OOP concepts and techniques for the development of large programs. |
Demonstrate minimal comprehension of OOP concepts and techniques for the development of large programs. |
Demonstrate no comprehension of OOP concepts and techniques for the development of large programs. |
![]() |
MAK, Brian Kan Wing Rm 3513 mak@cse.ust.hk http://www.cse.ust.hk/~mak Find me by PathAdvisor: Click Here |
|
![]() |
CHAN, Ki Cecia Rm 3525 kccecia@cse.ust.hk http://www.cse.ust.hk/~kccecia Find me by PathAdvisor: Click Here |
|
![]() |
PAPADOPOULOS, Dimitris Rm 2537 dipapado@cse.ust.hk http://www.cse.ust.hk/~dipapado Find me by PathAdvisor: Click Here |
![]() |
MAK, Wai Ho Wallace Rm 2532 wallacem@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
CHAU, Chun Yin Rm (Not available) cychauab@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
CAI Zhuo Rm (Not available) zcaiam@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
TONG, Wai Rm CYT3007 wtong@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
Zhang, Mingyang Rm 4201 mzhangbj@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
YE, Chengfeng Rm 3661 cyeaa@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
LI, Mengxuan Rm CYT3007 mlibs@cse.ust.hk Find me by PathAdvisor: Click Here |
|
![]() |
ZHOU, Yuxuan Rm 4030 yzhoudo@cse.ust.hk Find me by PathAdvisor: Click Here |
The schedule listed below is tentative. Instructors may have some adjustments subject to the progress.
Week# | Topics / Note | Handout | Reading | Code / Additional Materials |
---|---|---|---|---|
1-2 | Intro, review, const-ness, lambda |
2022/02/05
[previous: 2022/01/31] |
Deitel: Chap 8 |
Programs Reviews on pointers and references |
2-4 | Constructors & Destructor | 2022/02/14 | Deitel: Chap 9 | Programs |
5-7 | Inheritance and Polymorphism | 2022/02/14 | Deitel: Chap 11, 12 | Programs |
7-9 | Generic Programming | 2022/02/14 | Deitel: Chap 18, 19, 10 | Programs |
10-11 | Hashing | 2022/04/06 | Weiss: Chap 5 | |
11-12 | Binary Search Tree | 2022/04/09 | Weiss: Chap 4, Chap 3.6 | Programs |
12-13 | rvalue Reference and Move Semantics | 2022/04/28 | Deitel: (Web) Chap 24 | Programs |
Self-study Notes | ||||
2 | Makefile (Self-study) | 2022/02/02 | Programs | |
6 | Namespace (Self-study) | 2022/02/02 | Deitel: Chap 23.4 | Programs |
9-10 | Standard Template Library (STL) (Self-study) | 2022/02/14 | Weiss: Chap 9.14 | Programs |
12 | Static Class Data/Methods (Self-study) | 2022/02/14 | Weiss: Chap 9.14 | Programs |
11-12 | AVL (Self-study) | 2022/04/09 | Weiss: Chap 4, Chap 4.4 | Programs |
For the first few weeks lectures will only be held via Zoom meetings. Later in the semester, we may switch to face-to-face teaching in which case you will be notified. The links for the meetings are available at the Canvas page of the course, under the tab Zoom meetings. Before you join a meeting for the first time visit this page and sign in to Zoom using your HKUST e-mail, as our lecture meetings will require HKUST user authentication. When attending a lecture meeting,
Here are links to the University's Honor code, and the University's Penalties for Cheating.
If you are not sure what is considered plagiarism,The lab exercises are designed to help you learn a programming language with on-the-spot advices of a teaching assistant. All the TAs assigned to the course are supposed to be very experienced in C++ programming. It is more a service to you than an exercise for the marks. The lab mark is only set to encourage you to make good use of the lab time.
We will use VS Code as the development platform for C++ programming. Please read the following tutorial which will help you get started:
Labs this semester will be conducted online via Zoom meetings (until we switch to mixed-mode teaching later in the semester, if it will happen).
But similar to the past, a successful completion of the lab is subject to the following conditions:
Each lab is worth 3 points, 1 point for each of the items above.
Note to all students:
If a day is a public holiday, students are not required to attend the labs
held on that day. There will be no points for these labs for only those
students who originally are supposed to attend these labs; other students
are not affected. As different students may be affected by different public
holidays, the final total lab points will be normalized according to the
number of labs a student has to take. However, although a student may not
need to attend a lab on a day that happens to be a public holiday, we
strongly encourage the student to still go over the materials of that lab
and try to finish it. Labs help students review what they are taught in
lectures and get ready for the next lab.
This policy will also apply to situations when classes/labs are cancelled
due to, e.g., adverse weather conditions, etc.
Dates | Tentative Topic | Solution |
---|---|---|
Lab 1: Feb 21 - 25 | Makefile and Separate Compilation
Please see the lab policy manual. Also note that we will use this public Google sheet to determine the demo order. Your lab TAs will explain both in the first lab. |
solution (will be accessible in the following week) |
Lab 2: March 7-11 | Class Construction and Destruction | solution |
Lab 3: March 14-18 | Namespace | solution |
Lab 4: March 21-25 | Inheritance: Effect of Substitution and Slicing | solution |
Lab 5: March 28 - April 1 | Polymorphism: Virtual Functions | solution |
Lab 6: April 11 - April 22 | Template & Operator Overloading | solution |
Lab 7: April 25 - April 29 | Friends, Static Method/Data | solution |
Lab 8: May.2 - May.6 | Binary Search Tree | Solution |
Assignment | TA-in-charge | Solution |
---|---|---|
Assignment 1: Polynomial | Wallace Mak (wallacem@cse.ust.hk) | Grades and Marking scheme |
Assignment 2: Digital Signatures | Zhuo CAI (zcaiam@cse.ust.hk) | Grades and Marking scheme |
Assignment 3: Smart Pointers | Chun Yin CHAU (cychauab@cse.ust.hk) | Grades and Marking scheme |
Assignment 4: Magic Shop of a Computer Wizard | Wallace Mak (wallacem@cse.ust.hk) |
Mid-Term Exams | Final Exams | |
---|---|---|
2018F | Question I | Question II | Solution | Question I | Question II | Solution |
2018S | Question | Solution | Question | Solution |
2017F | Question | Solution | Question | Solution |
2017S | Question | Solution | Question | Solution |