Data Structures

Spring Semester, 2024

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 4
Download Design Patterns for Data Structures, Chapter 6
Download Design Patterns for Data Structures, Chapter 7
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 Design Patterns for Data Structures, Chapter 4.1 slides
Download Design Patterns for Data Structures, Chapter 4.2 slides
Download Design Patterns for Data Structures, Chapter 4.3 slides
Download Design Patterns for Data Structures, Chapter 4.3 sort paper slides
Download Design Patterns for Data Structures, Chapter 6.1 slides
Download Design Patterns for Data Structures, Chapter 6.2 slides
Download Design Patterns for Data Structures, Chapter 6.3 slides
Download Design Patterns for Data Structures, Chapter 6.4 slides
Download Design Patterns for Data Structures, Chapter 7 slides
Download Design Patterns for Data Structures, Chapter 8.1 slides
Download Design Patterns for Data Structures, Chapter 8.2 slides
Download Design Patterns for Data Structures, Chapter 8.3 slides
Download Design Patterns for Data Structures, Chapter 9.1 slides
Download Design Patterns for Data Structures, Chapter 9.4 slides
Download Design Patterns for Data Structures, Chapter 9.5 slides
Download Design Patterns for Data Structures, Chapter 10.1 slides
Download Design Patterns for Data Structures, Chapter 10.2 slides
Download Design Patterns for Data Structures, Chapter 10.3 slides
Download Design Patterns for Data Structures, Chapter 10.4 slides
Download Design Patterns for Data Structures, Chapter 11.1 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, January 12

Martin Luther King day, no class
Monday, January 15

Assignment 2
Video lectures 5, 6
Due Friday, January 19

Assignment 3
Video lectures 7, 8
Due Tuesday, January 23

Assignment 4
Video lectures 9, 10
Due Friday, January 26

Assignment 5
Video lectures 11, 12
Due Tuesday, January 30

Assignment 6
Video lectures 13, 14
Due Friday, February 2

Test 1
Tuesday, February 6

Assignment 7
Video lectures 15, 16
Due Friday, February 9

Assignment 8
Video lectures 17, 18
Due Tuesday, February 13

Assignment 9
Video lectures 19, 20
Friday, February 16

Assignment 10
Video lectures 21, 22
Due Tuesday, February 20

Assignment 11
Video lectures 23, 24
Due Friday, February 23

Spring break, no class
Monday, February 26 - Friday, March 1

Assignment 12
Video lecture 25
Due Friday, March 8

Notice
Monday, March 11, last day to withdraw with grade of W.

Test 2
Tuesday, March 12

Assignment 13
Video lectures 26, 27
Due Friday, March 15

Assignment 14
Video lectures 28, 29
Due Tuesday, March 19

Assignment 15
Video lectures 30, 31
Due Friday, March 22

Assignment 16
Video lectures 32, 33
Due Tuesday, March 26

Assignment 17
Video lectures 34, 35
Due Friday, March 29

Assignment 18
Video lectures 36, 37, 38, 39
Due Tuesday, April 2

Test 3
Friday, April 5

Assignment 19
Due Tuesday, April 9 Sort paper due

Notice
Friday, April 12, last day to withdraw with grade of WP/WF.

Assignment 20
Video lectures 40, 41, 42, 43
Due Friday, April 12

Assignment 21
Video lectures 44, 45
Due Tuesday, April 16

Assignment 22
Video lectures 46, 47, 48
Due Friday, April 19

Final
Video lecture 52
Wednesday, April 24, 1:30 p.m. - 4:00 p.m.