Resources
Setting up Your Computer
- Installing Python & VS Code on your computer:
- Video demo for getting VS Code and Python up and running.
- Download Python 3 for free (recent version, such as 3.12.x)
- Download VS Code
- Or, you can connect to SFU Computing Science's remote system via your web browser:
- Connect to CS server via VDI
This guide talks about C++, but the steps are the same for Python!
- Connect to CS server via VDI
Recommendations to do at the beginning of the semester
- Regularly attend the classes!
- Check the recommendations about choosing this course: Is this course for me?
- Make note of quiz and midterm dates.
- If there is any special consideration that you would like to share with your instructor about your situation as it relates to this course contact them sooner rather than later.
- From the start: Attend classes, read in advance, review, do practice exercises and assignments. Once office hours and open labs are available, attend regularly for extra help, ask if you have doubts. It is possible to have individual consultations!
FAQ General
Where can I ask general course questions (of possible interest to my classmates also)?
Generally discussion on Discord is the primary place! See the link on the right. You may NOT post full or partial solutions to assignments or exam questions.
What shall I do if I want to explore requesting a concession?
First be clear about the difference between an accommodation and a concession. For a concession, as recommended by SFU student services, first contact your instructor.
How can I contact the TA who marked me to ask for clarifications?
- Contact your TA marker during their office hours, open labs or via email.
- In general, you will see the TA who marked your work.
- Check the TA Lab and Office Hours for TAs email addresses and labs and office hours schedule.
- TA Office hours start in the 2nd week of class.
Where can I ask individual questions about course content and /or assignments doubts?
- Instructor and TA office hours as described in TA Office Hours.
- You are also encouraged to attend Peer Tutors sessions. Peer tutors are not involved in marking at all.
- Peer tutors sessions start on week #3.
Where can I learn and get support about courses selection, learning strategies, accommodations, and academic wellbeing?
Check and use the following resources, workshops possibly also one-on-one virtual consultations!
- FAS (Faculty of Applied Sciences) Advising
- Student Learning Commons (SLC) consultations
- SFU Health and Counselling
- Success Strategies for Online Courses
- Wellness Wheel
- My SSP (24x7 one-on-one consultations, in different languages)
- Academic Enhancement Program (AEP)
- Office of Student Support, Rights and Responsibilities
- Centre for Accessible Learning (CAL - accommodations)
From Health and Counselling:
- Health and Counselling website
- Virtual well-being programs
- Support options for mental health
- Wellness Wheel resources
- Subscribe to Your Health Matters bi-weekly newsletter
FAS Advising Information:
- Drop-in FAS Advising
- Other Helpful Links:
Is it required that I attend office hours and/or open labs?
- It is not required but highly recommended. It's best to clarify doubts early.
Python
Which Python version will we use?
- Python 3. It's preferable to work with the latest version (3.12.x at this time). (Python 3 is NOT backwards compatible with Python 2)
- You can download it for free.
Which environments will we use to run (execute) Python?
Several environments:
- VS Code is the development environment Dr. Brian uses in lecture. It very commonly used by software developers. It has great support for Python. You will also need to install Python on your computer first.
- IDLE is the "Integrated Development Environment"
This is installed when Python is installed (both in PC's and in Macs). When you work with IDLE you work locally in your own computer.- To start IDLE, in Windows:
Left click on Start → All Programs → Python 3.X → IDLE (Python GUI) (X may be 10 or greater as new versions are released).
- To start IDLE, in Windows:
- Replit.com is a web-based tool to execute programs in different programming languages. It is convenient to use when you do not have access to a machine with Python installed on it (though installation of Python is straightforward). It is not recommended to use Replit for assignments and tests unless you use a paid account (about $5 fee per month last time we checked).
- Mu is another free environment, offline (to work locally), straightforward to that you may want to download - we will use it later in the course
- Spyder is a free, more advanced development offline environment which we may use later in the course
- Other development environments are fine to use if you want!
Can I use another environment other than VS Code or IDLE to code my Python program?
In theory you can use any IDE that you prefer as bottom line you are going to submit the .py source files. That is, the environment you use does NOT affect the result. However, to keep our marking process consistent, unless otherwise announced, we will use VS Code or IDLE as the primary IDE to run and mark your submissions. This means that it is your responsibility to make sure your code works in one of those, and if it does not execute in such environment marks will be deducted.
(The detail to consider is that sometimes other IDEs (not IDLE) automatically add modules or do some auto type-conversion which will not work outside of those environments)
Can free online development environments be used for assignments (such as Replit free version)? (NO, because...)**
You should NOT use any online tools (e.g., free version of replit.com, public Git repository) to write your code for assessments. Instead, you should use offline tools (local to your computer).
- VS Code (https://code.visualstudio.com/download)
- IDLE (https://www.python.org/downloads)
- Spyder (https://www.spyder-ide.org )
- Mu (https://codewith.mu)
- Other offline coding system are fine.
Another motivation to use these offline tools is that replit.com sometimes becomes unresponsive due to internet interruptions or request load. The offline tools recommended here are free from those issues. If you really want to use replit.com, you must use the paid version ($5 /month) and make your repls private. Violations to this rule will be penalized.
Do I have to install Python on my computer? How do I do it?
- Yes! You are highly encouraged to install Python 3 on your own PC or Mac machine to be able to work offline.
- Check for the appropriate download in: https://www.python.org/downloads/
- To install Python on an iPad you would need to buy it from the Apple Store, but you are NOT required to buy this! Ideally, you should work on a laptop or desktop as you will need to do considerable typing (in a normal keyboard).
- We will also work with web-based environments (such as Replit) that allow that you use Python even if it is not installed in your machine.
If you cannot install Python consult during office hours. You can also use computers in the CSIL labs, where Python and development environments are already installed.
Can I work in person at the SFU Computing Science instructional labs (CSIL)? How do I access?
- As student in a Computing Science course you can use the computers in the CSIL labs (CS Instructional Labs) 24/7. You can use the CSIL labs in person or you can work on its computers remotely online. There are CSIL labs in all campuses.
- To enter the CSIL labs at Surrey, you'll need to have your SFU ID Card (also referred to as "access card")
- Instructions to access the CSIL labs
- To use the computers in the CSIL labs you will use your own account, BUT this is a different account and different file areas than the general SFU account, but you have the same user id and password.
- In-person open labs will be held at the CSIL labs in Surrey.
Can I use remote desktop to work with SFU Computing Science computers?
- As student in a Computing Science course you can use the computers in the CSIL labs (CS Instructional Labs). You can use the CSIL labs in person or you can work on its computers remotely online.
- To use the computers in the CSIL labs you will use your own account, BUT this is a different account and different file areas than the general SFU account, but you have the same user id.
- To work remotely, check the instructions
- VS Code and Python are already installed in the CSIL labs machines.
Runestone (Interactive textbooks)
Do I have to buy any textbook?
- You do NOT need to buy any textbook for this course. You will be guided to follow readings and exercises in free, online Runestone interactive textbooks. The main book that we will use is How to Think like a Computer Scientist. Interactive version. We will follow a different order than the one in the book, as indicated in the Learning Outcomes page as the course advances.
How do I access the interactive textbooks (Runestone)****?
- This term, we are using the publicly available textbook, and NO LOGIN is required. Just go to the online textbook. If you have taken this course before, you may be prompted to log into Runestone. Clear your browser's cache for the Runestone website if you continue to be prompted to log in.
Will I get points if I read from the interactive textbooks?
- No, readings will NOT be worth marks. However, readings and the exercises contained in the interactive textbook are highly recommended and will be directly referenced at times in lecture and possibly in the midterm and final exam.
Courses alternatives, waitlist, classes style, studying, tools, assignments, and tests
Is this course for me?
It is likely that it is! and that is why you registered! Still, remember that this course assumes no or very light programming background. Make sure to check the next two questions:
Shall I take this course if I have strong CS Programming Background? (Placement Test)**
If you have strong programming background, you are encouraged to take a placement test. Depending on the result you may be able to register in the next CMPT course: CMPT 125.
Are there other introductory CS courses for non-CS majors that I can take?
If you are not planning to pursue a CS major you may want to consider taking the new introductory Computing Science course, CMPT 115 "Exploring CS". If you are in Software Systems, you may want to take CMPT 130 instead, which is similar but taught in C++.
I am on the waitlist - what can I access?
Waitlisted students may attend lectures and access most course material. Waitlists may change the first week of classes quite considerably as people confirm the courses they register to. Consult with FAS (Faculty of Applied Sciences) Advising if in doubt; Instructors do not have any authority to register students. You may enroll in any section of the course: All lab times are open-lab time.
How will regular classes work?
This course offering is fully in person. Labs and assignments may be done anywhere and submitted online; however, you must be in-person for quizzes, and exams.
Open labs will be in person but are optional. Instructor and TA office hours and TA labs will be in person, and some online. Check the TA Office Hours, Open Labs info.
When will class materials be typically posted?
Materials will be added to this website as the course advances; usually the week's content is posted by Monday morning.
In general, and unless announced otherwise, we will post the materials associated to weekly activities (in the Modules section), including readings, labs, and assignments, before the week starts.
How is it recommended to study for this course?
Be an active learner: Review! Do the readings in the interactive textbook including doing the exercises within! Do practice exercises, and of course assignments! Ask when in doubt!
- You are highly recommended to review materials from previous lectures and to do your readings (including the exercises within the Runestone interactive textbooks!) before class.
- You are also recommended to review the lecture posted materials and to complement with your notes and questions (even if briefly) the day or day after the lecture took place .
- You may also want to regularly review weekly.
- Of course remember to do the labs, assignments and quizzes. As review you may want to redo examples!
- Clarify doubts as you have them! - go to office hours.
- Lectures will be interactive; you will be invited to interact with Q&A and write and test programs in class!
Make sure that you keep up with the course, review and study close to the class time and do the weekly activities as the course advances.
What is my "brief-computing-id" (or SFU computing id)?
- We may use tools in this course that will require your brief-computing-id. You can consult your own id in:
- https://www.sfu.ca/sfuds/ Once you are logged in, it shows your id in bold, OR
- https://coursys.sfu.ca/ Once you are logged in, you can see your id in the top right
What content will we approximately cover? Outline? Book chapters?
- Check the SFU CS courses outlines: https://portal.cs.sfu.ca/outlines/
- Considering the Interactive textbook, we will study: Chapters 1 to 12, Chapter 16, and Introduction to Time Complexity (Big Oh notation)
What are Labs and Assignments?
The labs are weekly exercises designed to help you get started with applying the material. They have guided steps to help you accomplish the task. They are collaborative: you can work with a partner (but both of you submit the lab). Some labs will have reflective components, or activities which encourage thinking about computing science.
The assignments are due about every two weeks and are designed to have you apply the material. They are generally done individually or (when announced) possibly in pairs. The assignments give you an opportunity to apply your skills without detailed steps so it helps you build problem solving and debugging skills.
What will be the midterm and final exam formats?
- There will be coding in Python exercises, conceptual questions
- The final exam date is set by SFU part way through the semester.
- The midterm exam will be in person, on paper
- The final exam will be in person, on paper.
Should we use github to keep track of the versions and to work collaboratively?
You will NOT need to work collaboratively until (possibly) the few coding assignments in the course. To work collaboratively you may want to use Discord, Zoom, Google docs, email, etc. You can use VS Code's Live Coding ability to work together (remotely) editing the same files!
To keep track of versions you could internally create different names of files. IF YOU WANT you may explore github to keep track of versions, but this is NOT required for this course. GitHub is a standard and good learning for upcoming courses, but for this course you would be fine with "homemade" ways to communicate with your team partner.
If I have a question about my marking, what can I do?
FIRST contact your TA marker during their office hours or via email. In general, you will see who your marker was in your assignment in Canvas. Check the TA's office hours in the TA Office Hours, Open Labs page.
I am unable to get Turtle Graphics working (likely on a Mac)
Also a solution to unable to install NumPy or PyGame (import fails).
Problem: You may get an error about the TK version installed, or simply see a small black window when you run your turtle graphics program. Or, when trying to install NumPy or PyGame it will either not install, or seem to install and then the import does not work.
Solution Steps:
- Install a recent version of python. I recommend 3.11 or newer. On a Mac, you can find them here.
- Try closing and re-opening VS Code. Re-run your turtle graphics program to see if it is fixed! If not fixed, keep reading:
- In VS Code, we'll create a virtual python environment:
- Press Command + Shift + P (Ctrl+Shift+P on windows):
- Enter Python: Create Environment and select that option.
- Select Venv
- Select the recent version of python you just installed:
- Try running your program. You may need to exit VS Code and restart it.
- Press Command + Shift + P (Ctrl+Shift+P on windows):
Installing NumPy and PyGame**
To install NumPy and PyGame, execute the following command in your terminal:
pip install numpy pygame
You may need to follow the above steps for creating a Venv (virtual python environment) first in order to access pip (or the right version of pip that VS Code is using).