CSC110: Fundamentals of Programming: I
Territory Acknowledgement

We acknowledge and respect the Lək̓ʷəŋən (Songhees and Xʷsepsəm/Esquimalt) Peoples on whose territory the university stands, and the Lək̓ʷəŋən and W̱SÁNEĆ Peoples whose historical relationships with the land continue to this day.

Course Dates
CRN(s): Section A01 CRN: 30154
Section A02 CRN: 30155
Section A03 CRN: 31613
Term: 2025
Course Start: 2025-05-07
Course End: 2025-08-16
Withdrawal with 100% reduction of tuition fees: 2025-05-19
Withdrawal with 50% reduction of tuition fees: 2025-06-08
Last day for withdrawal (no fees returned): 2025-07-02
Scheduled Meeting Times (M=Mon, T=Tue, W=Wed, R=Thu, F=Fri)
Section: Location: Classes Start: Classes End: Days of week: Hours of day: Instructor:
A01COR B1352025-05-072025-08-01MR10:00-11:20Yun Lu
A02COR B1352025-05-072025-08-01MR10:00-11:20Yun Lu
A03COR B1352025-05-072025-08-01MR10:00-11:20Yun Lu
B01ECS 2582025-05-122025-08-01T09:30-11:20
B02ECS 2582025-05-122025-08-01T12:30-14:20
B03ECS 2582025-05-122025-08-01R11:30-13:20
B04ECS 2582025-05-122025-08-01T09:30-11:20
Instructor(s)

Name: Yun Lu
Office: ECS 518
Phone: (250) 472-4833
Email: yunlu at uvic dot ca

Office Hours:Comments
Thu04:00pm-05:00pm 

Accessible Learning

The University of Victoria is committed to creating a learning experience that is as accessible as possible. If you are registered with the Centre for Accessible Learning and anticipate or experience any barriers to learning in this course, please feel welcome to discuss your concerns with me. If you are a student with a disability or chronic health condition, you can meet with a CAL advisor to discuss access and accommodations.

How to contact CAL: https://www.uvic.ca/accessible-learning/students/how-to-register/index.php

Academic Concessions

The university recognizes its responsibility to offer academic concessions to students whose ability to complete course requirements is interrupted by unexpected and unavoidable circumstances or conflicting responsibilities.

Review the Academic Concession Regulation:

https://www.uvic.ca/calendar/future/undergrad/index.php#/policy/HJjAxiGO4?bc=true&bcCurrent=11%20-%20Academic%20Concessions&bcGroup=Undergraduate%20Academic%20Regulations&bcItemType=policies

and web site:

https://www.uvic.ca/students/academics/academic-concessions-accommodations/request-for-academic-concession/index.php#ipn-undergraduate-requests-for-academic-concession

Course Overview

Introduction to designing, implementing, and understanding computer programs using an object-oriented programming language. Topics include an introduction to computing and problem solving, selection and iteration, lists and other collections, objects and classes, top-down design and incremental development.

A word about course delivery

  • This course will be delivered in-person. Therefore students are expected to be physically present in the lecture room and in the lab room for their registered lab.
  • However, UVic requests students, staff, and faculty to remain at home if they are sick.
Online Platforms

Course materials and official announcements will be made available online through Brightspace. This course will use Microsoft Teams as the main communication platform for questions and answers between the teaching team and students, as well as for students amongst themselves in course-topic channel(s). Please use Teams private messages instead of email for all course-related communication. It is your responsibility to activate your Teams account and monitor it regularly during the semester.

Topics
  • Computer organization basics
  • Basic syntax and semantics of a high-level language
  • Variables, expressions, and assignment
  • Strings and string processing
  • Data types
  • Simple I/O
  • Conditional and iterative control structures
  • Functions/methods and parameter passing
  • Problem-solving strategies (including structured decomposition)
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Testing and debugging strategies
  • Arrays
  • Data representation in memory
  • Linear search
  • Introduction to sorting algorithms
  • Introduction to encapsulation and information hiding
  • Classes
Course Objectives And Learning Outcomes

