You are on page 1of 9

COMSATS-Lancaster Dual Degree Programme

Lancaster Block, CIIT, Defence Road, Off Raiwind Road, Lahore

COURSE HANDBOOK

1. Course Title Data Structure and Algorithm

2. Course Code CSC-114

3. Credit Hours 4(3,1)

4. Semester FALL 2015

5. Resource Person Dr, Ghulam Rasool, Dr.Ghulam Mahdi, Dr


Furrukh Zeeshan, Humera Niaz, Saba Anwar

6. Supporting Team Members NIL

7. Contact Hours (Theory) 3 hours per week

8. Contact Hours (Lab)


9. Office Hours
10. Course Introduction
Rationale:
This module will introduce students the fundamental concepts of Data structures and they will study
how to write efficient algorithms. Students will learn theoretical concepts about different data
structures, application of data structures to solve different problems. The theoretical background
will let students to implement those concepts in the lab keeping in mind the real-world problems.
Prior Knowledge:
It is assumed that students entering have already taken the course of Introduction to Computers and
Programming, Programming and Language Technologies. They have sound programming
background. They can program data structures and algorithms using one of the following
programming languages C/C++, C# and JAVA. It is also vital that students must have fundamental
understanding of probability, linear algebra, vector space, and differential equations.
Educational Aim:
Subject Specific: Knowledge, Understanding and Skills

 Learn the basics of the analysis, design and implementation of complex abstract data types
 Learn new strategies for designing efficient algorithms
 Understand the importance of temporal and spatial costs when designing particular
solutions
 To apply statistical, mathematical models and other scientific knowledge base to
understand the functioning of computers and its modeling.
 To explore different knowledge representational techniques and algorithms that allows to
simulate/emulate human like intelligence/expertise.
 To understand and develop programming skills required for the development of computer
system
 To understand the implementation complexities of algorithms when developing
applications for computers.

 Transferable Skills
 To research and review current progress in Data Structure and Algorithm.
 Encourage students to read updates on Data Structure and Algorithm technologies and share
them.
 Help students to critically evaluate different Algorithms.

11. Learning Outcomes


Subject Specific: Knowledge, Understanding and Skills
The aim of this course is to cover basic and in-depth concepts of Algorithms and Data Structures.
Students will learn how data structures are helpful to solve different problems. It will provide
foundation in learning advanced algorithm analysis course. Student can use C language for the
purpose of implementation and they will learn generic concepts which will be used for developing
different software applications. The knowledge of C language is expected as strong background.
Students should be able to:

Basic and in-depth concepts of Data Structures and Algorithms to solve different software
problems.
 Selection of appropriate Data Structure and Algorithm for specified application.
 How appropriate Data Structures and algorithms impact performance of software?
 Solve different problems using Arrays, Stacks, Queues, Link Lists, Trees, Heaps, Hash
Tables and Graphs.
 Use of different sorting techniques and their efficiency.
 Students will be able to translate Algorithm ideas into working practical applications.
General and Transferable Skills
 Gain self-confidence through the ability to deal with different parts of the algorithms.
 Refine the talent of creativity and excellence of the student through the work performed.
 Familiarity with the basic concepts of modern algorithms.
 Recognize the importance of various data structure applications.

12. Course Contents


 Data Structure: Course Overview, Introduction to Different Data Structures. Memory
Management of basic data types
 Algorithms, flow charts, pseudocode
 Arrays: Insertion and Deletion in Arrays, Two-dimensional Arrays, Multi-
dimensional Arrays.
 Stacks: Operations on stacks, Infix, Postfix and Prefix notations, Infix to Postfix
conversion, postfix evaluation
 Queues: Operation of Queue ( Insertion & delation),
 Circular & , Priority queue:
 Link Lists, creation of link list,
 Operations of link list
 Circular and doubly link list
 Tree
 Binary search tree: Creation of tree using array and link list, Traversal of Tree.
 Heap: Min & Max heap, Heap sort
 Searching Techniques: Linear, Binary
 Sorting Techniques: Insertion, Bubble, Quick, Heap, Selection
 Hashing: Memory Organization of Hash, Collision in Hashing, Hash Function
Techniques
 Graph: Memory representations of Graphs using Array & Link List,
