CSE3320 Dynamic Data Structures 1
Advanced · 1 credit · BIT - Business, Admin, Finance and IT
- Description
- Students learn how to design, code and debug programs using abstract data types that utilize dynamic data structures. Students explore dynamic memory allocation, in general, and as handled by their programming environment. Students concentrate on how the linked list dynamic data structure(s) can be used to implement abstract data types.
- Prerequisite
- CSE3310: Recursive Algorithms 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
Outcomes The student will:
1 analyze and represent the nature, structure and utility of linked lists
1.1 describe and represent the nature of dynamic data structures including:
1.1.1 the mechanics of dynamic memory allocation; e.g., the heap, pointers and/or references, linear and non-linear data structures
1.1.2 a comparison and contrast of dynamic and static data structures
1.2 describe and represent the nature and mechanics of linked lists by:
1.2.1 describing linked lists as a components of abstract data types
1.2.2 describing the logical structure of the singly linear linked list including nodes, fields, references and pointers
1.2.3 describing the logical structure of other types of linked lists; e.g., double-linked, circularly-linked, ordered linked lists
1.3 describe and represent the operators associated with linked lists by:
1.3.1 creating the linked list
1.3.2 inserting a node
1.3.3 traversing the linked list
1.3.4 deleting a node
1.3.5 replacing a node
1.3.6 finding and retrieving data from the linked list
1.3.7 determining the size of the linked list
1.4 explain the advantages of the linked list over static data structures
2 create and/or modify algorithms that use linked lists to solve problems
2.1 demonstrate the use of appropriate general design techniques to draft algorithms that use linked lists
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 some dynamic data structures, based on the nature of the data to be processed and type of processing operations
2.4 identify which dynamic data structures are appropriate or required to merge and/or sort 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 that make effective use of linked lists
3.1 convert algorithms calling for dynamic data structures into programs that reflect the algorithm’s design
3.2 use original (user-created) or pre-existing dynamic data structures appropriate to the data being manipulated
3.3 utilize the appropriate operators, methods, functions or procedures required to use dynamic data structures
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.