CSCI 159: Computer Science I, Fall 2025

Course Syllabus

A first year course in computer science. Topics include structured programming, top-down program design, procedures, recursion, and an introduction to dynamic data structures. CSCI 159 was formerly called CSCI 160; credit will not be granted for both courses. Credit will only be granted for one of CSCI 160 or CSCI 159.
(3:0:2)
Prerequisite: Pre-calculus 12, MATH 152, or equivalent.

Instructor

Sarah Carruthers

  • Email: sarah.carruthers at viu.ca
  • Office: 315/217
  • Office Hours: Tuesday 13:00-14:00, Wednesday 15:00-16:00, Thursday 14:00-15:00

Course Website

VIU Learn

Schedules

  • Lecture Schedule:
    • First day of classes: September 2, 2025
    • Tuesday and Thursday, 8:30-10:00
  • Lab Schedule:
    • Labs begin second week of classes
    • Please attend your registered lab. Attendance is mandatory

Required Technology

This course will take place face to face. All lab (coding) work can be completed using the department's lab computers. These computers can also be accessed remotely using a terminal or putty.

  • Required Software
  • Recommended Software
  • If you are lacking in access to any of the above technologies, please contact the instructor to discuss options (which may include using the Library Commons for wireless access.)

    Topics

    This course provides a hands-on introduction to problem solving, computer science, and programming. It will include the following topics:

    • Problem Solving Strategies
    • C++ Syntax and how to create and run programs
    • Making Decisions: Conditional statements and operations
    • Modularization: Creating and using functions
    • Iteration: Using loops and recursion
    • Basic Data Structures: arrays and structs
    • Dynamic Memory Allocation: pointers

    Course Learning Outcomes

    After successful completion of the course, students will be able to:

    • Translate solutions to simple problems into algorithms in English or pseudo code
    • Implement programming solutions to simple problems using the C++ programming language
    • Create, test, and run simple C++ programs on the command line
    • Recognize and develop a well-structured and readable code style
    • Choose an appropriate programming strategy to solve parts of a problem, including:
      • declaring and using variables and constants to store values
      • using conditional statements and operations to make decisions
      • creating and calling functions
      • using iteration to repeat a process
      • implementing an interface with simple user input/output
      • using data structures to store more complex data
    • Decompose large problems into smaller sub-problems that are easier to solve

    Course Schedule

    This course builds each week on what we've already learned. Here is a tentative list of what we'll cover each week.

    1. Week 1: Course Intro
    2. Week 2: Solving problems with C++ programs
    3. Week 3: Functions and Input Output
    4. Week 4: Control and Conditional statements
    5. Week 5: Recursion
    6. Week 6: Loops
    7. Week 7: Nested loops and midterm exam
    8. Week 8: Basic Data Structures: Arrays
    9. Week 9: Strings and Arrays
    10. Week 10: More advanced data structures
    11. Week 11: Reading Break: No Classes or Labs
    12. Week 12: Pointers and Memory allocation
    13. Week 13: Memory allocation
    14. Week 14: Review

    A detailed schedule is available on VIU Learn.

    Textbooks

    This course will make use of a number of resources, including:

    • Instructor lectures, notes, and slides
    • Book chapters
    • Online articles and videos

    Please see VIU Learn for an up-to-date list of resources for each module.

    Student Evaluation

    Course includes lecture (theory) and lab (practical) components. Students will receive a single final grade assessing their performance in the lab and lecture components, combined. Students must also achieve separate passing grades in the lecture and lab assessments in order to earn an overall passing grade in the course.

    • Lecture:
      • Exams: 50%
        • Midterm: 30%
        • Final Exam: 70%
      • Quizzes: 25%
    • Labs: 25%
      • 10 Labs

    Students who miss an assessment for a valid reason, such as illness, and who communicate this reason in a timely manner to the instructor will be given an option to make up the missed assessment.

    Online Quizzes

    Each week, course content will be tested with an online quiz in VIU Learn. Students may take the quiz as many times as they like before the quiz is due, to test their understanding. Quizzes are timed, and so students should take notes during class and review the course slides/notes before attempting the quiz. Students will receive the highest grade achieved, for each quiz.

    Grading Scheme

    The following scale will be used. The instructor reserves the right to lower the numerical score required for a particular letter grade if that seems appropriate, but the same conversion will be applied to all persons in the class. Under no circumstances will the numerical score required for a particular letter grade be raised.

    A+90-100
    A-80-84
    B+76-79
    B72-75
    B-68-71
    C+64-67
    C60-63
    C-55-59
    D50-54
    F0-49