Link Search Menu Expand Document (external link)

Course Syllabus

Course overview

CSC1001 introduces computer programming and computational problem solving through Python. Students learn how programs represent data, control execution, organize reusable logic, and implement elementary data structures and algorithms. The course also introduces object oriented programming and prepares students for more advanced computing courses.

Prerequisites

No prior programming experience is required.

Learning outcomes

Knowledge

By the end of the course, students should be able to

  1. Explain the basic elements of modern computer systems and programming languages

  2. Use Python data types, operators, input, output, conditionals, loops, and functions

  3. Explain fundamental object oriented concepts including objects, classes, and inheritance

  4. Work with elementary data structures including lists, stacks, queues, linked lists, and trees

  5. Understand basic approaches to algorithm design, searching, sorting, recursion, and complexity analysis

Skills and professional awareness

Students should be able to

  1. Write clear, correct, and well documented Python programs

  2. Translate a problem description into a structured computational solution

  3. Test, explain, and improve their own programs

  4. Communicate basic computing ideas clearly

  5. Recognize the social, industrial, environmental, and technological context of computing

Teaching topics

AreaCoverage
Computing foundationsModern computers, programming concepts, and problem solving
Python fundamentalsSyntax, data types, operators, input, output, and expressions
Program controlConditional statements, loops, and functions
Data collectionsLists and common list operations
Object oriented programmingObjects, classes, and inheritance
Data structuresComplexity, recursion, stacks, queues, linked lists, and trees
Algorithm designElementary design methods, searching, and sorting

The detailed sequence appears on the course calendar.

Assessment

ComponentWeight
Four assignments with the best three counted15 percent in total
Midterm quiz35 percent
Final exam50 percent

The four assignments are planned approximately every three weeks. The best three assignment scores out of four will count toward the assignment component. Exact release dates, due dates, and submission instructions will be announced on Blackboard.

Teaching format

The course has two lectures each week on Monday and Wednesday. Tutorials provide additional practice and support. Tutorial arrangements will be announced on Blackboard.

The final scheduled teaching week is reserved for independent review and exam preparation. There are no CSC1001 lectures during that week.

Course expectations

Assignments

Assignments must be submitted as a single PDF file through Blackboard by the stated deadline. Unless an extension is approved, late work loses 10 percent of the maximum available mark for each day or part of a day that it is late.

AI tools are allowed for assignments. Students remain responsible for the correctness of submitted work and must be able to explain their solutions.

Collaboration is not permitted on assignment problems. Students may discuss lecture material and practice problems, but submitted work must be their own.

Examinations

The midterm quiz and final exam are conducted in person and are closed book. Students may bring one A4-sized cheat sheet, either handwritten or printed. No other materials or electronic aids are allowed. Confirmed dates and venues will be announced through Blackboard and the course website.

Academic integrity

Students must follow the CUHK-Shenzhen Academic Integrity Policy. Academic dishonesty may result in a failing grade.

Communication and support

Blackboard is the main channel for announcements, assignment release and submission, and assessment information. Students may contact the teaching assistants about assignment questions and the instructor about course content or logistics.