Traversal( Depth First and Breadth First Algorithms), Dijkstra
Algorithm( Shortest Path).

13. Lecture Schedule


Week Topic of Lecture Text
Week 1 Course Overview, Introduction to Different Data Book+ Handouts
Structures. Memory Management of basic data
types.

Week 2 Algorithms, flow charts, pseudocodes

Week 3 Arrays, Insertion and Deletion in Arrays, row Book + Handouts


major order, column major order, Two-dimensional
Arrays, Multi-dimensional Arrays.
Week 4  Stacks, Operations on stacks, Infix, Postfix Book+ Handouts
and Prefix notations, Infix to Postfix
conversion, postfix evaluation, Tower of
Hanoi

Week 5 Queues, Operation of Queue ( Insertion & delation), Book + Handouts


Types of Queues (Circular, Pirority, Dequeue etc),
Priority & Dequeue( Insertion & Deletion)

Week 6 & 7 1st sessional & student Week

Week 8  Basic concepts of pointers Book+ Handouts

Link Lists, creation of link list, operations of link


list( traversal, insertion, deletion)
Week 9 Circular & doubly link list, circular doubly link list Handouts
( insertion, deletion)
Week 10 Concepts of Tree, Type of trees, Creation of tree Book+ Handouts
using array and link list, Traversal of Tree.
Week 11 Binary search tree ( creation, Insertion, Traversal), Handouts
Height Balanced Trees, Heap (Min & Max heap),
Heapify
Week 12 2nd sessional

Week 13 Searching ( Linear, Binary), Introduction to


Hashing, Algorithms, Hash Functions,
Week 14 Memory Organization of Hash, Collision in
Hashing, Hash Function Techniques
Week 15 Sorting( Insertion, Bubble, Quick, Heap), Book + Handouts
Introduction to Graphs (Implementation using
Array & Link List)
Week 16 Graph operations, Memory representations of Handouts
Graphs using Array & Link List, Traversal( Depth
First and Breadth First Algorithms), Dijkstra
Algorithm( Shortest Path)

15. Text Books 1. “Classic Data Structures”, by D. Samanta.


2. “Data Structure—A Pseudocode Approach with C”, by Richard
F. Gilberg, Behrouz A. Forouzan
3. “Data Structures using C and C++”, by Yadidyah Langsam,
Moshe J. Augenstein, Aaron M. Tenenbaum.

16. Research
Papers
17. Recommended  “Schaum’s Outlines of Data Structures with C++”, by John R.
Books Hubbard.
 “Programming and Data Structures ”, by Ashok N.Kamthane
18. Detail of Teaching and Assessment
The learning hours for this module are made up of the teaching contact hours as well as the students'
private study hours. Further details and timings will be notified later.
Type Details:
Teaching Contact Hours 2 Lectures/week (1.5 hours each)
Instructors Office Hours 3 hours/week
Lab Contact Hours 0
Students’ Private Study hours 5-6 hours/week
Details and timings for the assessment of this module are as follows:
Theory Part:
Exam (Weightage) Duration Type
Sessional-I Exam (10%) 1 hour Subjective
Sessional-II Exam (15%) 1.5 hour Subjective
Final Exam (50%) 3 hours Subjective
Quiz (3-5 per semester) (15%) 10-20 min each Subjective
Assignments (10%) 4-5 per semester Take home type

The minimum pass marks for this course shall be 50%. Students obtaining less than 50% marks in
this courseshall be deemed to have failed. The correspondence between letter grades, credit points,
and percentage marks at COMSATS SDP shall be as follows:
Grades Letter Grade Credit Points Percentage Marks
A ( Excellent) 4.0 90and above
A- 3.7 85-89
B+ 3.3 80-84
B (Good) 3.0 75-79
B- 2.7 70-74
C+ 2.3 65-69
C (Average) 2.0 60-64
C- 1.7 55-59
D (Minimum passing) 1.3 50-54
F (Failing) 0.0 Less than 50
19. Format of Assignment
Assignments are usually submitted electronically as well as printed in a specific format, which will
be announced later.

