CSC3002
Course Outline
1. Course Identity
A. Course as listed in CUHK-Shenzhen
The information in this block should be exactly as approved by CUHK Senate. In case there are any differences, please explain in the table below.
|
Course code |
CSC3002 |
|
Course title (English) |
C/C++ Programming |
|
Course title (Chinese) |
C/C++程序设计 |
|
Units |
3 |
|
Language of Instruction |
English |
|
Description (English) |
Building on the background from the first programming course "Introduction to Computer Science: Programming Methodology", we will move from the Python programming language to C++, and cover more advanced programming techniques such as recursion and dynamic memory management, explore advanced data structures and algorithms, compare procedural, functional, and object-oriented programming paradigms, and apply these tools to solving complex problems. |
|
Description (Chinese) |
在前序课程《计算机科学导论:程序设计方法》的基础上,我们从Python 改为采用 C++为主要编程语言,讲授更高阶的编程技巧包括递归和动态内存管理等,介绍更复杂的数据结构和算法,比较过程型、函数型、以及面向对象型等不同类型的编程范式,并使用这些编程技巧解决复杂的实际问 题。 |
B. Corresponding course in CUHK
Please give details of the closest corresponding course in CUHK (as approved by CUHK Senate and listed in course list). If the course in Shenzhen maps to more than one course in CUHK, please make multiple copies of the block below.
|
Course code |
CSCI1120 |
|
Course title (English) |
Introduction to Computing Using C++ |
|
Course title (Chinese) |
|
|
Units |
3 |
|
Description (English) |
This course introduces the computer-oriented problem-solving methods and algorithm development; object oriented programming concepts; concepts of abstract data types; simple data structures; illustrative applications. The C++ programming language will be used. |
|
Description (Chinese) |
|
|
Course code |
CSCI1520 |
|
Course title (English) |
Computer Principles and C++ Programming |
|
Course title (Chinese) |
|
|
Units |
3 |
|
Description (English) |
This course introduces computer programming in C++. Students will learn the functional elements of a computer system, object- oriented programming concepts, problem solving and creation of computer applications. Students will be able to apply these computing skills in various disciplines. This course also provides a foundation to further study in advanced computing topics. |
|
Description (Chinese) |
|
|
Course code |
CSCI1540 |
|
Course title (English) |
Fundamental Computing With C++ |
|
Course title (Chinese) |
|
|
Units |
3 |
|
Description (English) |
This course introduces fundamental computing principles, problem- solving methods and algorithm development, simple data structures, illustrative applications. The C++ programming language will be used. |
|
Description (Chinese) |
|
2. Prerequisites / Co-requisites
Please state prerequisites and co-requisites, in terms of courses in CUHK-Shenzhen* or any other requirements (e.g., having taken certain subjects in high school).
(* Because course codes may not yet be stable, please provide both course code and course tile.)
A. Prerequisites
CSC1001 Introduction to Computer Science: Programming Methodology or CSC1003 Introduction to Computer Science and Java Programming
B. Co-requisites
NA
3. Learning Outcomes
Upon completing this course, students will have acquired:
• Fundamental knowledge in computer science and engineering, including computer system and architecture, computer programming and software, etc., and the prerequisites for further computer science and engineering courses (K);
• Knowledge of the C++ programming language, compilers and IDEs, etc., and programming skills, including designing, implementing, and testing various C++ programs (K&S);
• Ability to identify, formulate, and solve practical problems using various computer programming techniques (S&V);
• Understanding of the requirements of professional ethics (V)
K: Knowledge outcomes; S: Skills outcomes; V: Values outcomes
4. Course syllabus
• Overview of the C++ programming language, compilers and IDEs
• Programming basics: functions, libraries, strings, streams, collections
• Object-oriented programming: objects, classes, inheritance
• The C++ memory model: pointers, arrays, dynamic memory management
• Recursion
• Algorithmic complexity analysis, efficiency and representation
• Linear structures: stacks, queues, vectors
• Advanced structures: maps, trees, sets, graphs
• Programming paradigms: procedural, functional, object-oriented, etc.
5. Assessment Scheme
|
Component/ method |
% weight |
|
Programming Assignments |
50 |
|
Final Exam (Written exam) |
50 |
6. Grade descriptor
General
|
Grade |
Description |
|
A |
Demonstrates a deep understanding of the knowledge in computer science and engineering, especially in computer programming, in the written examination; demonstrates strong skills of designing, implementing, and testing various C++ programs, and great ability to identify, formulate, and solve practical problems using various computer programming techniques, with nearly no errors, in the programming assignments. |
|
B |
Demonstrates a general understanding of the knowledge in computer science and engineering, especially in computer programming, in the written examination; demonstrates necessary skills of designing, implementing, and testing various C++ programs, and average ability to identify, formulate, and solve practical problems using various computer programming techniques, with only minor errors, in the programming assignments. |
|
C |
Demonstrates a limited understanding of the knowledge in computer science and engineering, especially in computer programming, in the written examination; demonstrates basic skills of designing, implementing, and testing various C++ programs, and limited ability to identify, formulate, and solve practical problems using various computer programming techniques, with major errors sometimes, in the programming assignments. |
|
D |
Demonstrates a minimal understanding of the knowledge in computer science and engineering, especially in computer programming, in the written examination; demonstrates little skills of designing, implementing, and testing various C++ programs, and low ability to identify, formulate, and solve practical problems using various computer programming techniques, which often fail to perform as expected, in the programming assignments. |
|
F |
Demonstrates a poor understanding of the knowledge in computer science and engineering, especially in computer programming, in the written examination; fails to finish most of the programming assignments. |
7. Feedback for evaluation
• Formal Course and Teaching Evaluation by students after finishing all the lectures;
• Informal feedback to the instructor and/or teaching assistant(s) through face-to-face discussions, video conferences, emails, etc.;
• Internal and/or external programme and/or course reviews of the school and/or the university.
8. Reading
Recommended Reading:
1.Programming Abstractions in C++, 9780133454840, Eric Roberts, Pearson, 1ST EDITION, United Kingdom
9. Course components
|
Activity |
Hours/week |
|
Lecture |
3 |
|
Readings & Assignments |
6 |
|
Tutorial |
1 |
10. Indicative teaching plan
|
Week |
Content/ topic/ activity |
|
001 |
Course introduction and overview of C++ |
|
002 |
Programming basics I: functions and libraries |
|
003 |
Programming basics II: strings and streams |
|
004 |
Programming basics III: collections |
|
005 |
Object-oriented programming I: objects and classes |
|
006 |
Pointers and arrays |
|
007 |
Dynamic memory management |
|
008 |
Recursion |
|
009 |
Algorithm efficiency and representation |
|
010 |
Linear structures: stacks, queues, vectors |
|
011 |
Advanced structures I: maps, trees, sets |
|
012 |
Advanced structures II: graphs |
|
013 |
Object-oriented programming II: inheritance |
|
014 |
Programming paradigms |
11. Implementation plan
The implementation plan may vary from year to year. Please indicate expected enrolment, and number of sections.
[Example: 150 students for lecture (x 2); 30 students for tutorials (x 10)]
Lectures: 140 students for lectures (x 2);
Tutorials: 70 students for tutorials (x 4) if the computer labs can hold more than 70 students, or 35 students for tutorials (x 8) if the smaller computer labs are used
12. Any other information
*the number of assignments/quizzes/reports is subject to change as the instructor sees fit.
13. Approval
Has the course title been included in the programme submission approved by CUHK Senate? Are there any differences?
Have the details (as in this document) been approved at School or other level in CUHK- Shenzhen?
Submit application
14. Version date
|
Version number |
3 |
|
As of (date) |
2023-07-19 |

