Online course content and coordination:
To be announced.
To be Announced
Will be announced with course of time
Must have Good OOP Concepts
Good programming skills
Familiar with programming using MFC
Data Structures and Algorithms
By A. V. Aho, J. E. Hopcroft, J. D. Ullman
Introductions to algorithms by Thomas H.Cormen,
Leiserson, Rivest and Stein.
Data Structures Using C and C++
By Y. Langsam, M. J. Augenstein, A. M. Tenenbaum
Schaum's Outline Series, Theory and problems of Data
Structures By Seymour Lipschutz
Some topics will be covered from other books. Material will
be provided for these topics.
Assignments 15 %
Quizzes 15 %
Projects 10 %
Sessionals 20 %
Final 40 %
Total 100 %
Deadlines are always final
Submission guidelines must be followed.
Submit compressed files (rar,zip).
Name your submission folder in the format
No grouping is allowed in assignments.
To cater for emergencies however,
everyone gets 3 late days.
The concept is that you can use these at
your discretion any time during this course
for regular assignments (not for project).
Will be made very often in the class or lab
with an opportunity for class discussion of
Answers for some problems can be
discussed in class and others will be your
You should do all exercises by the stipulated
It is important that you do the homework.
Many (but not all) of the exam questions are
similar to those assigned in the homework.
Exact dates will be announced sometimes for the
quizzes. Mostly there will be snap quiz.
If quiz are missed due to illness, I must have a doctor
or health center excuse explaining why you could not
take the exam on that date.
Makeup quiz, available only with pre-notification and
prearrangement are often harder than the original.
Excuses other than the above are not acceptable.
The exams are prescheduled by the department as
Policy Regarding Exams
If you feel that you have a reasonable excuse for
missing your quizzes or exams, then the solution
doesn’t lie with me.
Contact the academic office and let them decide
the fate for your missed opportunities.
The decision by academic office will be given
Helping, Copying, Plagiarism
We want you to learn.
We want you to talk with each other, learn together, and
help each other, But
Plagiarism is unacceptable!
(plagiarism = presenting other people’s work as your own)
If you got help for your assignment from anyone but the
lecturer or the TA,
STATE IT ON THE ASSIGNMENT !
If you copied bits of code from anywhere but
the lecture slides or the textbook
STATE IT ON THE ASSIGNMENT !
(anything more than one line)
Read your email and messages on the
course yahoo group regularly
Check notice board sub folder in course
Start working on projects/homeworks from
Remain attentive during the class.
Questions are always welcome.
I will ask questions very often
Simple Data Types and Abstract Data Types
Arrays and Lists
Elementary Data Structures
Stack and Queues
Recursion and Time Complexity of Recursive Algorithms
Trees and Graphs
What is a Computer Program?
To exactly know, what is data structure?
We must know:
What is a computer program?
Data structure for storing data of students:-
Operations efficiency (Time required to complete
Frequency of usage of above operations
What data structure to use?
Data structures let the input and output be represented in a way
that can be handled efficiently and effectively.
What’s the difference
Different types of values
No structure – just a collection of values
Linear structure of values – the order matters
Set of key-value pairs
Different access disciplines
get, put, remove anywhere
get, put, remove only at the ends, or only at the top, or …
get, put, remove by position, or by value, or by key, or …
An algorithm is a definite procedure for solving a
problem in finite number of steps
Algorithm is a well defined computational
procedure that takes some value (s) as input,
and produces some value (s) as output.
Algorithm is finite number of computational
statements that transform input into the output
Run in less time
Consume less memory
But computational resources (time
complexity) is usually more important
In examining algorithm efficiency we must
understand the idea of complexity
Complexity is the consumptions of
Most important aspect of complexity are
When memory was expensive we focused on
making programs as space efficient as possible
and developed schemes to make memory appear
larger than it really was (virtual memory and
memory paging schemes)
Space complexity is still important in the field of
embedded computing (hand held computer
based equipment like cell phones, palm devices,
Is the algorithm “fast enough” for my
How much longer will the algorithm take if
I increase the amount of data it must
Given a set of algorithms that accomplish
the same thing, which is the right one to
A measure of the amount of resources
consumed in solving a problem of size n
Benchmarking: implement algorithm,
run with some specific input and measure time taken
better for comparing performance of processors than for
comparing performance of algorithms
Big Oh (asymptotic analysis)
associates n, the problem size,
with t, the processing time required to solve the