You are on page 1of 9

FACULTY OF INFORMATION TECHNOLOGY

BSc (Hons)/DipHE in Computer and Internet Applications


Bsc (Hons)/DipHE in Networking
Validated by the University of Bedfordshire, UK





Module Handbook

DATA STRUCTURES AND ALGORITHMS (CC10-1)

Sep 14 - Jan 15















Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 2

Details of the Module Coordinator:

Module Coordinator Mr. Ijaz Ahmad
Room and site Al Nahda Building, 1st floor, Faculty of IT, Room: N211
Telephone Number 24730477
Email ijaz.ahmad@majancollege.edu.om

Table of Contents

Welcome ___________________________________________________________________ 3
Introduction _________________________________________________________________ 3
Rationale ___________________________________________________________________ 4
Aims _______________________________________________________________________ 4
Learning outcomes ___________________________________________________________ 4
Teaching and Learning Methods _________________________________________________ 5
Module Web Site _____________________________________________________________ 5
Module outline and Structure ____________________________________________________ 6
Absence ____________________________________________________________________ 6
Module Assessment ___________________________________________________________ 7
Plagiarism, Cheating, Fabrication and Copying ______________________________________ 7
Assessment Grading Criteria ____________________________________________________ 7
Reading List and useful Websites ________________________________________________ 8
Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 3

Welcome

Dear Students,

Welcome to the new semester and to your new module Data Structures and Algorithms (DSA)
offered by the Faculty of Information Technology. This booklet gives you some basic information
about this module and provides you a framework to help guide your study programme.
This booklet is module specific. For extra details about the Modular Credit Scheme (MCS) you
MUST read your Student Handbook.
The module will be delivered via lectures and tutorials, and practical work will be carried out in a
computer laboratory. Students are also expected to undertake self-study time for in-course work
and class test preparation. Problem solving and learning skills are enhanced in IT lab sessions
where students will work together as well as independently.

With best wishes for a successful outcome,

Ijaz Ahmad





Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 4

Description & Rationale

Data Structures is a core subject in the field of computer science. Different Data Structures are
heavily used in most softwares, whether system or application software. The field of compiler
designing, database management systems, operating systems, searching and sorting heavily
depends on Data Structures.

Throughout this module, students will be taught to understand the basic concepts of information
storage and retrieval using various Data Structures, their implementation using C/C++
language, as well as time and space complexities of the algorithms.

Aims
This module aims to:
Develop understanding of the theoretical concepts of different Data Structures used in the
field of Computer Science.
Define the relationship between Data Structures and Algorithms.
Enable students to implement simple Data Structures through the use of C/C++ language.
Familiarise students with basic searching, sorting algorithms and their time and space
complexities.

Learning outcomes
On completion of this module, students should be able to:
Develop algorithms for solving simple problems.
Identify different data structures and their uses including Stack, Queue, Linked List,
Trees, and Graphs.
Identify particular Data Structures to be used in a particular situation in order to store
and retrieve information.
Implement different data structures using C/C++ language
Understand the concept of Hashing.
Write programs to implement searching and sorting algorithms

Knowledge Skills
To help with the development of this you will:-
Demonstrate the knowledge of common data structures and algorithms

Practical Skills
To help with the development of this you will:-
Be able to code a simple data structure
Develop programs using appropriate data structures.
Improve programming skills in developing and debugging programs.

Cognitive /Intellectual Skills
To help with the development of this you will:-
Be able to choose the most appropriate data structure for a particular problem
Analyse various approaches in solving a problem using data structure
Illustrate operation of data structure
Explain at various levels the behaviour of code fragments

Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 5

Transferable skills:
Plan your work, maintain a record book and meet deadlines
To appreciate the practical aspects of strategic management.
To develop a proper approach to problem solving and decision making.

Teaching and Learning Methods
Student centred teaching approach will be strongly encouraged and developed. This
approach shifts the focus of activity from the lecturer to the learners to facilitate the deep
learning attributed to a more active participation of the learning process by students.
Cooperative learning and inductive teaching and learning will be infused into the
teaching-learning-assessment strategies.
Active learning, in which you will be required to solve problems, answer questions,
formulate questions of your own, discuss, explain, debate, or brainstorm during class;
cooperative learning, in which you will be asked to work in teams on problems and projects
under conditions that assure both positive interdependence and individual accountability;
And inductive teaching and learning, in which you are first presented with challenges
(questions or problems) and learn the course material in the context of addressing the
challenges. Inductive methods include inquiry-based learning, case-based instruction,
problem-based learning, project-based learning, discovery learning, and just-in-time
teaching.

