Machine Learning and Applications

Home Admissions   Course Guide   Machine Learning and Applications  

This Course Guide has been taken from the most recent presentation of the course. It would be useful for reference purposes but please note that there may be updates for the following presentation.


Machine Learning and Applications

COMP S491 Machine Learning and Applications is a full-year ten-credit higher-level course for the Bachelor of Science with Honours in Computing and Networking (BSCHCN) programme. It is also an elective course in the Bachelor of Computing (BCOMP) programme.

The course assumes you have fundamental knowledge of computer programming, data structures and algorithm design. Such knowledge is covered in COMP S201 Computing Fundamentals with Java and COMP S258 Computer Programming and Problem Solving. You are therefore advised to have completed those two courses prior to taking COMP S491.

This course teaches you machine learning and its applications. Specifically, you will learn the concepts, tools, implementations and use cases for commonly-used machine learning algorithms. Applications of machine learning will be discussed in the context of solving a variety of problems in data mining and other disciplines.

This is an advanced course that specializes in machine learning. The skills acquired in this course will enable you to build software with sophisticated functions such as identifying objects in photos and making recommendations to customers. It is difficult or infeasible to build such functions using traditional software technique without machine learning. If you plan to pursue further study, this course also paves the way for research in the areas of machine learning and artificial intelligence.


Course aims

The main aims of the course are to:

  • provide you with fundamental concepts and basic algorithms of machine learning and data mining; and
  • enable you to apply machine learning and data mining in creating software to solve real-world problems.

Learning outcomes

Upon completion of this course, you should be able to:

  • apply machine learning algorithms to solve problems of moderate complexity;
  • differentiate and apply the use of supervised, unsupervised and reinforcement learning in machine learning application development;
  • evaluate machine learning models; and
  • develop machine learning applications of moderate complexity.

Print materials

In addition to this Course Guide, the course has the following important components. Please ensure that you have all of these materials available.


Study units

There are seven units in COMP S491 Machine Learning and Applications. Each unit starts with an introduction that outlines how the unit is organized, and what and how you are expected to learn. The introduction also includes the unit’s specific learning objectives, which list the concrete things you should be able to do upon completing the unit. After that, there are self-contained learning materials on a number of topics. Instructional contents — self-tests and activities — are situated at key points in each unit to consolidate your understanding of the topics.


Unit 1 Introduction to machine learning

This unit introduces machine learning and data mining by explaining what they are, their brief history and their relationship. Some applications of machine learning and data mining are also described.


Unit 2 Essential Python programming and tools

This unit teaches you the programming language and tools used in the course. It first introduces how to use Jupyter Notebook, the online programming environment for the course. Next, the basics of Python programming are explained. Finally, commonly-used third-party Python libraries are described, and their uses are illustrated with examples.


Unit 3 How machine learning and data mining work

This unit provides a technical overview of how machine learning and data mining work. It begins by describing the tasks required in a standard data mining process. Since data are key to data mining and machine learning, important aspects of data are explained. Data pre-processing is illustrated with Python example programs. Next, the mechanism of machine learning is explained in terms of model building, and illustrated with a simple example. The various types of machine learning are described.


Unit 4 Supervised learning

This unit discusses a type of machine learning called supervised learning, which is used for solving classification and regression problems. Different models of supervised learning are explained and demonstrated with example applications. The models are evaluated and their issues are addressed.


Unit 5 Unsupervised learning

This unit discusses unsupervised learning, which analyses the association among attributes of data and the clustering of data. Algorithms for association analysis and clustering are described and illustrated with example applications.


Unit 6 Deep learning

This unit examines deep learning. Two types of deep neural networks are explained: convolutional neural networks with image analysis applications and recurrent neural networks with natural language processing applications.


Unit 7 Reinforcement learning

This unit discusses reinforcement learning in which actions are performed in order to maximize reward. The Markov decision process is explained for formulating basic reinforcement. Different types and algorithms of reinforcement learning are described and illustrated with example applications.


Course textbook

There is no textbook for this course.


Online materials

Online resources

An online programming environment is provided for all software development tasks required for the course. You do not need to install additional development tools on your computers. Instructions for accessing the online programming environment are provided on the Online Learning Environment (OLE).


Equipment required

