Syllabus
Term | Fall, 2025 |
Course | CSC1001: Introduction to Computer Science: Programming Methodology |
Prerequisites | None |
Instructor | Yunming XIAO |
Lecture Time | Tuesday & Thursday, 3:30pm - 4:50pm |
Lecture Location | Teaching Complex A401 |
About the Course
This course introduces the basics of computer programming using Python. Students will learn the basic elements of modern computer systems, key programming concepts, problem solving, and basic algorithm design. The key topics include the basic Python language syntax, data types, operators, flow control, defining and using function, I/O, data structure and algorithms, and the basics of object-oriented programming. This course provides a foundation to further study in advanced computing topics.
Course Format
Lectures
Lectures will be given twice a week on Tuesdays and Thursdays from 3:30pm to 4:50pm.
Tutorial Sessions
The best way to learn how to program is to practice writing lots of programs. To encourage this, you will sign up for a required tutorial section starting from the second week. Your tutorial peer mentor will be your “go to person” for the course - feel free to reach out to them with any questions or concerns that you may have.
Course Staff
We have 14 teaching assistants and 8 undergraduate student teaching fellows to help you:
Teaching Assistants
- Xiaozhuang Song (Leading TA) (xiaozhuang.song@link.cuhk.edu.cn)
- Aoyang Fang (222010547@link.cuhk.edu.cn)
- Gongzhe Li (223040260@link.cuhk.edu.cn)
- Haoyu Zhang (224040378@link.cuhk.edu.cn)
- Junying Chen (223040263@link.cuhk.edu.cn)
- Ke Ji (224040370@link.cuhk.edu.cn)
- Li Wang (223040245@link.cuhk.edu.cn)
- Ruixing ZhuZhou (222010522@link.cuhk.edu.cn)
- Xianhong Zhao (223010098@link.cuhk.edu.cn)
- Xinjian Zhao (223040251@link.cuhk.edu.cn)
- Yaoyao Xu (224040357@link.cuhk.edu.cn)
- Zherui Lu (223040355@link.cuhk.edu.cn)
- Zhiqing Zhong (223040261@link.cuhk.edu.cn)
Undergraduate Student Teaching Fellows
- Guanyu Wei (123090608@link.cuhk.edu.cn)
- Jingyi Liang (124090346@link.cuhk.edu.cn)
- Junhan Fu (123090114@link.cuhk.edu.cn)
- Junyi Gu (123090132@link.cuhk.edu.cn)
- Rui Qin (123090459@link.cuhk.edu.cn)
- Sizhe (122090273@link.cuhk.edu.cn)
- Li Tangchao (123090284@link.cuhk.edu.cn)
- Yuetong Chen (123090050@link.cuhk.edu.cn)
Course Materials and Resources
Free Online Resources
- Python Tutorial, by W3School
- A Practical Introduction to Python Programming, by Brian Heinold
- How to think like a Computer Scientist, by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers
Installing Software
As this is a programming course, you will be using some free software programs and libraries in order to write Python programs. Installing and configuring this software can be a huge hassle, but it is part of the process of developing your working computing knowledge.
If you are struggling to get Python and your code editor installed, this is (alas) normal (ask any software engineer). This is also one of the reasons why we have such a big course staff: to troubleshoot individual laptop problems with students.
Getting Questions Answered
Office Hours
Office hours (and tutorials) are hands down THE BEST resource this course has to offer. We have 14 TAs whose job is to help you to be successful and find your own power as current and future programmers. That said, it's up to you to take initiave and cultivate a weekly / bi-weekly office-hours-going practice that works for you and your schedule. This looks different for everyone: some people go to 1-2 office hours sessions per week and finish their homework with a TA nearby (if needed). Other students never go to office hours (though this is rare, as the homeworks and projects are challenging). Also, different people connect with different TAs, so do shop around to find a TA with whom you work well…and drop in sooner rather than later!
The kinds of questions that are perfectly legitimate to ask in office hours include (but are not limited to):
- I don't know where to start in this week's homework. Can you help?
- My laptop won't run the code! Help!
- My code's not working? What's my error?
- I didn't understand X idea in lecture / tutorial this week. Can you explain it to me?
- What courses should I take next after CS110?
- What kinds of CS-related careers and opportunities are out there?
Blackboard
All course announcements, assignments, grades, and other course materials will be posted on the course Blackboard site. You should check this site regularly.
Grading Questions
For grading questions/concerns you should go to the TA's grading office hours. You can also send them a private message through email with assignment grading questions/concerns.
Other Questions
For any other issues that you think are not appropriate for the TAs, please come talk to me. This might include things like concerns about your progress in the course, questions about content from my lectures, personal matter related to your participation in the course, larger grade concerns, advice about future courses, majors and internships, etc.
Office Hours
My office hour is right after the class on Tuesday, 5pm-6pm, in my office at Zhi Xin Building 403a.
The office hours by the TAs will be announcements later.
Grading
Your course grade is calculated based on 100 points as follows:
4 assignment | 4 x 10 Points | 40 Points | 40% |
Midterm quiz | 1 x 20 Points | 20 Points | 20% |
Final exam | 1 x 40 Points | 40 Points | 40% |
100 Points | 100% |
Final grades will be curved.
On occasion, the grader may make an error. You will receive your assignment grades on Blackboard. If you have any grading questions/concerns, please send an email to the TA to resolve the issue. Finally, it is your responsibility to keep up-to-date on class material and announcements, as the schedule is subject to change. This includes material presented and announcements made in class, via email, or on Blackboard.
Policy on Academic Honesty
For the programming assignments: You are allowed (encouraged, even!) to discuss general approaches to solving problems, but all work you submit must be your own. Working “together” and presenting variants of the same file is not acceptable. Here are some specific guidelines to make sure you don't cross the line:
- Do not exchange programs or program fragments in any form - on paper, via e-mail, or by other means.
- Do not copy solutions from any source, including the web or previous CSC1001 students.
- While working with other students, it is perfectly acceptable to 'look' at each other's code (perhaps while helping someone to debug), but you should NEVER be scribing (typing or writing) your own work while looking at someone else's (on a computer screen, paper, whiteboard, etc.).
- Uploading materials from this course to websites that sell such content to students is prohibited, and may also put you at risk for violating copyright policies.
Contact the instructor if you have any questions about what is appropriate.