Upon successful completion of CSC 110 you will be able to:

  • Describe the major parts of a computer system
  • Choose appropriate conditional and iteration constructs for a given programming task.
  • Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple problems.
  • Analyze and explain the behaviour of simple programs involving the fundamental programming constructs (variables, expressions, assignment, simple I/O, lists, conditional and iterative control structures, functions and parameter passing, types, structured decomposition).
  • Design, implement, test, and debug simple programs in Python 3.
  • Identify correct Python 3 language syntax.
  • Describe strategies that are useful in debugging.
  • Describe the mechanics of parameter passing.
  • Trace the execution of code, including function calls with parameters.
  • Discuss the properties of good software practices.
  • Discuss the importance of algorithms in the problem-solving process.
  • Write programs that use each of the following: lists, strings, dictionaries.
  • Create algorithms for solving simple problems.
  • Discuss the concept of type, how Python 3 uses dynamic typing, and the meaning of a "type error".
  • Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  • Modify and expand short programs that use standard conditional and iterative control structures and functions.
  • Identify the necessary properties of good algorithms.
  • Describe various simple problem-solving techniques (decomposition, top-down design, boundary-case analysis, etc.).
  • Distinguish between program validation and verification.
  • Identify and describe the properties of variables such as their associated values, scope, persistence and size.
  • Explain the use of instance variables and methods in a class.
  • Describe the structure of objects and data in computer memory.
Textbooks

There is no required textbook.

Optional Tony Gaddis, "Starting Out with Python", 5th edition
Pearson, ISBN: 978-0-13-5-929032
Optional A second book on Python 3 of your own choosing.
For example Learn Python 3 the Hard Way
Assignments

There will be 10 programming assignments of equal weight which, together, will comprise 24% of the total course mark.

Two assignments with the lowest grade will be dropped (so only the top 8 assignments will count towards grades) as an academic concession in extenuating circumstances. No additional academic concessions for missed/late assignments will be made.

We will do spot-check grading in this course. That is, all assignments are graded BUT only a subset of your code might be graded. You will not know which portions of the code will be graded, so all of your code must be complete and adhere to specifications to receive marks.

Late Assignments will not be accepted.

You are encouraged to discuss high-level aspects of the assignment with your peers. However, the final implementation for the entire assignment submission must be the result of your own work. Sharing solutions electronically, visually, orally or by any other means is prohibited.

Plagiarism detection software will be used on assignment submissions. Submitting the work of others and enabling others to submit work based on your work are considered serious academic offences and may result in failure of the course. You cannot share your work with others, either directly or indirectly by placing it in a publicly accessible location (such as Github). You may choose to (but should not need to) augment your learning with external resources, e.g., textbooks, educational Websites, artificial intelligence, forums, etc. However, you must develop your concrete solutions independently of these external resources. For example, copying (even partial) solutions from ChatGPT is not permitted. The use of an editor or tutor, either paid or unpaid, to correct or augment your work is strictly prohibited.

This schedule is subject to change. Please consult the course webpage for accurate due dates.

Assignment Tentative Due Dates
Assignment 1 May 19
Assignment 2 May 26
Assignment 3 Jun 2
Assignment 4 Jun 9
Assignment 5 Jun 16
Assignment 6 Jun 23
Assignment 7 Jul 7
Assignment 8 Jul 14
Assignment 9 Jul 21
Assignment 10 Jul 28
Labs

There will be 10 labs of equal weight which, together, will comprise 10% of the total course mark.

Two labs with the lowest grade will be dropped as an academic concession in extenuating circumstances (so only the top 8 labs will count towards your grade). No additional academic concessions for missed labs will be made. You must obtain a passing grade for labs in order to pass the course.

See the course syllabus on Brightspace for the lab schedule. There is no lab in the very first week of the semester.

Lab exercises are to be completed within your registered lab section with the assistance of your lab instructor. Your lab exercises will be graded by the lab instructor during the scheduled lab time. You are encouraged to elicit help from your lab instructor during your allocated lab time. Do not copy code written by any other student (sharing solutions electronically, visually, orally or by any other means is prohibited), nor solutions from external resources.

Quizzes, Midterm Exams, and Final Exam

In this course there will be three midterm exams (worth 30% of the course grade) and one final exam (worth 30% of the course grade, and is required to pass the course). This schedule is subject to change. Please consult the course webpage for accurate dates.

Exam Tentative Exam Date/Time
Midterm Exam 1 Jun-16 during registered lecture time.
Midterm Exam 2 Jul-10 during registered lecture time.
Midterm Exam 3 Jul-31 during registered lecture time.
Final Exam to be scheduled by the University

The final exam will be scheduled by the University during the usual exam period. Students are strongly advised not to make plans for travel or employment during the final exam period or scheduled midterms since special arrangements will not be made for examinations that may conflict with such plans.

Missed Midterm Exams or FInal Exam

