• SDS Portal
Search
CUHK-Shenzhen
简体中文
  • About SDS
    • Overview
    • Academic Area
    • Dean’s Message
    • Publications
      • Brochure
      • School Newsletter
      • Annual Report
    • FAQ
    • Contact Us
  • Programmes
    • Introduction
    • Undergraduate
      • Data Science and Big Data Technology
      • Statistics
      • Computer Science and Engineering
      • Financial Engineering
      • 2+2 Double Major Programme
        • Interdisciplinary Data Analytics + X Double Major Programme
        • Aerospace Science and Earth Informatics + X Double Major Programme
      • Columbia University 3+2 Initiative (Columbia Class)
    • Taught Postgraduate
      • M.Sc in Data Science
      • M.Sc in Financial Engineering(Full-time/Part-time)
      • M.Sc in Artificial Intelligence and Robotics
      • M.Sc in Computer Science
      • M.Sc in Statistics
      • M.Sc in Bioinformatics
    • Research Postgraduate
      • M.Phil.-Ph.D. Programme in Data Science
      • M.Phil.-Ph.D. Programme in Computer Science
  • Faculty
    • Faculty
    • Emeritus Faculty
    • Affiliated Appointments
    • Researchers/Visitors
  • Students
    • UG Academic Advisory System
    • Ph.D. Students
    • Student Interviews
  • News & Announcements
    • News
    • Announcements
  • School Events
    • Academic Conferences
      • DDTOR 2025
      • CSAMSE 2023
      • RMTA 2023
      • ICASSP 2022
      • Mostly OM 2019
    • Academic Activities
    • SDS Colloquium Series
    • Other Events
  • Research
  • Jobs
    • Faculty Positions
    • Postdoctoral Fellowships
  • Career
    • Graduate Placements
    • International Programmes
  • About SDS
    • Overview
    • Academic Area
    • Dean’s Message
    • Publications
      • Brochure
      • School Newsletter
      • Annual Report
    • FAQ
    • Contact Us
  • Programmes
    • Introduction
    • Undergraduate
      • Data Science and Big Data Technology
      • Statistics
      • Computer Science and Engineering
      • Financial Engineering
      • 2+2 Double Major Programme
        • Interdisciplinary Data Analytics + X Double Major Programme
        • Aerospace Science and Earth Informatics + X Double Major Programme
      • Columbia University 3+2 Initiative (Columbia Class)
    • Taught Postgraduate
      • M.Sc in Data Science
      • M.Sc in Financial Engineering(Full-time/Part-time)
      • M.Sc in Artificial Intelligence and Robotics
      • M.Sc in Computer Science
      • M.Sc in Statistics
      • M.Sc in Bioinformatics
    • Research Postgraduate
      • M.Phil.-Ph.D. Programme in Data Science
      • M.Phil.-Ph.D. Programme in Computer Science
  • Faculty
    • Faculty
    • Emeritus Faculty
    • Affiliated Appointments
    • Researchers/Visitors
  • Students
    • UG Academic Advisory System
    • Ph.D. Students
    • Student Interviews
  • News & Announcements
    • News
    • Announcements
  • School Events
    • Academic Conferences
      • DDTOR 2025
      • CSAMSE 2023
      • RMTA 2023
      • ICASSP 2022
      • Mostly OM 2019
    • Academic Activities
    • SDS Colloquium Series
    • Other Events
  • Research
  • Jobs
    • Faculty Positions
    • Postdoctoral Fellowships
  • Career
    • Graduate Placements
    • International Programmes
  • SDS Portal
CUHK-Shenzhen
简体中文

Breadcrumb

  • Home
  • CSC3002

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

 

Address: 3 - 6 Floor, Dao Yuan Building, 2001 Longxiang Road, Longgang District, Shenzhen
E-mail: sds@cuhk.edu.cn
Wechat Account: cuhksz-sds

sds.cuhk.edu.cn

Copyright © CUHK-Shenzhen School of Data Science