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
Explain the basic elements of modern computer systems and programming languages
Use Python data types, operators, input, output, conditionals, loops, and functions
Explain fundamental object oriented concepts including objects, classes, and inheritance
Work with elementary data structures including lists, stacks, queues, linked lists, and trees
Understand basic approaches to algorithm design, searching, sorting, recursion, and complexity analysis
Skills and professional awareness
Students should be able to
Write clear, correct, and well documented Python programs
Translate a problem description into a structured computational solution
Test, explain, and improve their own programs
Communicate basic computing ideas clearly
Recognize the social, industrial, environmental, and technological context of computing
Teaching topics
| Area | Coverage |
|---|---|
| Computing foundations | Modern computers, programming concepts, and problem solving |
| Python fundamentals | Syntax, data types, operators, input, output, and expressions |
| Program control | Conditional statements, loops, and functions |
| Data collections | Lists and common list operations |
| Object oriented programming | Objects, classes, and inheritance |
| Data structures | Complexity, recursion, stacks, queues, linked lists, and trees |
| Algorithm design | Elementary design methods, searching, and sorting |
The detailed sequence appears on the course calendar.
Assessment
| Component | Weight |
|---|---|
| Four assignments with the best three counted | 15 percent in total |
| Midterm quiz | 35 percent |
| Final exam | 50 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.