Course Information
COMP2113 Programming Technologies

COMP2113 Programming Technologies

2019-20
Instructor(s):Cui H.M.
(Class A) No. of credit(s):6
Choi Loretta
Luo Ruibang
(Class B)
Choi Loretta
Luo Ruibang
(Class C)
Recommended Learning Hours:
Lab Session: 39.0
Pre-requisite(s):COMP1117
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
3. [Advanced programming techniques] Be able to understand and apply the principles of advanced programming techniques including recursion, C++ classes, 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 tools1, 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, 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 (interpolation search) and sorting (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)