In addition this approach puts you at the heart of the learning process. It is expected that this
approach will promote autonomy in the classroom, so that students are able to take
responsibility for their work, and play an active role in their own development. Research has
proved those students who were engaged in students centred approach, were able to
understand the assessment process better; they became positive learners, engaged more in the
classroom discussions and became independent learner who were able to apply the theory to
real life scenarios.

Module Web Site

http://move.majancollege.edu.om/ this website contains downloadable versions of all teaching
materials used on the module, including all the materials from this manual and the PowerPoint
materials used in lectures. Please note that MOVE contains a wealth of other useful sources.
These include extended reference lists (essential if you want good grades in the examination
and coursework) as well as links to websites and some other useful materials, which may or
may not be referred to in the classes. It is worth your while familiarising yourself with the
contents of the site and checking regularly for anything new. Hard copies of the lecture
handouts and case studies will be provided to you, while the PowerPoint materials and other
additional materials will be on MOVE.


Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 6

Module outline and Structure

Week Main Topic Details
1 Introduction
Historical overview of Algorithms and Data Structures, C++
Concepts Review
2 Arrays and Trace Tracing a C++ program, advance concepts in arrays
3 Searching Techniques Tricks and Techniques for searching
4 Hashing Hashing Techniques
5
Sorting Algorithms
Bubble Sort (Algorithm and Program)
6 Insertion Sort (Algorithm and Program)
7 Quick Sort (Algorithm and Program)
8 In-class Test
9 Stack Stack Data Structures, Usage, and Implementation
10 Queue Queue Data Structures, Usage, and Implementation
11 Link List Linked List Data Structures, Usage, and Implementation
12 Binary Trees Binary Trees Data Structures, Usage, and Implementation
13 Tree Traversals In-order, Pre-order, and Post-order Traversal Algorithms
14 Graphs
Introduction and Applications, DFS, BFS and Kruskals
Algorithm
15 End-of-semester Examination


Attendance
You are expected to be present and punctual for all lectures and seminars. Failure to attend
lectures and tutorials regularly may jeopardise successful completion of the module. It is
compulsory that you maintain at least 80% attendance for the modules that you are registered
for. If your attendance is less than 80% in a module you will normally not be allowed to sit
for the examination or submit your assignments (course work).

For more details refer to the student handbook section 2.10.

Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 7


Module Assessment
Type: Assessment is a portfolio Assessment Weightage: 100%
The portfolio will constitute of the following tasks
Task Weightage Submission Date
Task 1 In class test 40% Week 7/8
Task 2 In class test 60% Week 15

Plagiarism and Academic misconduct
The following regulations apply to course and examinations. Plagiarism means taking and
claiming the work of others as your own, without acknowledging the author or source. At
induction you will be shown how to reference properly. You should make sure you adopt
Harvard referencing system for your works. Please refer your Student Handbook section
7.2 for further information on Harvard referencing Style.
Copying the work of other students and presenting it as your own can result in a Fail for all
students concerned, including the student who produced the original work. It is acceptable and
often helpful; to discuss ideas with other students but where submitted work is mere
reproduction and repetition of others' words and ideas, then it counts as copying. Your written
reports MUST be entirely out of your own effort. This consideration applies just as strictly when
students have been working together on the execution of coursework exercises. See the
penalties in the students handbook sections 5.7.

Assessment Grading Criteria
Although grades may be awarded on the basis of marks in some assessments, students should
note that both marks and grades will be awarded on the basis of the assessment criteria for
each grade.

GRADE
GRADE
POINT DESCRIPTION
GENERAL ASSESSMENT CRITERIA
A+ 16
Excellent
An outstanding piece of work.
Shows evidence of wider reading and originality
Strongly analytical. All important points are covered.
Arguments should be supported by examples and evidence,
objectively presented and evaluated,
Well-structured and well-written, without noticeable
grammatical or other errors.
Correctly referenced
A 15
A- 14
B+ 13
Very Good
Very good work.
All main points will have been covered, though minor issues
may have been omitted.
The work will be analytical, balanced and soundly based.
Examples and supporting evidence should have been included.
The writing should be essentially correct, without major
grammatical or other errors.
Generally referenced correctly.
B 12
B- 11
Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 8

