Course Syllabus

Please note that some links on the course syllabus page are only accessible to registered students.

Hello! We'll be your instructors for CS 161 - Introduction to Computer Science I. Computer science is a fascinating field, full of interesting problems to work on, and it certainly doesn't hurt that computing skills are in high demand. Whatever your particular set of motivations for taking this course, it is our hope that you will gain the knowledge and skills that will help you reach your goals.

NOTE: Some links on this page may only be accessible to registered students.

Instructor: Luyao Zhang

Instructor: Timothy Alcon

Instructor: Samarendra Hedaoo



Instructor Contact Information

Please put the prefix [CS161] in the subject when you send emails to us so we can identify your emails quickly.

  • Luyao Zhang (Instructor):
    • You can send me a direct message on Teams and I'll try to get back to you within 24 hours.
    • I’ll be hosting weekly Office Hours on Teams general channel every Wednesday afternoon at 2:00PM Pacific.
  • Timothy Alcon(Instructor): 
  • Samarendra Hedaoo (Instructor):
      • Office hours on Teams/Zoom: Schedule an office hour using the instructions at I usually pop-in on Teams at random times but you can tag or DM me @hedaoos if required.

TA Contact Information and Office hours:

It will be posted on this page in the "Start Here" module.

Ed Discussion: an ongoing Q&A forum

Teams: a forum for office hours and also for more informal interaction with other students

Ecampus Student Resources

Students in this section may be required to interact with teachers, teaching assistants, and
students in other concurrent sections of this same course.

Required textbook:  None



Canvas is the LMS (Learning Management System) that you are using right now to view this course. For questions about Canvas, check this list of help topics. is the tool that was used to create the interactive exercises in the lessons. The exercises are embedded in the lesson pages in Canvas, but you will need to be logged into in order to view them.


At the bottom of each assignment page is a link to GradeScope, which will open in a new tab. On GradeScope you'll be able to click a link to submit your projects from GitHub.

Ed Discussion

There is a link to Ed Discussion in the left sidebar of Canvas. This ongoing Q&A forum is a valuable resource for getting official answers to your questions (and often helpful student responses also). It's good to use the search box before posting, to see if your question has already been addressed.


There is a link to Teams in the left sidebar of Canvas. This forum is for more informal interaction with your fellow students. It is also where TAs and instructors will hold office hours. You can also directly join the Team using the info in this page.


PyCharm is the IDE (Integrated Development Environment) that you will use in this course to develop your assignments. There are a few steps you'll need to follow to get PyCharm set up on your computer:

  1. Download and install the current version of Python 3, found here.
  2. Download and install the Community edition of PyCharm, found here.
  3. Run PyCharm and answer the setup questions (accept the default if you aren't sure). You should reach the welcome screen, which looks like this:
    image of welcome screen
  4. On the welcome screen, click on "Create New Project". You should now see this screen:
    new project screen.png
  5. In the "Location" path, replace "untitled" with "greeting". This will be the name of your project.
  6. Click on the little arrow to the left of "Project Interpreter". You should now see the following:
    Python interpreter screen.png
  7. Click on "Existing interpreter" and select whatever version of Python 3 you installed (make sure to select the interpreter you installed, not the installer file). PyCharm will remember this choice as the default for future projects (which is good, since Python 3 is what we'll use throughout the course). [If the Python 3 interpreter you installed doesn't appear, open the Settings/Preferences dialog, select Project <project name> | Project Interpreter, click the gear icon icon and select Add.  Next select System Interpreter and then select your installation of Python 3.]  You should now see this screen:
    screenshot of blank new project
  8. Near the top of the left pane, right-click on the project folder ("greeting"), select "New/Python File", and name the new file "". In your new document, type the following: print("Hello world.")
  9. Right-click anywhere on the document and select "Run 'greeting'" (which has a little green triangle icon to its left). This should make "Hello world." print to the output window. Congratulations - you've just created and run a program in Python!
  10. Click on "Python Console" at the bottom left of your screen. This changes the bottom window from an output window to a console window, where you can use Python commands interactively. Try entering in this window the same print command that you put in your program. Interactive mode is handy for trying out simple things quickly, but for more complex things it's easier to write a program (or "script" as they're often called in interpreted languages such as Python). If you run your program again, the bottom window will switch back to showing the output of your program.


GitHub is a popular web hosting service for Git repositories. Git is a distributed version control system that makes it easy to keep backups of different versions of your code and track changes that are made to it. You'll be using GitHub to host your assignment code. The assignment page in Canvas will contain a GitHub invitation link for each coding project. When you accept that invitation, GitHub will create a repository for you for that project. Your project's repository contains all of your project's files and stores each file's revision history. You can clone these repositories and then commit and push updates to them from within PyCharm. Cloning a repository creates a local copy of it. Committing a change updates your local copy. Pushing a change updates your repository on GitHub.

Install Git:

  1. Download and install Git.
  2. In the Settings/Preferences dialog of PyCharm, select Version Control | Git in the left pane and specify the path to the Git executable.

Use PyCharm to clone your repository from GitHub:

  1. From the welcome screen, choose Check out from Version Control | Git.  (You can always get back to the welcome screen by closing your project window.)
  2. In the Clone Repository dialog, specify the URL of the remote repository you want to clone (there are detailed steps on the Assignment 1 page).  You can click Test to make sure that connection to the remote can be established.
  3. In the Directory field, specify the path where the folder for your local Git repository will be created into which the remote repository will be cloned (you can use the default path provided).
  4. Click Clone. To create a PyCharm project based on the sources you have cloned, click Yes in the confirmation dialog.
  5. If you encounter an authentication error, follow the steps at this link:

Use PyCharm to commit and push changes:

  1. To invoke the Commit Changes dialog, select the files (or an entire changelist) in the Local Changes view (in the Version Control tab in the lower left) and click check icon on the toolbar (or right-click and choose Commit Changes). The Commit Changes dialog lists all files that have been modified since the last commit, and all newly added unversioned files.
  2. Enter a commit message. You can click clock icon to choose from the list of recent commit messages.
  3. From the Commit drop-down selection choose "Commit and Push".  Then in the pane that pops up, confirm the Push.  Make sure that you commit and push.  If you just commit, that will only update your local copy of the repository, not the copy on GitHub.  The push is what updates the copy on GitHub.

(optional) Calling scripts from the interactive Python console in PyCharm

In the interactive exercises in the exploration pages, it's possible to call parts of a Python program (sometimes called a "script") directly from the interactive console.  However in PyCharm the default settings don't allow you to do this.  You don't need to be able to do that for this course, but if you would like to replicate that behavior in PyCharm, here's how.

In PyCharm, go to Run > Edit Configurations... > Check "Run with Python Console":

run with python console screen.png

Now you should be able to call parts of a Python program from the interactive Python console in PyCharm.  One possible use of this is to write the program for your assignment and instead of writing test code in the same file (which you would need to delete before submitting), you could test the program by calling your code from the interactive console.

Course Summary:

Date Details Due