Nov 21, 2024  
2024-2025 Undergraduate Academic Catalog-June 
    
2024-2025 Undergraduate Academic Catalog-June
Add to Portfolio (opens a new window)

CSC 1020 - Data Structures, I/O, and Graphical Interfaces

4 lecture hours 2 lab hours 5 credits
Course Description
This course covers interfaces, exceptions, file input/output, graphical user interfaces and event-driven programming as well as the organization of data and the algorithms that act upon them. Various sorting algorithms and data structures are covered. The topics of arrays, linked lists, stacks, queues, trees, sets, and hash tables are introduced. Fundamentals of algorithm performance are also introduced, with an emphasis placed on time complexity analysis. Laboratory activities include implementation of data structures as well as development of GUI applications that apply data structures from standard libraries.
Prereq: CSC 1010  or CSC 1110  (quarter system prereq: CS 1021)
Note: Students may receive credit for only one of CSC 1020, CSC 1120 , and CSC 1120A .
This course meets the following Raider Core CLO Requirement: None
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Translate UML class diagrams into Java code
  • Apply abstract classes and interfaces
  • Distinguish between extending a class (inheritance) and implementing an interface
  • Make appropriate use of exception handling
  • Use classes from the Java standard library to read and write files on disk
  • Use the Java API specification (javadoc) to determine correct use of standard library classes
  • Understand and apply complex data structures and algorithms
  • Use appropriate algorithms (and associated data structures) to solve problems
  • Have a thorough understanding of commonly used library data structures
  • Analyze the time complexity of algorithms
  • Understand the use of recursion in problem solving
  • Interpret and implement multiple sorting algorithms
  • Use data structures in software design and implementation
  • Apply standard library data structures in software design
  • Select appropriate data structures for a given application
  • Write unit tests to verify software behavior
  • Use Git to manage versioning of source code
  • Understand the event-driven programming model
  • Design and implement applications with graphical user interfaces

Prerequisites by Topic
  • Java programming fundamentals
  • Control structures
  • Looping
  • Classes
  • Inheritance

Course Topics
  • Interfaces
  • Exception handling
  • File input and output
  • Graphical interfaces
  • Event-driven programming
  • Functional programming
  • Recursion
  • Testing
  • ArrayLists
  • LinkedList
  • Sorting algorithms
  • Stacks and queues
  • Trees
  • Hash tables
  • Time and space complexity

Coordinator
Dr. Chris Taylor



Add to Portfolio (opens a new window)