Description
Objectives
1. Acquire the skills and experience of working on a C++ mini-project in a group.
2. Apply sound methodologies and practices to solving problems using C++.
3. Acquire some experience in presenting a demo to a public audience.
Project Requirements
1. Topics: Please choose one of the following three topics.
a. MTR travel Saver
This project develops a program to save the MTR travel cost for a family. To make it
simple, we do not consider other traveling means. You may find an adult fare table from
https://www.mtr.com.hk/en/customer/tickets/octopus_fares.html. Assuming that there
are n > 1 family members. Each one of them will travel starting from home to another
station. Generally, the destination stations are different. This program will compute the
location (in terms of the station) where they should live to minimize the total travel cost.
b. Introducing recursion
Write a program that will introduce the concept of recursion and give at least 3
examples (from beginner level to advanced level) to illustrate it.
c. Course search in COMP
Write a program that will allow users to search undergraduate courses in COMP by
using keywords. You should find all the undergraduate courses at
https://www.comp.polyu.edu.hk/en-us/study/undergraduate-programmes/subject, and
store the information about courses. The users would input keywords and the program
should return all of the related courses (e.g., the course name contains a keyword). For
each returned course, its course name and pre-requisite information should be included
(You might include more other information). You need to create a special structure for
courses. You should use a suitable and efficient search algorithm.
2. Expected amount of work: around 20-30 hours
3. Deliverables:
a. The .cpp codes
b. A description of the project, including the problem, program design, and structure of the
program (at least 3 pages and at most five pages).
c. A five-minute video that demonstrates and explains the project and outcomes.
Assessment
1. Program design (30%): Is the program structured well for good readability, maintenance, and
extension? Does the program give useful messages to the user for exceptions?
2. Correctness of the program (40%): Does the program fulfill the requirements and run without
errors?
3. Program documentation (10%): How well is the code documented? Can the program be
understood without much effort?
4. Demo quality (20%): Is the demonstration clear and effective? Does the demonstration motivate
the audience to try the software?
Deadline
Upload to the Blackboard your codes, a description of your program design with at most 5 pages (single
space and Times Romans 11pt), and a five-minute video before 23:59 PM 11 May 2021.