UBC's Point Grey Campus is located on the traditional, ancestral, and unceded territory of the xʷməθkʷəỷəm (Musqueam) people. The land it is situated on has always been a place of learning for the Musqueam people, who for millennia have passed on their culture, history, and traditions from one generation to the next on this site.
Welcome to CPSC 110! Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more.
The major goal of this course is to introduce students to a systematic method for solving hard design problems. Going forward in your career you will of course learn additional techniques, but the design method covered in CPSC 110 will serve you well whenever you face a difficult design problem — whether it is program design or a problem from another field entirely. Previous students have said:
Studying computer science inspired me to think about problems differently and take a more systematic approach to them. Program design is applicable not only to computer science, but numerous areas of life. It is essential in the development of problem solving skills.
The course is designed to be interesting, accessible and useful for all UBC students — CS majors and non-majors alike. No prior programming experience is assumed, and very little math and science background is required. The course will also prepare you to learn more Computer Science skills and concepts in the future, either through formal courses or on your own.
The learning goals for CPSC 110 are as listed below:
CPSC 110 uses a variety of resources and online platforms. It is important that you are familiar with them and this section provides an overview of the resources you will be using this term.
Office hours are a great place to get help with the course material, work on practice problems, and make friends. We encourage you to attend office hours as often as possible, not just when you need extra help. You are welcome to attend any office hours session regardless of your lecture or lab section. The instructor and TA office hours schedule will be posted on Piazza once the term begins.
|Course Topics Schedule||
This schedule allows you to determine when your specific lecture and lab section covers which material (please check your course schedule in the Student Service Centre to see which lecture and lab sections you are registered in, and when they meet). Problem set deadlines and midterms are also included on the course topics schedule. We recommend you bookmark this schedule and refer to it often, as you are responsible for all the material from all the modules that are listed. Individual instructors will post notes in the Lecture section of edX to tell you what you need to watch before lecture to prepare and after lecture for review.
For each week there are 3 rows:
|DrRacket||We will be using the programming tool DrRacket this term. You can learn more about DrRacket on the Setup page. We strongly recommend that you do not perform any large updates (or operating system changes) to your computer or to DrRacket during the term, but especially not right before exams.|
This course is based on the edX Systematic Program Design series, and therefore much of the material we will use through the term will be hosted on edX. This includes:
Although we will be using edX extensively throughout the term, you should treat the numbered section materials in edX like a textbook. That is: most of the numbered section edX material will pertain to our course, but if there are differences between lecture and edX then what you see in lecture takes precedence.
The course discussion forum is hosted on Piazza, which we will use throughout the course for the following:
Your grades for all components of the course (lectures, labs, problem sets, midterms, etc.) will be available through Canvas. You can also find the Zoom links and recordings for synchronous online lecture sessions and some office hours through the Zoom tab on Canvas.
NOTE: We do not check or respond to messages sent through Canvas mail. Your first target if you have a question is to ask it on Piazza. But, if you have a personal matter that requires you to contact your instructor or the Course Coordinator, please email them directly.
|Zoom||Synchronous online lecture sessions and some office hours will be held on Zoom. All other course activities are in-person.|
|Gradescope||We use Gradescope to facilitate the grading of problem sets and exams, however, as mentioned above your grades will be available through Canvas. You do not need to sign up for Gradecope and we will provide instructions about how to access your graded exams after the first midterm.|
This page contains copies of exams from previous semesters. Do not assume that this term's exams will exactly follow the format of previous exams. Also note that some elements of the course change every term. The most recent exams are the best practice, the old exam topics will be relevant, but some details of the questions will be less relevant.
We are in the process of deploying autograders for practice exams! Here are a couple of important caveats:
As a CPSC 110 student, you are responsible for reading, understanding, and following these policies. If anything is unclear to you, please ask for clarification on Piazza. Unfortunately, claiming that you unintentially violated a course policy because you didn't understand it is not a valid excuse, and the consequences will be the same regardless of your intention and/or understanding.
The Department of Computer Science has a detailed Policy regarding collaboration on academic work in addition to UBC's Academic Honesty and Standards Policy and definition of academic misconduct. As a UBC student, it is your responsibility to read, understand, and follow these policies.
In CPSC 110, our specific rules about academic integrity and collaboration are as follows:
Any violations of these policies will be reported, in writing, to the Dean of Science's office.
Everyone involved with CPSC 110 is responsible for understanding and abiding by the UBC Statement on Respectful Environment for Students, Faculty and Staff. The statement speaks to our freedoms and our responsibilities, and provides the guiding principles to support us in building an environment in which respect, civility, diversity, opportunity and inclusion are valued.
Everyone's safety and wellbeing are our top priority and it is important that we all feel safe and comfortable while engaging in in-person course activities together. UBC no longer requires students, faculty, and staff to wear non-medical masks, but continues to recommend that masks be worn in indoor public spaces. The CPSC 110 course team prefers that everyone wears non-medical masks during in-person course activities (i.e. labs, office hours, and exams).
Do not attend in-person course activities if you are ill and/or experiencing any symptoms (e.g., fever, coughing, sneezing, etc.) that put others at risk. Attending in-person course activities while ill is a direct violation of UBC's COVID-19 Campus Rules and is considered non-academic misconduct. Stay home and take the time you need to rest and recover. Please see the Absences/Missing Assignments section for information on what to do if you are unable to attend in-person course activities due to illness.
If you are registered with the Centre for Accessibility, please send your accommodation letters to the Course Coordinator at email@example.com ASAP.
Please note that in order to receive accommodations for exams, such as extended time or a private space, you must book your exams through the CFA exam portal according to their specified deadline.
Attendance is mandatory and all material from course is examinable. We are not able to provide extensions (a later due date/deadline) for any assignments in the course under any circumstances.
If you miss a lab, problem set, or exam, you may be able to receive an exemption and you should submit an academic concession form no later than 48 hours after the missed assignment. Please note that the academic concession form will close at 11:59 PM on the last day of classes (Thursday, April 13, 2023).
Receiving an exemption for a lab, problem set, or exam means that you you will not receive 0 for missing that assignment. Exemptions are recorded as "EX" in Canvas — this is our way of indicating that we need to omit that grade when calculating final grades at the end of the term. Note that recieving an exemption does not excuse you from needing to know the course material that you missed — it is your responsibility to catch up on any course material that you miss.
If you do not reqest academic concession for a missed assignment in accordance with this Policy or UBC's Policy on academic concession, you will receive 0 for that assignment. As stated in the Assignments and Grading section, your lowest lab grade and your lowest problem set grade will be dropped at the end of term, in addition to any exemptions confirmed by the Course Coordinator.
If you miss a lecture:
If you miss a lab:
If you miss a problem set:
If you miss a midterm:
If you miss the final exam:
If you believe one of your lab or problem set grades is incorrect, you may be able to receive a regrade and you should submit a regrade request form no later than 48 hours after grades have been released for that assignment. Please note that the regrade request form will close at 11:59 PM on the last day of classes (Thursday, April 13, 2023). Regrade requests for exams must be submitted through Gradescope and we will share share further details on Piazza after the first midterm.
You must specify which parts of your solution you believe were graded incorrectly, explaining why your answer should be marked correctly with reference to the rubric and the posted solution, if available. Regrade requests that either question the rubric or do not explain why the answer should be considered correct according to the rubric will not be considered. Note that we reserve the right to regrade the entirety of any assignment submitted. When requesting a regrade, your old grade will be discarded and your new grade could be higher or lower. Any regrade request that does not comply with this Policy will be denied without written reply.
Examples of unacceptable explanations are:
Examples of good explanations are:
CPSC 110 follows the CS Department's wait list Policy up to (but not including) the first day of classes. The wait list is managed according to the priorities described in the CS Department's wait list Policy and there isn't anything anyone can do to get you into a course that is full. Please do not contact instructors, Course Coordinators, or CS Advising to ask about bypassing the waitlist or about your wait list position.
Each term a number of students drop the course and some space opens up in the course for wait-listed students. If you would like to get into the course, you must:
After the first day of classes, registration is blocked for all sections, including the wait list(s), to ensure that any wait-listed students who get into the course have been keeping up with the course material since the first day of classes.
Students who registered on (one of) the wait list(s) before the first day of classes will write a wait list quiz shortly before the add/drop deadline. We will provide more information about the quiz to wait-listed students once the term begins. The wait list quiz is mandatory to be enrolled in the course after the term starts, however, writing the wait list quiz does not guarantee that you will get in to the course.
Students on the wait list are not allowed to attend labs due to room/TA capacity, but they must complete the lab work for practice to keep up with the course material. Students on the wait list are welcome to attend TA office hours to get help and/or feedback on their lab work. Movement from the wait list into the course is dependent on both your wait list position and your ability to demonstrate that you have been doing work in the course from the first day of term. Please note that even if you are high up on the wait list AND write the wait list quiz, there is no guarantee that you will get in to the course.
Wait list students who are moved into the course will automatically receive exemptions for the lab(s) they have missed while on the wait list. Wait-listed students are required to complete and submit problem sets and extensions/exemptions will not be provided for problem sets.
|UBC Policies and Resources to Support Student Success||
UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available here.
The intended grading schemes for the course are below, followed by grading policies and a detailed description of how each component is graded. The instructors reserve the right to change the grading scheme for the course at any time, however, if the grading scheme is changed after the add/drop deadline, we will notify you as required by UBC's syllabus Policy. Please note that it is not possible to adjust the grading scheme for an individual student under any circumstances, except when an exemption has been provided for one or more of the midterm exams.
|EdX Module Questions||0%|
|EdX Module Questions||0%|
|Midterm 1-4||40% (10% each)|
Midterm Exemption Policies
Lecture topics are shown on the schedule and each lecture has a corresponding page in the Lectures section of edX. You should check these pages regularly as they contain information to prepare for the lecture, information needed during the lecture, and information needed after the lecture.
Prior to lecture you will be expected to work through one or more edX numbered videos. Most lectures will begin with Zoom poll questions based on the pre-work you did on edX. There will also be additional Zoom poll questions throughout lecture, based on the work we are doing at that time. Zoom poll questions are not graded, but they are essential to being engaged in lecture and are a helpful way to assess your understanding of the material.
Lecture will be a mix of the instructor lecturing and you working on short programming exercises that you submit to the autograder through SPD handin. You must submit each lecture starter at least one time during your scheduled lecture section in order to receive credit for that lecture. If you are not able to complete the lecture starters during lecture, you have until 10:00 PM on the day of your lecture to continue working on them. Your last submission to the autograder before the deadline is the submission that will count towards your lecture grade.
Lecture recordings will be provided. Please note that these lecture recordings are a supplement, not an alternative to attending your lecture section. Our lectures are based on live activities which research shows improves learning. You should use the recordings for review or to catch up if you must, on occasion, miss a lecture.
Lab topics are shown on the schedule and each lab has a corresponding page in the Labs section of edX. You must go to the specific lab section that you are registered in and you must arrive at your lab on time. If you do not attend your lab on time and participate actively and respectfully throughout the entire 2 hours and 50 minutes, you will lose all or part of your lab grade that week.
Labs involve the design of one or more programs graded by the autograder, as well as a check-off question asked by your TA that you must answer before leaving the session. Check-off questions are intended to test your understanding of the programs you designed.
Do not work on the lab problems prior to your scheduled lab time. Working on the lab problems during lab is necessary and valuable to your learning. If you come to your lab with some or all of the lab problems completed ahead of time, your TA will ask you to start over.
Your grade for each lab is calculated using your autograder score and the score that your TA gives you out of three for attendance, behaviour, and check-off. The grading scheme is as follows:
Problem set deadlines are shown on the schedule, and each problem set has a corresponding page in the Problem Sets section of edX. You should check these pages regularly for problem set starter files, solutions, and feedback. We do not provide extensions and late problem sets will not be accepted under any circumstances.
Problem sets involve the design of one or more programs graded by the autograder, as well as an assessment with your TA that will take place during the next week's lab. Problem set assessment questions are intended to test your understanding of the programs you designed. Some weeks you will have a short TA assessment and some weeks you will have a longer TA assessment, however, you will not know which assessment you will have ahead of your scheduled lab time.
Your grade for each problem set is calculated using your autograder score and your TA assessment score. Over the course of the term, your TA assessment score will contribute to approximately 1/3 of your overall problem set grade. The grading scheme is as follows:
You can work on each problem set alone or with one other student in the course. If you work with another student, you must submit a single shared assignment for both students that includes both of your CWLs. Make sure you review the Academic Honesty Policy before starting your first problem set.
You and your partner should work together on the problem set rather than just comparing notes at the end. You can change partners through the term, but each problem set must be done either alone or with a single partner. Please note that if you choose to work with a partner on your problem set, you may receive different problem set grades if you and your partner perform differently on your TA assessment, even though your autograder score is the same.
The Piazza discussion forum is the only approved forum for questions about problem sets. Questions can only be about the problem statement. Questions that contain information about how you are solving the problem or what you understand about the problem will be deleted. An instructor will answer questions that appear to identify mistakes in the problem sets, but to the greatest degree possible you are expected to do the problem sets yourselves. Getting too much help on problem sets leads to doing very poorly on exams where that help is not available.
Midterms are shown on the schedule and the final exam is scheduled during the final exam period by the university. Exams will be invigilated in-person in large rooms on campus to ensure space between students for social distancing and to discourage academic misconduct. You will be required to bring a computer to your exam room to write your exams. We will post more detailed information on Piazza in advance of the first midterm.
Midterm 1: Tuesday, February 7 from 6:00 PM to 8:00 PM
Midterm 2: Tuesday, March 14 from 6:00 PM to 8:00 PM
Final Exam: During the final exam period (April 17-28), date and time TBA
Here are some tips for doing well in this course. We suggest you read this every week or so for the first few weeks of the course, that will help incorporate these ideas into your work.
In the words of a former student:
It's funny how repetition in actually doing the work leads to it all of a sudden making sense to me. I can't explain it. I don't have a sense of growing understanding. I have confusion, repetition, and suddenly a sense of understanding. It's not coming through watching or reading, though. It comes from replicating what I've watched several times. This has happened repeatedly for me in this class. I start the week with a sense of accomplishment, well being, peace of mind, and confidence from the victory over last week's homework. I am then submerged in doubt, confusion, and erm, terror. (Why not be melodramatic?) Suddenly there is a working epiphany and I have victory again.
The Setup page provides instructions on how to set up your computer and online accounts so that you are ready to work in CPSC 110. These instructions can be followed either before your first lab or during your first lab. These instructions assume that you already have a Campus-Wide Login (CWL) account.