Any missed exam will be given a zero grade. The midterm with the lowest grade will be dropped as an academic concession in extenuating circumstances, with the two highest midterm scores counting for 15% each (with a total of 30%). No additional academic concession for missed exams will be made.

In the case of a missed final exam: In order to pass the course, you must obtain a passing grade to the final exam. If the final exam is missed, please apply to the University for a formal academic concession.

Academic concession will not be granted for more than one exam.

Unexpected lecture cancellation: If a midterm happens to fall on a lecture which is cancelled (due to e.g., weather), we will have this midterm during the next available lecture.

Academic Integrity with respect to completion of exams

Collaboration with other students in any form and the solicitation of answers from any outside source (electronically, visually, orally or by any other means) is strictly prohibited. Any instance of impersonation during an exam is considered a serious academic offence by both the student being impersonated and the impersonator.

Lecture

There will be mandatory prelecture work that will comprise 6% of the total course mark. Pre-lecture videos will be provided for students to view prior to the start of their next lecture.

The prelecture work will require you to work through a set of lecture materials provided in the form of video explanations augmented with condensed slides for quick reference. A quiz will assess your comprehesion of this material. This work is to be completed and submitted on your own but we encourage you to use office hours and the forum to clarify concepts. Working with a classmate to explain concepts to each other can help to solidify understanding. This prelecture content will be posted before each lecture and must be completed before the associated lecture.

Two prelecture quizzes with the lowest grades will be dropped as an academic concession in extenuating circumstances. No additional academic concessions will be made for missed or late quizzes.

What you can expect in most lectures:

  • Some additional explanation of course content will be provided by the instructor, including some live programming demonstrations.
  • You will be given problems based on prelecture material.
  • You will be given time to work through problems on your own or in a group problem solving will be demonstrated by your instructor.
  • The instructor will elicit solutions/suggestions from students in the demonstration of solutions.
  • Students are encouraged to comment and ask clarification questions.
Grading

Coursework Weight (out of 100%)
Pre-lecture quiz 6%
Assignments 24 %
Labs 10 %
Midterm Exams 30%
Final Exam 30%

In order to pass the course, students must (a) obtain a passing grade in labs (at least 5% out of 10%); and (b) obtain a passing grade on the final exam (at least 15% out of 30%).

To account for extenuating circumstances: two lowest pre-lecture quizzes, assignments, and labs will be dropped, and the lowest midterm exam will be dropped. No additional academic concessions will be made regarding missed or late work.

Regrade policy

At times, you may feel that marks were unfairly deducted during an assignment, lab or exam. In this situation, you can submit your work for a regrade.

We will only take regrades if they are submitted within seven days of the marks for that assessment being released. Also note that we reserve the right to regrade the entirety of any submission. When requesting a regrade, your old grade will be removed and your new grade could be higher or lower. Instructions for regrade requests will be given with the grade release announcement.

Grading System

The University of Victoria follows a percentage grading system in which the instructor will submit grades in percentages. The University will use the following Senate approved standardized grading scale to assign letter grades. Both the percentage mark and the letter grade will be recorded on the academic record and transcripts.

F D C C+ B- B B+ A- A A+
0-49 50-59 60-64 65-69 70-72 73-76 77-79 80-84 85-89 90-100
Grades Description
A+, A, A- Exceptional, outstanding or excellent performance. Normally achieved by a minority of students. These grades indicate a student who is self-initiating, exceeds expectation and has an insightful grasp of the subject matter.
B+, B, B- Very good, good or solid performance. Normally achieved by the largest number of students. These grades indicate a good grasp of the subject matter or excellent grasp in one area balanced with satisfactory grasp in the other areas.
C+, C Satisfactory, or minimally satisfactory. These grades indicate a satisfactory performance and knowledge of the subject matter.
D Marginal Performance. A student receiving this grade demonstrated a superficial grasp of the subject matter.
F Unsatisfactory performance. Wrote final examination and completed course requirements; no supplemental.
Posting of Grades

Typically marks for assignments, examinations, and provisional final grades, are made available through a Learning Management System (LMS) like Brightspace, where each student will be able to view only their own grades. Sometimes numerical marks/grades may be posted publicly to the entire class. In that case, full student numbers or names will not be included with the posted information.

Course Experience Survey (CES)

I value your feedback on this course. Towards the end of term you will have the opportunity to complete a confidential course experience survey (CES) regarding your learning experience. The survey is vital to providing feedback to me regarding the course and my teaching, as well as to help the department improve the overall program for students in the future. When it is time for you to complete the survey, you will receive an email inviting you to do so. If you do not receive an email invitation, you can go directly to the CES site

