Data Structures

Fall Semester, 2019

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

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.

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: http://creativecommons.org/licenses/ for license details.

Video recording

The materials for this course – including video recordings of all the lectures, the assignments, and the lecture slides – are posted on iTunes U. On an iOS device (iPhone or iPad), this link takes you to the course in the iTunes U app.

You can also view just the lectures directly in your browser here.

The recordings may be used, reproduced, exhibited or distributed in any medium for any purpose that the University and those acting pursuant to its authority, deem appropriate. The University does hold a traditional copyright for the lecture video recordings.

YouTube links

A fascinating visualization of 15 sort algorithms.

Setups

Setup for programming with CLion
Setup for dp4dsDistribution with CLion
CMakeLists for dp4dsDistribution
Submit homework electronically
Sort Paper
Setup for LaTeX
The Not So Short Introduction to LaTeXe2
paper-template.pdf
Paper-Template.zip
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
Due Friday, August 30

Assignment 2
Due Tuesday, September 3

Assignment 3
Due Friday, September 6

Assignment 4
Due Tuesday, September 10

Assignment 5
Due Friday, September 13

Assignment 6
Due Tuesday, September 17

Test 1
Friday, September 20

Assignment 7
Due Tuesday, September 24

Assignment 8
Due Friday, September 27

Assignment 9
Due Tuesday, October 1

Assignment 10
Due Friday, October 4

Assignment 11
Due Tuesday, October 8

Assignment 12
Due Friday, October 11

Test 2
Tuesday, October 15

Assignment 13
Due Friday, October 18

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

Assignment 14
Due Tuesday, October 22

Assignment 15
Due Friday, October 25

Assignment 16
Due Tuesday, October 29

Assignment 17
Due Friday, November 1

Assignment 18
Due Tuesday, November 5

Test 3
Friday, November 8

Assignment 19
Due Tuesday, November 12

Assignment 20
Due Friday, November 15

Assignment 21
Due Tuesday, November 19

Assignment 22
Due Friday, November 22

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

Assignment 23
Due Tuesday, November 26

Assignment 24
Due Tuesday, December 3

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

Obsolete Materials

These materials were used in the past and are no longer recommended. Current students in CoSc 320 should not refer to these documents. They are provided for archival purposes only.

Setup for programming
Setup for dp4dsDistribution
Setup for R
Curve fitting in R
Data management in R
Plotting basics in R
Plotting curve fits in R
Figure 13.7 Worksheet
Windows text editor: PSPad, which also allows remote text editing via sftp.
Mac text editor: TextWrangler, which also allows remote text editing via sftp.