Course Code, Number, and Title: CPSC 1160 Algorithms and Data Structures I
Year and semester: Summer 2024
Section: 004 CRN: 20528 Section: 005 CRN: 20774
Course Format: Lecture 4.0h + Lab 2.0h
Credits: 3 for transfer credit information, visit bctransferguide.ca
Course Description:
Students focus on practicing and developing programing skills. Students implement algorithms
along with appropriate data structures to produce good software. Students apply recursion,
abstract data types, algorithm analysis, sorting and searching algorithms, pointers, arrays,
dynamic memory management, linked lists, stacks, and queues. Students also learn about lowlevel data representations and systematic software development. As a tool, object-oriented
programming is introduced.
Prerequisites, and Corequisites:
A minimum “C” grade in one of CPSC 1150 or 1155; and one of the following: a minimum “B”
grade in Precalculus 12; or a minimum “C” grade in MATH 1170, 1171, 1173, or 1174; or a
minimum “C+” grade in Precalculus 12 and a minimum “C-” grade in Calculus 12; or MDT 85.
Learning Outcomes:
Upon successful completion of this course, students will be able to independently
• design, implement, test, and document complete programs using efficient algorithms and
appropriate data structures
• design and implement an Abstract Data Type (using static and dynamically allocated data)
• apply procedural abstraction as well as data abstraction to solve problems when programming
• program in C++17 correctly and efficiently under time constraints
• perform time and space complexity analysis of algorithms and of programs
• describe and compare common searching and sorting algorithms (selection sort, insertion sort,
bubble sort, quicksort and merge sort)
• apply recursion as a problem-solving technique
• use good software engineering principles
• analyze, test, maintain and modify code written by someone else
This study source was downloaded by 100000898329900 from CourseHero.com on 04-21-2025 21:42:54 GMT -05:00
https://www.coursehero.com/file/238937964/CPSC-1160-004-005-Minns-202420pdf/
Course Outline: Course Code, Number, and Title
Page 2 of 6
Instructor(s):
Office: T213
Email: [email protected]
Office Hours: Tues, 2:30pm – 4:30pm Wed, 6:30pm – 7:30pm Thurs, 10:30pm – 12:30pm
Textbook and Course Materials:
Introduction to C++ Programming and Data Structures by Y. Daniel Liang, 5th edition, Pearson,
2022.
Note: This course may use an electronic (online) instructional resource that is located outside of Canada
for mandatory graded class work. You may be required to enter personal information, such as your
name and email address, to log in to this resource. This means that your personal information could be
stored on servers located outside of Canada and may be accessed by foreign government authorities,
subject to federal laws. Where possible, you may log in with an email pseudonym as long as you provide
the pseudonym to me so I can identify you when reviewing your class work.
Assessments and Weighting:
Individual
Assignments (best 9 out of 10) 20%
Quizzes (best 9 out of 10) 10%
Mid-term 1 Exam 20%
Mid-term 2 Exam 20%
Final Exam 30%
TOTAL 100%
Grading Legend
Grades, Grade Points, & Notations
A+ 90 – 100% B+ 76 – 79% C+ 64 – 67% D 50 – 54%
A 85 – 89% B 72 – 75% C 60 – 63% F < 50%
A- 80 – 84% B- 68 – 71% C- 55 – 59%
NOTES:
• In order to get a ‘C’ or higher in a Computer Science course, a student must achieve at least a
50% in the combined exam components of the course.
• It is your responsibility to know the minimum grade required in this course to meet prerequisite
and/or Program requirements. If you are not sure, please check the Langara website program
information pages.
This study source was downloaded by 100000898329900 from CourseHero.com on 04-21-2025 21:42:54 GMT -05:00
https://www.coursehero.com/file/238937964/CPSC-1160-004-005-Minns-202420pdf/
Course Outline: Course Code, Number, and Title
Page 3 of 6
Detailed Course Schedule:
Week Dates Topics Homework/Labs
1 May 6 - 10
C++ basics
first C++ program and testing
No lab session
2 May 13 - 17
data types in C++
loops, selection, functions
Assignment #1
3 May 20 - 24
May 20: Victoria Day: Campus closed
arrays and recursion in general
sorting and analysis of algorithms
Assignment #2
4 May 27 - 31
big O notation and complexity analysis
merge sort and quick sort
Assignment #3
5 June 3 - 7
merge sort analysis
data type C++ struct and enumeration
Assignment #4
6 June 10 - 14
Abstract Data Types and C++ classes
Midterm #1 on Friday June 14
No lab session
No assignment due
7 June 17 - 21
Implementation of a C++ class
C++ operator overloading including I/O
Assignment #5
8 June 24 - 28
pointers and dynamic memory
dynamic arrays
Assignment #6