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
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