CTSPlanner
Sign-in not configured
Computing Science

CSE3330 Dynamic Data Structures 2

Advanced · 1 credit · BIT - Business, Admin, Finance and IT

Description
Students enhance their knowledge of abstract data types that utilize dynamic data structures by expanding their repertoire to include stacks and queues. Students also study the unordered data structures, set and map, and learn how to incorporate them into abstract data types. As part of this work, they learn how to use linked lists to create stacks and queues.
Prerequisite
CSE3320: Dynamic Data Structures 1
Parameters
Access to appropriate computer equipment, software, the Internet and support materials. Access to an object-oriented programming environment that encourages a formal treatment of objects.
Supporting courses
CSE3020: Computer Science 4 CSE3130: Object-oriented Programming 2 and/or any Advanced project course involving the use of abstract data types

Outcomes The student will:

  • 1 analyze and represent the nature, structure and utility of stacks, queues, sets and/or maps

    • 1.1 explain and represent the nature and mechanics of stacks, queues, sets and/or maps including:

      • 1.1.1 the role of stacks, queues, sets and/or maps as containers for abstract data types (ADTs)

      • 1.1.2 the abstract data type and data manipulation each structure is best suited to

      • 1.1.3 the logical structure of stacks, queues, sets and/or maps

    • 1.2 explain and represent the standard operators associated with stacks, queues, sets and/or maps including:

      • 1.2.1 create the data structure

      • 1.2.2 copy the data structure; e.g., cloning, deep copy

      • 1.2.3 push, pop and peek for stacks

      • 1.2.4 enqueue and dequeue for queues

      • 1.2.5 link keys and values for maps

      • 1.2.6 search, insert, remove and modify data elements in sets and/or maps

      • 1.2.7 determine equality between sets

      • 1.2.8 determine union, intersection, difference and symmetric difference

      • 1.2.9 delete the data structure

    • 1.3 explain the advantages and disadvantages of using stacks, queues, sets and/or maps

  • 2 create and/or modify algorithms using stacks, queues, sets and/or maps to solve problems

    • 2.1 demonstrate the use of appropriate general design techniques to draft algorithms that use stacks, queues, sets and/or maps

    • 2.2 analyze and decompose the problem into appropriate subsections using the decomposition techniques appropriate for the chosen design approach

    • 2.3 evaluate subsections and identify any that may require stacks, queues, sets and/or maps, based on the nature of the data to be processed and type of processing operations

    • 2.4 identify which structures (stacks, queues, sets and/or maps) are appropriate or required to manipulate data

    • 2.5 sequence the various subsections appropriately

    • 2.6 test and modify the developing algorithm with appropriate data using a “fail-on-paper” process

  • 3 create and/or modify programs based on appropriate algorithms using stacks, queues, sets and/or maps

    • 3.1 convert algorithms calling for stacks, queues, sets and/or maps into programs that reflect the algorithm’s design

    • 3.2 use original (user-created) or pre-existing stacks, queues, sets and/or maps appropriate to the data being manipulated

    • 3.3 utilize the appropriate operators, methods, functions or procedures required to use stacks, queues, sets and/or maps

    • 3.4 use internal and external documentation

  • 4 compare program operation and outcomes with the intent of the algorithm and modify, as required

    • 4.1 use appropriate error-trapping mechanisms built into the programming environment, as well as programmer-directed error-trapping techniques, to eliminate logic errors and debug the program

    • 4.2 compare the congruency between the outcomes of the debugged program and the original intent of the algorithm and modify both, as required

  • 5 demonstrate basic competencies

    • 5.1 demonstrate fundamental skills to:

      • 5.1.1 communicate

      • 5.1.2 manage information

      • 5.1.3 use numbers

      • 5.1.4 think and solve problems

    • 5.2 demonstrate personal management skills to:

      • 5.2.1 demonstrate positive attitudes and behaviours

      • 5.2.2 be responsible

      • 5.2.3 be adaptable

      • 5.2.4 learn continuously

      • 5.2.5 work safely

    • 5.3 demonstrate teamwork skills to:

      • 5.3.1 work with others

      • 5.3.2 participate in projects and tasks

  • 6 create a transitional strategy to accommodate personal changes and build personal values

    • 6.1 identify short-term and long-term goals

    • 6.2 identify steps to achieve goals

Program of Studies 2009. Source document, © Alberta Education.