Data Structures

Fall Semester, 2021

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 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
 Notify me via email
 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, September 3

Notice
Monday, September 6, Labor Day holiday

Assignment 2
Video lectures 5, 6
Due Tuesday, September 7

Assignment 3
Video lectures 7, 8
Due Friday, September 10

Assignment 4
Video lectures 9, 10
Due Tuesday, September 14

Assignment 5
Video lectures 11, 12
Due Friday, September 17

Assignment 6
Video lectures 13, 14
Due Tuesday, September 21

Test 1
Friday, September 24

Assignment 7
Video lectures 15, 16
Due Tuesday, September 28

Notice
Faculty conference, no class
Friday, October 1

Assignment 8
Video lectures 17, 18
Due Friday, October 1

Assignment 9
Video lectures 19, 20
Due Tuesday, October 5

Assignment 10
Video lectures 21, 22
Due Friday, October 8

Assignment 11
Video lectures 23, 24
Due Tuesday, October 12

Assignment 12
Video lecture 25
Due Friday, October 15

Test 2
Tuesday, October 19

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

Notice
Monday, October 25, last day to withdraw with grade of W.

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

Assignment 15
Video lectures 30, 31
Due Friday, October 29

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

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

Assignment 18
Video lectures 36, 37, 38
Due Tuesday, November 9

Test 3
Friday, November 12

Assignment 19
Video lectures 39, 40, 41
Due Tuesday, November 16
NOTE: Skip, hash table paper not assigned this year

Assignment 20
Video lectures 42, 43, 44
Due Friday, November 19

Assignment 21
Video lectures 45, 46
Due Tuesday, November 23
NOTE: Lectures 40, 41, 42, 43 required for this assignment

Notice
November 24 - 26, Thanksgiving holiday

Assignment 22
Video lectures 47, 48
Due Tuesday, November 30
NOTE: Lectures 44, 45 required for this assignment

Notice
Friday, December 3, last day to withdraw with grade of WP/WF.

Assignment 23
Video lectures 49, 50
Due Friday, December 3
NOTE: Lectures 46, 47, 48 required for this assignment

Assignment 24
Video lectures 51, 52
Due Tuesday, December 7
NOTE: Lectures 49, 50, 51 required for this assignment

Final
Wednesday, December 15, 1:30 p.m. - 4:00 p.m.
NOTE: Lecture 52 is a review