You will need to use your UVic NetLink ID to access the survey, which can be done on your laptop, tablet or mobile device. I will remind you closer to the time, but please be thinking about this important activity, especially the following three questions, during the course.

  • What strengths did your instructor demonstrate that helped you learn in this course?
  • Please provide specific suggestions as to how the instructor could have helped you learn more effectively.
  • Please provide specific suggestions as to how this course could be improved.
Csc Student Groups

The Engineering & Computer Science Students' Society (ECSS) serves all students registered in an Engineering and Computer Science degree program, including Software Engineering (BSEng). For information on ECSS activities, events and services navigate to https://sites.google.com/view/uvic-ecss/.

Course Policies And Guidelines

Late Assignments: No late assignments will be accepted unless prior arrangements have been made with the instructor at least 48 hours before the assignment due date. Coursework Mark Appeals: All marks must be appealed within 7 days of the mark being posted. Attendance: We expect students attend all lectures and labs. It is entirely the students' responsibility to recover any information or announcements presented in lectures from which they were absent. Electronic devices in labs and lectures: No unauthorized audio or video recording of lectures is permitted. Electronic devices in midterms and exams: Calculators are only permitted for examinations and tests if explicitly authorized and the type of calculator permitted may be restricted. No other electronic devices (e.g. cell phones, pagers, PDA, etc.) may be used during examinations or tests unless explicitly authorized. Plagiarism: Submitted work may be checked using plagiarism detection software. Cheating, plagiarism and other forms of academic fraud are taken very seriously by both the University and the Department. You should consult the link given below for the UVic policy on academic integrity. Note that the university policy includes the statement that "A largely or fully plagiarized assignment should result in a grade of F for the course."

The Faculty of Engineering and Computer Science Standards for Professional Behaviour are at https://www.uvic.ca/ecs/_assets/docs/student-forms/professional-behaviour.pdf U.Vic guidelines and policy concerning fraud and academic integrity are at http://web.uvic.ca/calendar/undergrad/info/regulations/academic-integrity.html U. Vic Privacy Policy: If any student has concerns about their private information being stored or accessed outside of Canada, they are required to inform the course instructor about their concerns before the end of second week of classes.

Equality

This course aims to provide equal opportunities and access for all students to enjoy the benefits and privileges of the class and its curriculum and to meet the syllabus requirements. Reasonable and appropriate accommodation will be made available to students with documented disabilities (physical, mental, learning) in order to give them the opportunity to successfully meet the essential requirements of the course. The accommodation will not alter academic standards or learning outcomes, although the student may be allowed to demonstrate knowledge and skills in a different way. It is not necessary for you to reveal your disability and/or confidential medical information to the course instructor. If you believe that you may require accommodation, the course instructor can provide you with information about confidential resources on campus that can assist you in arranging for appropriate accommodation. Alternatively, you may want to contact the Centre for Accessible Learning located in the Campus Services Building.

The University of Victoria is committed to promoting, providing, and protecting a positive, and supportive and safe learning and working environment for all its members.

Copyright Statement

All course content and materials are made available by instructors for educational purposes and for the exclusive use of students registered in their class. The material is protected under copyright law, even if not marked with a ©. Any further use or distribution of materials to others requires the written permission of the instructor, except under fair dealing or another exception in the Copyright Act. Violations may result in disciplinary action under the Resolution of Non-Academic Misconduct Allegations policy (AC1300).

Resources for students:

a. UVic Learn Anywhere UVic Learn Anywhere is the primary learning resource for students that offers many learning workshops and resources to help students with academics and learning strategies.
b. Library resources
c. Indigenous student services (ISS)
d. Centre for Academic Communication (CAC)
e. Math & Stats Assistance Centre (MSAC)
f. Learning Strategies Program (LSP)
g. Community-Engaged Learning (CEL)
h. Academic Concession - link to policy
i. Academic Accommodation - link to website
j. Academic accommodation & access for students with disabilities - Policy AC1205
k. Student groups and resources: link
l. Student wellness: link
m. Ombudsperson:link

University statements and policies:

a. University Calendar - Section “Information for all students”
b. Accommodation of Religious Observance - link to policy
c. Student Conduct – link to website
d. Non-academic Student Misconduct – link to website
e. Academic Accommodations and Accessibility – link to website
f. Diversity / EDI – link to VPAC commitment
g. Sexualized Violence Prevention and Response: link
h. Discrimination and Harassment Policy