# CSC1120: Graphical Software and Data Structures

This course covers 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-1110) (3-2-4)

## Outcomes

On successful completion of this course, the student will be able to:

- 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.
- Be able to analyze the time complexity of algorithms.
- Understand the use of recursion in problem solving.
- Interpret and implement multiple sorting algorithms.
- Be able to use data structures in software design and implementation.
- Be able to apply standard library data structures in software design.
- Be able to select appropriate data structures for a given application.
- Write unit tests to verify software behavior.
- Use Git to mangage versioning of source code.
- Understand the event-driven programming model.
- Be able to design and implement applications with graphical user interfaces.

## Textbooks

*Introduction to Programming with Java: A Problem Solving Approach, 3*, by Dean and Dean, McGraw-Hill, 2021. You likely have this book from CSC1000, but, if not, there are two purchasing options:^{rd}Ed.- VitalSource Inclusive Access eBook with Online Access, ISBN: 978-1-26-095839-3
- If you'd like a hard copy, you can also add Loose Leaf Inclusive Access, ISBN: 978-1-26-426033-1

*Data Structures Abstraction and Design Using Java*3^{rd}Ed., by Koffman and Wolfgang, Wiley, 2016. ISBN: 978-1-119-23914-7

## Self-Learning Modules

Most weeks you will have a self-learning module to complete. These modules
will be available in Canvas and our design to take you between one and three
hours to complete. You will watch videos and read portions of the textbook
and then answer a series of questions to demonstrate your mastery of the
material.