20. Plagiarism
Plagiarism is the failure to credit the writings or ideas of another person that you have used in your
own work. In such cases you are, deliberately or inadvertently, attempting to pass their work off as
your own. Plagiarism is a serious offence, and can carry severe consequences, from failure of this
module to deregistration from the course. You may also commit plagiarism by failing to reference
your own work that you have already used in a previously, or by failing to credit the input of other
students on group projects.
It is your responsibility to ensure that you understand plagiarism and how to avoid it. The following
recommendations can help you in avoiding plagiarism.

 Be sure to record your sources when taking notes, and to cite these if you use ideas or,
especially, quotations from the original source. Be particularly careful if you are cutting
and pasting information between two documents, and ensure that references are not lost in
the process.

 Be sensible in referencing ideas – commonly held views that are generally accepted do not
always require acknowledgment to particular sources. However, it is best to be safe to avoid
plagiarism.

 Be particularly careful with quotations and paraphrasing.

 Be aware that technology is now available at CIIT and elsewhere that can automatically
detect plagiarism.

 Ensure that all works used are referenced appropriately in the text of your work and fully
credited in your bibliography.

 If in doubt, ask for further guidance from your Course Organizer.


The material that you submit for assessment, whether in an answer script in a written examination
or as assessed coursework, must be your own unaided work. Cheating in written examinations and
plagiarism in assessed coursework are examination offences.
Plagiarism in assessed coursework - this is the use or presentation of the work of another person,
including another student, as your own work (or as part of your own work) without acknowledging
the source. Plagiarism therefore includes submitting the work of someone else as your own, and
extensive copying from someone else's work in your own paper or report.
Brief quotations from the published or unpublished work of other persons may be used, but must
always be clearly indicated by being placed inside quotation marks, with the source indicated in
some way, and the work listed in the bibliography at the end of your own piece of work.
It can also be plagiarism to summarize another person's ideas or judgments without reference to the
source.
Copying material from web pages without acknowledgement is plagiarism.
Copying programs (for example from the Internet) without explanation of where they are
from or how much you have modified the programs is also plagiarism.
Copying from another student (with or without their consent) is plagiarism and both parties
will be subject to investigation and possible penalty.
Do not copy and do not allow others to copy from you.
When you are taking notes for a paper or piece of coursework, it is important to include all the
sources you have used, and to indicate any quotations so that you can make the necessary references
when you come to write the report/assignment/essay etc. "Unconscious plagiarism", including an
un-attributed quotation because you did not identify quotations in your notes, is as much an
examination offence as deliberate plagiarism, and will be dealt with in the same way as any other
examination offence.
‘Turnitin’ Academic Plagiarism Detection Service
All final project reports are checked for plagiarism using the plagiarism detection service ‘Turnitin’.
Reports are checked against the web and other digital archives to determine how much of it is copied
from other sources. Clearly it is ok if some of the text comes from other sources (providing the
source is referenced) but the majority of the text should be your own and you will be heavily
penalized and potentially subject of a plagiarism investigation if not. Please note that other
coursework may be run through the ‘turnitin’ system at the module organizer’s discretion.
The Google test
To ensure against plagiarism, all assessed coursework is subject to the "Google Test", which works
as follows.
Sentences and phrases from your work are typed into Google, which quickly finds material that has
been copied from any web page. Any work containing material found on a Web page will be deemed
to have failed the Google Test, unless it has been properly referenced and quoted.
We strongly recommend that you apply the Google Test to your own work before you submit it, to
make sure that you have not "accidentally" included words from any web pages. If you find any
sections copied from web pages in your work, you should make sure that you remove the offending
sections before you submit or make sure that they are properly referenced.

21. Attendance Policy


