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 a | PLO b | PLO c | PLO d | PLO e | PLO f | PLO g | PLO h | PLO i | PLO j |
CLO 1 | | T | | | | | | | | T |
CLO 2 | | | T | T | | | | | | T |
CLO 3 | T | | T | T | | | | | | T |
CLO 4 | | | | | | | | | T | |
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 commands | 1, 4 |
Shell scripts | 1, 4 |
Makefile and compilation tools and version control | 1, 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, STL | 2, 3, 4 |
Implementation of basic data structures
(array, linked-list) and algorithms
(searching and sorting) | 2, 3 |
|
Assessment:
Continuous Assessment:
70% Written Examination:
30%
|
Teaching Plan |
Please refer to the corresponding Moodle course.
|
Moodle Course(s) |
|