Download Data Structures

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Array data structure wikipedia , lookup

Quadtree wikipedia , lookup

Linked list wikipedia , lookup

Binary search tree wikipedia , lookup

Transcript
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