Courses Offered

ENGG1340 Computer Programming II

ENGG1340 Computer Programming II

2021-22
Instructor(s):Chim T W
(Class A) No. of credit(s):6
Luo Ruibang
Qian Chenxiong
(Class B)
Luo Ruibang
Qian Chenxiong
(Class C)
Recommended Learning Hours:
Self-study & practical modules: 39.0
Lecture: 2.0
Tutorial: 13.0
Pre-requisite(s):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 C/C++. Able to utilize debuggers and techniques like separate compilation, make files and version control to simplify and manage the program 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:

Linux Environment, Tools and Scripting Languages Mapped to CLOs
Linux shell and Linux commands1, 4
Shell scripts1, 4
Makefile, 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 type2, 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 (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)

Please login with your CS account (for staff only)