Course website : http://blogs.cofc.edu/olmsteda
Email: Please use firstname.lastname@example.org with Subject = CSCI230
Office: Cyber Space
Office hours: Via Email
Class place and time
Classroom: Education 202
M W 5:30- 8:45 PM
CSCI 230 CData Structures and Algorithms
This course reviews and develops the abstract data type as a mathematical model. Data structures and algorithms are developed as concrete realizations of the objects and operations of the abstract data type. Topics include a review of basic data structures, trees and graphs, and analysis of the efficiency of algorithms.
Prerequisite: CSCI 221 and MATH 207.
1. Understand the analysis of algorithms using Big-O notation.
2. Understand the Abstract Data Type as a model of data and operations.
3. Understand the definitions of stack, queue and list.
4. Develop insertion, retrieval and deletion algorithms for array and linked implementations of stack, queue and list.
5. Evaluate the algorithms for stack, queue and list for the array and linked implementations using Big-O.
6. Understand the definitions of binary tree, binary search tree and some balanced search tree.
7. Develop insertion, retrieval and deletion algorithms for binary search tree and some balanced search tree.
8. Evaluate the algorithms for unbalanced and balanced search trees using Big-O.
9. Understand the definition of hashing.
10. Develop insertion, retrieval and deletion algorithms for hashing.
11. Evaluate the hashing algorithms using Big-O.
12. Understand the definitions of heap and priority queue.
13. Develop insertion, retrieval and deletion algorithms for heap and priority queue.
14. Evaluate heap and priority queue algorithms using Big-O.
15. Develop selection, insertion, merge, quick and heap sorting algorithms.
16. Evaluate the sorting algorithms using Big-O.
17. Understand the definitions of graph, node, edge and other relevant graph terminology.
18. Develop traversal, shortest path and minimal spanning tree algorithms for graphs.
19. Evaluate the traversal, shortest path and minimal spanning tree algorithms using Big-O.
I am assuming because you are in this class you want to learn about data structures. Therefore, it is my job to use the 40 hours of class time and the 80 hours of outside work to get you there.
Java Software Structures: Designing and Using Data Structures, 3rd Edition by John Lewis and Joseph Chase. Addison–Wesley, 2010. ISBN‐10: 0‐136078583 or ISBN‐13: 9780136078586, Retail New Price $149.00.
100-92 (A); 91-89 (A-); 88-86 (B+); 85-82 (B); 81-79 (C-); 78-76 (C+); 75-72 (C); 71-69 (C-); 68-62 (D); else (F)
30% Final Exam
20% Midterm Exam
25% Programming Assignments
We will have at a minimum 5 large programming assignments for the semester that will be completed individually and uploaded to the Oaks dropbox. Due dates are posted in the Oaks course.
We will have 14 open book quizzes. All quizzes are available on the first day of class in Oaks. There is a due date attached to each quiz in Oaks. You must take the quiz by the due date to receive credit. The quiz number matches the chapter of the book the material covers.
We will have one midterm exam during the last day of class covering the material for the first 7 chapters of the book.
We will have one comprehensive final during the last day of class covering the material for the whole course.
Please read the College of Charlestons Student Code of Conduct. When you come to class please turn off your cell phones and all other electronic communication devices. I do encourage discussion so if you have a question o not hold back from interrupting me if you are afraid I have moved on. If it is something I will talk about a little later I will note it on the board so we do not forget.
If you have a documented disability and are approved to receive accommodations through SNAP Services, please contact me.
Student Honor Code
I expect you to abide by the Honor Code and the Student Handbook: A Guide to Civil and Honorable Conduct. If you have a question about how to interpret the Honor Code, ask before acting! I encourage collaboration, but you must document it. Thus, each student will submit their own homework and, when collaborating, provide a reference to those people and documents consulted.