Home CPSC 340

CPSC 340: Data Structures and Algorithms

Meeting Times:Section 1: Monday and Wednesday, 9:00 – 10:50, Trinkle B6
Section 2: Monday and Wednesday, 1:00 – 2:50, Trinkle B6.
Prerequisite:CPSC 284, CPSC 225, and a grade of C or better in CPSC 240.
Instructor:Ian Finlayson
Office:Trinkle B18
Office Phone:540-654-1714
Office Hours:MW 11:00 - 12:00, TR 9:00 - 11:00, or by appointment.

Course Description

Continued study of data modeling and incorporation of abstract data types including linked lists, stacks, queues, heaps, trees, and graphs. Study of advanced sorting and searching techniques. Provides experience in the use of algorithm analysis. Continued study of program design, coding, debugging, testing, and documentation in an object-oriented higher level language.


Course Goals & Objectives


Grading Policy

Your grade will be determined as follows:

The grading scale used for this course is as follows:

There is a 10% per day late penalty on assignments that are not turned in on time. Final grades will not be rounded up, and no extra credit opportunities will be given on an individual basis.

Lab assignments are always due by midnight of the day following the lab. So Monday lab assignments are due by midnight on Tuesday, and Wednesday labs are due by midnight on Thursday.

This course is focused on building data structures and writing algorithms ourselves. As such, some assignments will prohibit the use of certain built-in Java data structures such as ArrayList, Hashtable, etc. Use of these will result in loss of points on those assignments.

The University provides the opportunity to provide grading feedback midway through the semester. This will take into account your score on the mid-term exam and the programming projects and lab exercises submitted up to that point. Any student receiving less than a 65% on either of these will receive a "U" for their mid-semester grade. If this happens to you, please don't hesitate to talk with me about how we can improve your performance in this class.


Student Conduct


Honor Policy

Students are expected to conduct themselves in a manner consistent with the letter and spirit of the UMW Honor Constitution, as well as the CPSC department honor policy. For this class in particular:

For labs, collaboration is OK. The goal of the labs is to ensure you understand the concepts we are going over.

For projects, your work must be your own. You may discuss the project with others, but the code in your project must be entirely written by you. It is an honor code violation to copy code from someone else either by copy and paste or by transcription, or to copy from the web.

For exams, you must not copy off of another student, or use any kind of unauthorized notes.

If you have any questions or need clarification, please don't hesitate to contact me!


Disability Statement

The Office of Disability Services has been designated by the University as the primary office to guide, counsel, and assist students with disabilities. If you already receive services through the Office of Disability Services and require accommodations for this class, make an appointment with me as soon as possible to discuss your approved accommodations needs. Please bring your accommodation letter with you to the appointment. I will hold any information you share with me in the strictest confidence unless you give me permission to do otherwise. If you have not contacted the Office of Disability Services and need accommodations, I will be happy to refer you. The office will require appropriate documentation of disability. Their phone number is 540-654-1266. The office is located in Lee Hall, Room 401.


Title IX Statement

The University of Mary Washington faculty are committed to supporting students and upholding the University's Policy on Sexual and Gender Based Harassment and Other Forms of Interpersonal Violence. Under Title IX and this Policy, discrimination based upon sex or gender is prohibited. If you experience an incident of sex or gender based discrimination, we encourage you to report it. While you may talk to me, understand that as a "Responsible Employee" of the University, I must report to UMW's Title IX Coordinator what you share. If you wish to speak to someone confidentially, please contact the below confidential resources. They can connect you with support services and help you explore your options. You may also seek assistance from UMW's Title IX Coordinator. Please visit http://diversity.umw.edu/title-ix/ to view UMW's Policy on Sexual and Gender Based Harassment and Other Forms of Interpersonal Violence and to find further information on support and resources.


Recording Statement

Classroom activities in this course may be recorded by student's enrolled in the course for the personal, educational use of that student or for all students presently enrolled in the class only, and may not be further copied, distributed, published or otherwise used for any other purpose without the express written consent of the course instructor. All students are advised that classroom activities may be taped by students for this purpose. Distribution or sale of class recordings is prohibited without the written permission of the instructor and other students who are recorded. Distribution without permission is a violation of copyright law. This policy is consistent with UMW's Policy on Recording Class and Distribution of Course Materials.


Tentative Schedule

Date Class Topic Lab Topic Assignment Due
January 13 Course Overview Google Cloud Setup  
January 15 Arrays Two-Dimensional Arrays  
January 20 Martin Luther King Jr. Day, No Class
January 22 References and Memory No Lab  
January 27 Generics Making an ArrayList  
January 29 Building an ArrayList No Lab Grayscale Converter
February 3 Linked Lists Linked List Count Method  
February 5 Linked Lists Continued Linked Lists vs. Array Lists  
February 10 No class
February 12 Doubly Linked Lists Doubly Linked Methods  
February 17 Stacks Stack Exercise Big Ints
February 19 Queues No Lab  
February 24 List Variations, Midterm Topics No Lab  
February 26 Midterm Exam Playlist
March 2 Spring Break
March 4 Spring Break
March 9 No Class  
March 11 No Class  
March 16 Algorithm Analysis Big-O Exercise  
March 18 Recursion Recursion Exercise Bank Simulator
March 23 Searching and Sorting Sort Comparison  
March 25 Binary Search Trees Binary Tree Exercise  
March 30 Binary Search Trees Continued No Lab  
April 1 Hash Tables Hashing Exercise  
April 6 Graphs Graph Exercise  
April 8 Graph Algorithms No Lab Spell Checker
April 13 Heaps No Lab  
April 15 Huffman Coding No Lab  
April 20 Bloom Filters No Lab  
April 22 Final Review No Lab Scheduler
April 29 Final Exam, [Section 1 8:30], [Section 2 12:00]

Copyright © 2019 Ian Finlayson | Licensed under a Creative Commons Attribution 4.0 International License.