Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
The Further Education and Training Awards Council (FETAC) was set up as a statutory body on 11 June 2001 by the Minister for Education and Science. Under the Qualifications (Education & Training) Act, 1999, FETAC now has responsibility for making awards previously made by NCVA. Module Descriptor Data Structures Level 6 C30151 www.fetac.ie 1 Title Data Structures 2 Code C30151 3 Level 6 4 Value 2 credits 5 Purpose This module has been designed to enable the learner to understand the concept of a data type and a data structure. The learner will become familiar with the different types of data structures and their application in software development. This is an elective module on Advanced Certificate, Networks and Software Systems at Level 6. 6 Preferred Entry Level 7 8 Special Requirements Level 5 Certificate or equivalent. The learner should have successfully completed FETAC Computer Programming (C20013) or its equivalent. General Aims This module aims to enable the learner to: 8.1 acquire the skills necessary to understand the concept of a data structure 8.2 understand the need for structuring data in different ways 8.3 understand the need for dynamic memory allocation 8.4 distinguish between linear structures and non- linear structures 8.5 design data structures for specific tasks 8.6 implement the different data structures in a programming language 8.7 develop good work practices in the use and care of computing equipment. 1 9 Units Unit 1 Unit 2 Unit 3 Unit 4 10 Fundamentals Sorting and Searching Linear Structures Non-linear Structures Specific Learning Outcomes Unit 1 Fundamentals The learner should be able to: 10.1.1 define a data type 10.1.2 list basic data types: • • • • intger real char boolean 10.1.3 list operations on basic data types 10.1.4 explain the meaning of operations on basic types 10.1.5 explain user defined data types 10.1.6 explain the term record or structure 10.1.7 write a program that implements user defined types 10.1.8 define the term data structure 10.1.9 define the following data structures: • • • array stack queue 10.1.10 differentiate between compile-time and run-time allocation of data storage 10.1.11 explain the importance of dynamic allocation of memory 10.1.12 give an example of an application for which dynamic memory allocation is necessary 10.1.13 define the term pointer 10.1.14 distinguish between a pointer variable and an ordinary variable 10.1.15 explain how memory is allocated and freed 10.1.16 write a program using pointers 2 10.1.17 explain the term dynamic array 10.1.18 explain how pointers are used to implement dynamic arrays 10.1.19 write a program that use dynamic arrays for data storage. Unit 2 Sorting and Searching The learner should be able to: 10.2.1 explain the need to sort data 10.2.2 distinguish between: • • linear searching binary searching 10.2.3 explain the advantages of binary searching over linear searching 10.2.4 write an algorithm for a: • • linear search binary search 10.2.5 write functions which implement both searching strategies 10.2.6 write programs to test these functions 10.2.7 write programs to test these functions 10.2.8 explain the following techniques: • selection sort • bubble sort • insertion sort 10.2.9 write an algorithm for a: • selection sort • bubble sort • insertion sort 10.2.10 write procedures to implement 10.2.9 10.2.11 write programs to test 10.2.10 10.2.12 explain why these sorting algorithms are O(N 2 ) 10.2.13 write algorithms to partition arrays about given values 10.2.14 explain the problem known as the Dutch National Flag 10.2.15 write an algorithm to solve the problem of the Dutch National Flag 10.2.16 explain the algorithm Quicksort 10.2.17 write a procedure to implement Quicksort 10.2.18 explain why Quicksort is better than the algorithms outlined in 10.2.4 and 10.2.9. 3 Unit 3 Linear Structures The learner should be able to: 10.3.1 define a singly linked list 10.3.2 define a node in a list 10.3.3 explain how nodes are dynamically linked to form a linear list 10.3.4 write code to create an empty singly linked list 10.3.5 write code to insert a node in a singly linked list 10.3.6 write code to print contents of a singly linked list 10.3.7 write code to delete a node from a singly linked list STACKS 10.3.8 define a stack 10.3.9 explain how to implement a stack using an array 10.3.10 write procedures using an array for: • • • • • • new-stack push pop top empty_stack delete_stack 10.3.11 explain how to implement a stack using a singly linked list 10.3.12 write procedures using a singly linked list for: • new-stack • push • pop • top • empty_stack • delete_stack 10.3.13 write a program that uses a stack to store data 10.3.14 give two examples from programming where stacks are useful QUEUES 10.3.15 define a queue 10.3.16 explain how to implement a queue using an array 10.3.17 write procedures using an array for: • • new-queue insert 4 • • • • remove head empty_queue delete_queue 10.3.18 explain how to implement a queue using a singly linked list 10.3.19 write procedures using a singly linked list for: • new-queue • insert • remove • head • empty_queue • delete_queue 10.3.20 write a program that uses a queue to store data 10.3.21 give two examples from programming where queues are useful. Unit 4 Non-linear Structures The learner should be able to: 10.4.1 define recursion 10.4.2 explain the connection between recursive definition and iteration 10.4.3 write recursive routines e.g. read a list of integer values and print them in reverse order define a binary search tree 10.4.4 10.4.5 explain the following terms: • root node • path • leaf node • parent node • sibling 10.4.6 construct a binary search tree from a given list of integer values 10.4.7 explain the following traversal algorithms: • inorder • pre-order • post-order 10.4.8 explain the significance of applying an inorder traversal to a binary search tree 10.4.9 explain how to delete an element from the tree for a given binary search tree 5 11 11.1 11.2 10.4.10 implement the definition of a node in a binary search tree 10.4.11 write a procedure to insert an element in a binary search tree 10.4.12 write procedures for the three traversal algorithms 10.4.13 write a procedure to delete an element from a tree 10.4.14 write a procedure to search for a given element 10.4.15 write a program that uses binary search trees to store data. Assessment Summary Portfolio of Coursework Examination Technique Portfolio of Coursework Format The portfolio of coursework is to consist of 2 programming assignments. 11.1.1 Assignment 1 Details The assignment must be an application that will involve the use of linear data structures. E.g. Implement the data type set_of_ integer and the operations new_set, union, subset, intersection and is_an_element_of 11.1.2 Assignment 2 Details The assignment must be an application that will involve the use of non- linear data structures. Technique Written Examination Format The examination is to be based on all units of the module. 30% 30% Section A 20% One structured question Section B 20% Three structured questions. Two questions to be answered All questions carry equal marks. 12 Grading 60% 40% Pass Merit Distinction 50 - 64% 65 - 79% 80 - 100% 6 Data Structures Individual Candidate Marking Sheet 1 C30151 Assignment 1: Programming – linear data Weighting 30% Candidate Name: _________________________________ PPSN: ____________________ Centre: __________________________________________________ Centre No: ________ Maximum Mark Performance Criteria Programme Documentation Candidate Mark 20 Design and Implementation of a data structure to solve a given problem Reasons for choosing the given data structure, e.g. suitability, performance issues etc. 25 Application development and use of Data Structure in solving a given problem 40 Test and Evaluation 15 Total Marks WEIGHED TOTAL (= TOTAL X 0.3) 100 30% Assessor’s Signature: _______________________________________ Date: ___________ External Authenticator’s Signature: ___________________________ Date: ___________ 7 Data Structures C30151 Individual Candidate Marking Sheet 2 Assignment 2: Programming – non-linear data Weighting 30% Candidate Name: _________________________________ PPSN: ____________________ Centre: _________________________________________________ Centre No: _________ Maximum Mark Performance Criteria Programme Documentation Candidate Mark 20 Design and Implementation of a data structure to solve a given problem Reasons for choosing the given data structure, e.g. suitability, performance issues etc. 25 Application development and use of Data Structure in solving a given problem 40 Test and Evaluation 15 Total Marks WEIGHED TOTAL (= TOTAL X 0.3) 100 30% Assessor’s Signature: _______________________________________ Date: ___________ External Authenticator’s Signature: ___________________________ Date: ___________ 8 Data Structures Individual Candidate Marking Sheet 3 C30151 Written Examination 40% Candidate Name: __________________________________ PPSN: ___________________ Centre: ___________________________________________________ Centre No: _______ Maximum Mark Performance Criteria Candidate Mark Section A Question 1 50 Section B Answer 2 questions Question ( ) 25 Question ( ) 25 Total 100 WEIGHED TOTAL (= TOTAL X 0.4) 40% Assessor’s Signature: ______________________________________ Date: ____________ External Authenticator’s Signature: __________________________ Date: ____________ 9 FETAC Module Results Summary Sheet Module: Data Structures Module Code: C30151 Portfolio of Coursework Elements of Assessment Written Examination 40% Maximum Marks per element of assessment Candidate Name Exam No. Signed: Teacher/Assessor: __________________________________________ Date: ____________ This sheet is for teachers/Assessors to record the overall marks of individual candidates. It should be retained in the centre. The marks awarded should be trans ferred to the official FETAC Module Results Sheet issued to centres before the visit of the external Authenticator. 10 Assignment 1 Assignment 2 30% 30% % Marks 100% Grade* Grade* D: 80 - 100% M: 65 - 79% P: 50 - 64% U: 0 - 49% W: candidates entered who did not present for assessment