Courses Offered

COMP2113 Programming Technologies

COMP2113 Programming Technologies

2020-21
Instructor(s):Choi Loretta
Chim T W
(Class A) No. of credit(s):6
Choi Loretta
Chim T W
(Class B)
Choi Loretta
Chim T W
(Class C)
Choi Loretta
Luo Ruibang
(Class D)
Choi Loretta
Luo Ruibang
(Class E)
Recommended Learning Hours:
Lab Session: 39.0
Pre-requisite(s):COMP1117 or ENGG1330
Co-requisite(s):  
Mutually exclusive with:  
Remarks:

Course Learning Outcomes

1. [Programming environment and technologies] Able to work comfortably on the Linux platform and utilize its basic functionalities for program development
2. [Problem solving and program implementation] Able to understand and analyse a problem and implement appropriate solutions correctly using Python/C++. Able to utilize debuggers and techniques like separate compilation and make files to simplify and speed up the development process.
3. [Advanced programming techniques] Be able to understand and apply the principles of advanced programming techniques including recursion, dynamic memory management, STL, data structures and algorithms.
4. [Self learning] Be able to self-learn various programming techniques effectively
Mapping from Course Learning Outcomes to Programme Learning Outcomes
 PLO aPLO bPLO cPLO dPLO ePLO fPLO gPLO hPLO iPLO j
CLO 1TT
CLO 2TTT
CLO 3TTTT
CLO 4T

T - Teach, P - Practice
For BEng(CompSc) Programme Learning Outcomes, please refer to here.

Syllabus

Calendar Entry:
This course covers intermediate to advanced computer programming topics on various technologies and tools that are useful for software development. Topics include advanced Python programming, Linux shell commands, shell scripts, C programming, and separate compilation techniques. This is a self-learning course; there will be no lecture and students will be provided with self-study materials. Students are required to complete milestone-based self-assessment tasks during the course. This course is designed for students who are interested in Computer Science /Computer Engineering.

Detailed Description:

Course Content Responsible Lecturer Linux Environment, Tools and Scripting Languages Mapped to CLOs
Linux shell and Linux commands1, 4
Shell scripts1, 4
Makefile and compilation tools and version control1, 4
C/C++ programming Mapped to CLOs
C/C++ programming basics: variables, flow of control, functional abstractions, array and C-string, file I/O, complex data type 2, 4
Advanced C/C++ programming: pointers, dynamic memory management, classes, STL2, 3, 4
Data structures and algorithms Mapped to CLOs
Data structures: Array, linked-list, stack, queue, tree and graph2, 3, 4
Algorithms: searching (e.g., interpolation search) and sorting (e.g., quicksort and mergesort) algorithms2, 3, 4

Assessment:
Continuous Assessment: 70%
Written Examination: 30%

Teaching Plan

Please refer to the corresponding Moodle course.

Moodle Course(s)

Please login with your CS account (for staff only)