CSC241 Syllabus
- Course number and name
CSC241 – Data Structures and Algorithms
- Credits and contact hours
3 Credit Hours
- Instructor’s or course coordinator’s name
Instructor: Dr. Robert Kline, Associate Professor of Computer Science
- Text book, title, author, and year
Data Structures and Algorithms in Java, 3rd edition, Mark Allen Weiss, Pearson, 2011
Other Supplemental Materials
The Instructor's website: http://www.cs.wcupa.edu/rkline/csc241 - Specific course information
- brief description of the content of the course (catalog description)
Data structures and related algorithms are studied using object-oriented programming, such as Java. Topics include data abstraction, recursion, lists, stacks, queues, linked lists, trees, hashing, searching and sorting algorithms, and the evaluation of algorithm efficiency.
- prerequisites or co-requisites
Prerequisite: CSC240: Computer Science III, MAT151: Discrete Mathematics, MAT161: Calculus I.
- indicate whether a required, elective, or selected elective course in the program
Required course.
- brief description of the content of the course (catalog description)
- Specific goals for the course
- specific outcomes of instruction
- Students will learn to analyze and discuss the runtime properties of algorithms.
- Students will be able to apply common programming techniques, particularly recursion, to searching, sorting and data structure operations.
- Students will learn the Java-style data structures as is used in the Java Collections.
- Students will be exposed to sophisticated programming and analysis techniques used in advanced data structures and in algorithms which use them.
-
explicitly indicate which of the student outcomes listed in Criterion 3 or any other outcomes are addressed by the course.
Course addresses Student Outcomes (a), (b), (o).
- specific outcomes of instruction
- Brief list of topics to be covered
- Algorithm analysis using the order language: O, Ω, etc.
- Lists, Deques, Stacks, Queues via array-based and link-based implementations.
- Stack-based algorithms for expression evaluation.
- Binary Trees, TreeSets, TreeMaps.
- Hashing via open and closed implementations.
- Abstract classes
- AVL Trees.
- Exception throwing and handling
- Generic classes
- Sorting algorithms and timing comparisons.
- Priority Queues and Binary Heaps.