You are expected to have the following minimum equipment for accessing the online materials.



  • PC with Intel i5 (or equivalent) quad-core processor or above
  • 4GB RAM minimum, 8GB RAM recommended
  • 4GB of free disk space
  • Internet access
  • Video display resolution at 1280 x 800 or higher.


  • Microsoft Windows 7/8/10, Mac OS X 10.10 to 10.13, or Linux GNOME/KDE desktop
  • Recent versions of Chrome, Firefox, Edge/Internet Explorer or compatible browser.

Assignment files

You can access the assignment files on the OLE.


Presentation schedule

The presentation schedule is available on the OLE. It gives you the dates for completing assignments, and attending tutorials and surgeries.

COMP S491 carries two formal activities in assessment: assignments and a final examination. The assignments account for 30% of the course mark, while the final examination accounts for the remaining 70%. You are required to obtain at least 40% in the assignment scores and 40% in the final examination to pass this course.



You are required to complete four assignments and submit them to your tutor for evaluation and grading. Each assignment will assess your grasp of the materials covered in the respective units.

Among the four assignments, only the marks of the best three assignments will count towards your final course grade. Each assignment will be weighted 33.33% in the overall continuous assessment score (OCAS). Not submitting the assignment with the lowest score will not have a direct adverse effect on your final grade. However, not attempting one of the assignments, i.e. being less prepared, will be to your disadvantage in the final examination. You are therefore encouraged to attempt all four assignments.

The combined marks for the assignments will account for 30% of the course’s overall assessment.


Final examination

At the end of the course, you will be required to attend a three-hour closed-book written examination. This final examination will be worth 70% of the course grade.


Course passing grade

You must achieve a passing mark of at least 40% in each of the overall continuous assessment score (the assignments) and the overall examination score (the final examination) to pass the course.

There are seven units in this course. The following table gives a general overview of the course structure.


UnitTitleNo. of weeksAssessment
1Introduction to machine learning1Assignment 1
2Essential Python programming and tools4
3How machine learning and data mining work3
4Supervised learning8Assignment 2
5Unsupervised learning8Assignment 3
6Deep learning8Assignment 4
7Reinforcement learning4

The following is a recommended strategy for working through the course. If you run into any trouble, phone your tutor at once. Remember that your tutor’s job is to help you. When you need help, don’t hesitate to call and ask for it.

  1. Read this Course Guide thoroughly.
  2. Organize a study schedule. Refer to the suggested study schedule on the OLE. Note the minimum time you are expected to spend on each unit and how the assignments relate to the units. You need to gather together all this information in one place, such as your diary or a wall calendar. Whatever method you choose to use, you should decide on and write in your own dates for working on each unit. Once you have created your own study schedule, do all you can to stick to it. The major reason for students not doing as well as they could is getting behind with course work. If you get into difficulties with your schedule, please let your tutor know before it is too late for help.
  3. Turn to Unit 1 and read the Introduction to the unit.
  4. Work through the unit. The contents of the unit itself have been arranged to provide a clear order of material for you to follow.
  5. Review the objectives for the unit to confirm you have achieved them. For any objectives about which you feel unsure, review the study material and/or consult your tutor.
  6. While you wait for your assignment to be returned to you, begin your work on the next units. Proceed unit by unit through the course and try to pace your study so that you keep yourself on schedule.
  7. When the assignment is returned, pay particular attention to your tutor’s comments written both on the Assignment Form and throughout your assignment. Phone your tutor as soon as possible if you have any questions or problems.
  8. In the final few weeks of the course, check that you have achieved the unit objectives (listed at the beginning of each unit) and the course objectives (listed in this Course Guide).

Machine learning is an advanced, rewarding and perhaps challenging topic. With proper planning, focused studying, sufficient practice and active discussion with classmates and tutors, you will acquire its concepts and be able to apply its skills to your software applications.

Kendrew Lau Chu-man has developed various types of systems in his career, ranging from visualization and simulation applications to wireless telephone systems. He received his Bachelor of Engineering (Honours) and Master of Philosophy, both in Information Engineering, from the Chinese University of Hong Kong, and holds Java certifications of SCJP, SCWCD, SCBCD, SCDJWS and SCSNI. He has taught Java programming and computing subjects at City University of Hong Kong and other universities, and operates a consulting business in system development. His current interest is in developing Android applications using various tools and technologies.