Every student must attended 80% of the lectures/seminars delivered in this course and 80% of the
prescribed practical/laboratory sessions. The students falling short of required percentage of
attendance of lectures/seminars/practical/laboratory work, etc., shall not be allowed to appear in
the terminal examination of this course and shall be treated as having failed this course.
22. Conduct
CIIT has high expectations of student behaviour. It is expected that students will help to maintain a
pleasant atmosphere suitable for serious study throughout their programme of study. Any behaviour
that prevents other students from studying will result in disciplinary action by the University.
Persistent offenders will be referred to concerned committee for further disciplinary action and
possible deregistration.
Two issues requiring particular attention are noise disruption and mobile phones. Students should
not distract others by talking during taught classes (lectures, labs, tutorials, exercises classes, etc.).
Students using the labs should be aware of others around them, and should keep any discussion to
a reasonable level. Noise disruption will result in expel from class for 2 lectures.
Mobile phones should always be switched off during taught classes, in the Library, and in any
tests or examinations. Any student whose mobile phone rings during a taught class or in the Library
may be asked to leave. Any student whose mobile phone rings during a test or examination will be
referred to concerned committee for disciplinary action. This may lead to a mark of zero being
awarded for that particular assessment, and more serious penalties for a subsequent offence.

23. Procedures for CSC114 Module


a) Coursework/Assignment Submissions:
Coursework is usually submitted electronically. When the work is required to be submitted in this
way, you have until midnight on the advertised submission date to submit the work. Please note,
you must submit the work electronically in the specified file format. When group coursework is to
be submitted electronically, a representative of each group (the group leader) should be chosen for
submission. If there is any doubt, please contact the Course Organizer BEFORE the submission
date.
Every piece of written coursework must have a correctly completed front cover sheet which you
must sign in order to declare that it is your own work. Please contact course organizer for the
template of front cover sheet. Paper submissions must be made in person to the specified person
during office contact hours. Do not give coursework to any other member of staff as we will not
accept responsibility for anything that is not submitted properly. Especially, do not push work under
offices doors as it is quite likely to be picked up and disposed of by the cleaning staff.
Students, who miss the coursework deadline because of extenuating circumstances, can still submit
their work (subject to the approval of course organizer). In this case the submission will be logged
as “Late Submission” and will automatically be penalized.
b) Examinations:
For the explanations, students will be assessed according to clear understanding of concepts and
correct usage of technical information in their responses. For essays and assignments, the relevance
of information and the coherence of the details would be assessed along with importance and credits
for proper examples. For practical assignments, students will be rewarded according to the proper
usage of features and tools regarding that assignment, extra credit will be given to students who
show more technical learning.
c) Penalties for Late Submission of Coursework
If you fail to submit coursework on time you will be penalized on the following scale:
20% per day will be lost from your overall mark. (For purposes of calculating penalty – each period
of up to 24 hours after the initial submission is counted as 1 day). However, this will be capped at
40% (2 days) maximum penalty. Normally you will not be allowed to submit after the cut-off date.
Saturdays and Sundays count as periods late when calculating the penalty.
d) Request for Extensions to Coursework Submission Dates
If you have any extenuating circumstances that will result in your coursework being late or you
having to miss a scheduled lab session, you must report them to the admin office 2-3 days before
the coursework deadline.
e) Extenuating Circumstances
Extenuating circumstances normally mean circumstances beyond your control (e.g. illness, death
of a close relative etc.). Losing memory sticks, computer problems or theft of laptops will not count
since you should always have backup copies elsewhere; printer problems will also not count as you
should allow enough time to get the printing done even if there are problems.
Any such claim MUST be supported by documentary evidence e.g. an original medical certificate
covering the date(s) in question, accompanied by an extenuating circumstances formal statement
by the student. Any claim will not be considered, under any circumstances, without supporting
documents.
Such an authorized absence will allow you to have an experiment rescheduled or coursework
submission date shifted by an appropriate amount. However, if the new submission date is likely to
exceed the published coursework cut-off date then you may be asked to do a different piece of work
to the other students on that course. Also, overall end-of-semester deadlines for marks cannot be
exceeded. Each case will be looked at on its individual merits.
Please note that it is your own responsibility to submit claims for extenuating circumstances and
students with extenuating circumstances cannot be given extra marks. Marks will only be given for
the work actually produced, not what might have been done if extenuating circumstances had not
arisen.
f) Private Study
In addition to the timetabled classes and labs etc., students should plan to spend at least 5-6 hours
per week on private study for this module. A variety of sources of material may be recommended:
lecture slides and/or notes (for information tailored towards the individual module concerned), text-
books (for basic, factual information), journals (for in-depth exploration of recent research trends),
and conference proceedings (for cutting-edge research in progress). Some of this scientific material
may be authored by the module teaching staff.