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

Undergraduate Student Teaching Fellows

Course Materials and Resources

Free Online Resources

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):

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:

Contact the instructor if you have any questions about what is appropriate.