What This Document Is
This document represents a graded assignment for CS 201 – Data Structures and Discrete Mathematics I, offered at the University of Illinois at Chicago. It focuses on practical application of fundamental data structures and algorithmic thinking using the Java programming language. Specifically, the assignment challenges students to implement and utilize linked lists, stacks, and queues to solve defined computational problems. It’s designed to reinforce theoretical concepts learned in the course through hands-on coding experience.
Why This Document Matters
This assignment is crucial for students enrolled in CS 201 who are looking to solidify their understanding of core data structures. It’s particularly beneficial for those who learn best by doing and need to translate abstract concepts into working code. Successfully completing this assignment demonstrates proficiency in Java implementation of these structures and problem-solving skills applicable to more complex computer science challenges. It’s most valuable when used in conjunction with lecture notes and textbook readings, serving as a practical test of comprehension.
Topics Covered
* Linked Lists – Implementation and manipulation
* Stack Data Structure – Application in expression evaluation
* Queue Data Structure – Application in processing sequences
* Prefix Notation – Understanding and conversion
* Algorithmic Thinking – Designing solutions to computational problems
* Java Programming – Practical application of language features
* Data Structure Selection – Choosing appropriate structures for specific tasks
What This Document Provides
* Detailed problem descriptions requiring implementation of data structures.
* Specific requirements for code organization and submission.
* Guidance on utilizing available resources, such as the LinkedList class in Java.
* Instructions for testing and submitting the completed assignment via the `turnin` command-line tool.
* Clarification on the evaluation criteria and acceptable coding practices.
* Sample input/output scenarios to illustrate expected program behavior (without revealing solutions).