Data Structures

Fall Semester, 2025

CoSc 320: Syllabus
Instructor: Stan Warford
Office: RAC 112
Office hours: Mon (11:00 - 11:50), Tues (9:00 - 9:50), Thurs (1:00 - 1:50), Fri (11:00 - 11:50), and by appointment
Email: Message to Warford

A1, A2, A3, A4, A5, A6, Test 1
A7, A8, A9, A10, A11, A12, Test 2
A13, A14, A15, A16, A17, A18, Test 3
A19, A20, A21, A22, A23, A24, Final

Notices

Lecture video recordings

Video recordings of all the lectures are posted on YouTube here.

Downloads

Download dp4dsDistribution
Download Design Patterns for Data Structures, Appendix A
Download Design Patterns for Data Structures, Chapter 1
Download Design Patterns for Data Structures, Chapter 2
Download Design Patterns for Data Structures, Chapter 3
Download Design Patterns for Data Structures, Chapter 1 slides
Download Design Patterns for Data Structures, Chapter 2 slides
Download Design Patterns for Data Structures, Chapter 3.1 slides
Download Design Patterns for Data Structures, Chapter 3.2 slides
Download Design Patterns for Data Structures, Chapter 3.3 slides
Download Design Patterns for Data Structures, Chapter 3.4 slides
Download A Logical Inverted Taxonomy of Sorting Algorithms, S. M. Merritt and K. K. Lau, Communications of the ACM, Volume 28 Issue 1, Jan. 1985.
Download Left-leaning Red-Black Trees, Robert Sedgewick, Department of Computer Science, Princeton University.
Download Design Patterns for Self-Balancing Trees, D. X. Nguyen and S. B. Wong, Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Nov. 2002 : 60-70.
Download Nguyen-Wong algorithms
Download Detection and Prevention of Stack Buffer Overflow Attacks, B. A. Kuperman, et.al., Communications of the ACM, Volume 48 Issue 11, Nov. 2005.
Download The Status of the P versus NP Problem, L. Fortnow, Communications of the ACM, Volume 52 Issue 8, Sept. 2009.
Download Sleep Sort.

C++ Tutorial

View: Tutorials to help you master C++ and object-oriented programming.

YouTube links

A fascinating visualization of 15 sort algorithms.

Intellectual property

You are free to use the material I produce in this course without my explicit permission.
License: Creative Commons, Attribution-ShareAlike (CC BY-SA)

See: https://creativecommons.org/licenses/ for license details.

Setups

Setup for programming with CLion
Submit homework electronically
Sort Paper
Setup for LaTeX
The Not So Short Introduction to LaTeXe2
Setup for RStudio
Data management in RStudio
Plotting raw data in RStudio
Curve fitting in RStudio
asgnData.txt
compData.txt
dp4dsFunctions.R

Miscellaneous
Here are instructions on how to batch indent your source files.
If you want to know more about the different shells, here is a good article.
Here is a link to the C++ page maintained by Bjarne Stroustrup, the creator of C++, on the current and future state of the language.
Here is an article about a memory leak in a commercial software product.

Assignments

Programming homework policy

If your program does not compile (build)
 Automatic 20% of total points for that assignment
 No resubmission

Late submission
 Accepted up to the time of the following assignment
 Hand in with the following assignment
 Automatic 50% of graded score

Late submission that does not compile
 Automatic 10% of total points for that assignment

Complete assignment list

Assignment 1
Video lectures 1, 2, 3, 4
Due Friday, August 23

Assignment 2
Video lectures 5, 6
Due Tuesday, August 27

Assignment 3
Video lectures 7, 8
Due Friday, August 30

Labor Day, no class
Monday, September 2

Assignment 4
Video lectures 9, 10
Due Friday, September 6

Assignment 5
Video lectures 11, 12
Due Tuesday, September 10

Assignment 6
Video lectures 13, 14
Due Friday, September 13

Test 1
Tuesday, September 17

Assignment 7
Video lectures 15, 16
Due Friday, September 20

Assignment 8
Video lectures 17, 18 may be skipped this semester
Due Tuesday, September 24

Faculty Conference, no class
Friday, September 27

Assignment 9 is omitted this semester
Video lecture 19 may be skipped this semester
Video lecture 20

Assignment 10
Video lectures 21, 22
Due Tuesday, October 1

Assignment 11
Video lectures 23, 24
Due Friday, October 4

Fall break, no class
Friday, October 11 - Monday, October 14

Assignment 12
Video lecture 25
Due Tuesday, October 15

Notice
Thursday, October 17, last day to withdraw with grade of W.

Test 2
Friday, October 18

Assignment 13
Video lectures 26, 27
Due Friday, October 25

Assignment 14
Video lectures 28, 29
Due Tuesday, October 29

Assignment 15
Video lectures 30, 31
Due Friday, November 1

Assignment 16
Video lectures 32, 33
Due Tuesday, November 5

Assignment 17
Video lectures 34, 35 Due Friday, November 8

Assignment 18
Video lectures 36, 37, 38, 39
Due Tuesday, November 12

Test 3
Friday, November 15

Assignment 19
Due Tuesday, November 19

Notice
Friday, November 22, last day to withdraw with grade of WP/WF.

Assignment 20
Video lectures 40, 41, 42, 43
Due Friday, November 22

Thanksgiving holiday, no class
Monday, November 25 - Friday, November 29

Assignment 21
Video lectures 44, 45
Due Tuesday, December 3

Assignment 22
Video lectures 46, 47, 48
Due Friday, December 6

Final
Video lecture 52
Wednesday, December 11, 1:30 p.m. - 4:00 p.m.