C+ 10
Good
Generally good work.
Most points will have been covered, but many finer points will
generally have been missed.
Shows limited reading.
Arguments/analysis should be basically well structured and
balanced with relevant examples, but with errors and gaps.
The writing is clear, but has errors that nevertheless do not
obscure the meaning.
Referencing will be present but may at times be inaccurate or
insufficient.
C 9
C- 8
D+ 7
Pass
Satisfactory.
Shows sufficient grasp of the subject to be acceptable.
Tends to be descriptive.
Examples and evidence is likely to be weak and limited.
Shows limited reading.
Referencing is likely to be absent or very poorly carried out.
D 6
D- 5
E 4 Refer
Unsatisfactory/ Compensable fail.
Serious errors and omissions.
Very little analysis
F 2
Fail

Work of a very poor standard with little relevant information
and/or serious errors.
F- 1
Work containing little of merit
G 0 No work submitted

Reading List and useful Websites
It is most important that you make adequate provision to acquire and read the appropriate texts.
As you will know, reading is a necessary supplement to lectures and seminars and not a
substitute for them.
READING
Books Essential:
[1] Mark Allen Weiss, 2006, Data Structures and algorithm Analysis in c++, Third
edition, Pearson International Edition
Recommended:
[2] Cormen, T.H., Leiserson, C.E., Rivest, R.L., Clifford S., 2007, Introduction to
Algorithms, Second Edition, MIT Press.
[3] Leendert ammeraal, 1996, Algorithms and data structures in C++, I4th, Wiley
Edition
Internet and the World Wide Web
Links for some key Internet sources are to be found on MOVE. You are encouraged to search
the Internet for resources of your own, and if you come across any useful sites I would be
grateful if you could pass the details to me.
Websites All DSA animations
http://www.cosc.canterbury.ac.nz/mukundan/dsal/appldsal.html
SEARCHING
Linear Search
http://www.cosc.canterbury.ac.nz/mukundan/dsal/LSearch.html

Data Structures and Algorithms (module Handbook)

Ijaz Ahmad (Majan College), Sep 14 - Jan 15 Page 9

Binary Search
http://www.cse.ust.hk/faculty/tcpong/cs102/summer96/aids/binary.html
http://www.cosc.canterbury.ac.nz/mukundan/dsal/BSearch.html
http://video.franklin.edu/Franklin/Math/170/common/mod01/binarySearchAlg.html
SORTING
Bubble
http://www.cse.ust.hk/faculty/tcpong/cs102/summer96/aids/bubble.html
Insert
http://www.cse.ust.hk/faculty/tcpong/cs102/summer96/aids/insert.html
http://math.hws.edu/TMCM/java/xSortLab/
http://www.algolist.net/Algorithms/Sorting/Insertion_sort
http://www.ee.unb.ca/petersen/lib/java/insertionsort/
Quick sort
http://www.cs.oswego.edu/~mohammad/classes/csc241/samples/sort/Sort2-E.html

Videos
http://www.youtube.com/watch?v=c4BRHC7kTaQ
http://www.youtube.com/watch?v=vxENKlcs2Tw&feature=related
http://www.youtube.com/watch?v=fdGvEZzYYRc

DATA STRUCTURES
Stack
http://www.wiziq.com/tutorial/13556-STACKS-IN-DATA-STRUCTURE

Queue
http://learning-computer-programming.blogspot.com/2007/07/data-structures-
introduction-to-queues.html

Linked List
http://www.apl.jhu.edu/Classes/Notes/Felikson/courses/605202/Lafore/LinkList/Lin
kList.html
http://www.cmpe.boun.edu.tr/~akin/cmpe223/linked_list/chap3_1.htm

Binary Tree
Tree Creation and deletion
http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html

Tree Traversal
http://nova.umuc.edu/~jarc/idsv/lesson1.html
http://www.csc.liv.ac.uk/~ped/teachadmin/COMP102/ProgramExamples/ExampleA
nimations/TraversalAnimation.html
http://www.cmpe.boun.edu.tr/~akin/cmpe223/bst/chap4_1.htm

Graphs
Graph Traversal
http://www.cosc.canterbury.ac.nz/mukundan/dsal/GraphAppl.html
Kruskal's Algorithm
http://students.ceid.upatras.gr/~papagel/project/kruskal.htm