0% found this document useful (0 votes)
199 views

Fall 2019 - CS-241 - Data Structures and Algorithms - Course Outline

This 3 sentence summary provides the essential information about the course document: The document outlines a Data Structures and Algorithms course that is a core 3 credit hour undergraduate course taught on campus in the fall semester, covers topics such as complexity analysis, common data structures like lists, stacks, queues, trees and graphs as well as their implementations and applications, and includes assessments like quizzes, projects, a midterm and final exam worth various percentages of the overall grade.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
199 views

Fall 2019 - CS-241 - Data Structures and Algorithms - Course Outline

This 3 sentence summary provides the essential information about the course document: The document outlines a Data Structures and Algorithms course that is a core 3 credit hour undergraduate course taught on campus in the fall semester, covers topics such as complexity analysis, common data structures like lists, stacks, queues, trees and graphs as well as their implementations and applications, and includes assessments like quizzes, projects, a midterm and final exam worth various percentages of the overall grade.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

COURSE OUTLINE

SCHOOL OF ENGINEERING AND APPLIED


SCIENCES

Data Structures and Algorithms (CS – 241)

BS Computer Science / BS Software Engineering

Fall 2019 Semester

Faculty: School of Engineering and Applied Sciences


Credit hours: 3
Course level: Undergraduate degree program
Campus/Location/Instruction Mode: GIFT University/On Campus/In Person
Course Instructors: Kamal Ashraf
[email protected]
Consultation hours: TBD
Pre-requisite: CS-201/ CS-239: Object-oriented Programming
Timing As per the timetable
Core/Elective Core
This document was last updated: October 27, 2019 v1.2

BRIEF COURSE DESCRIPTION


This course focuses on the techniques for designing, building, and analysing computer programs that
deal with collections of data. The course addresses techniques for programming with collections of
data, and the data structures and algorithms that are needed to implement these collections. The course
expands students' programming skills and provides an understanding of the principles of data
abstraction, algorithm design, and a high-level overview of the analysis of algorithms that are
fundamental to computer science.

Page 1 of 5
COURSE OBJECTIVES
The Main course objectives as follows:
 To introduce the basic theory of complexity and data structures as basic building blocks.
 To develop the skills to analyse time requirements for a data structure and associated
algorithms.
 To prepare the students to pick the right data structure for a given problem.

LEARNING OUTCOMES
By the end of this course, we aim to impart the following skillset to the students:
 A thorough understanding of the role of data structures and algorithms in problem solving.
 Ability to analyse, design, and select the correct data structure as per the given problem.
 A knowhow about the usage of collections and iterators.

TEXTS AND SUPPORTING MATERIALS


Prescribed Text and Readings:
 Frank M. Carrano, Timothy H. Henry, Data Structures and Abstractions with Java, 4th
Edition, Pearson 2015.

Reference Text:
 John Lewis, Joseph Chase, Java Software Structures: Designing and Using Data Structures,
4th Edition, Pearson 2014.

ASSESSMENTS AND GRADING


There will be 30 lecture sessions during the semester. The assessment details are as under:

Item Assessment Task Weightage


1. Quizzes 15%
2. Project 20%
3. Midterm Exam 25%
4. Final Exam 40%

 Please note that retake of any missed assessment will not be permitted.

Pass percentage: 40%


Students must complete each component of the assessment to the satisfaction of the course instructor
and achieve an overall mark of 40% to pass the course. All components of the above assessment are
compulsory and must be completed to obtain a pass grade.

Page 2 of 5
TENTATIVE LECTURE CONTENTS
Lecture Chapter Contents Assessments
 Course Introduction
 Revision:
o Designing classes
1-2
T: Prelude o Methods
(Designing Classes) o Interfaces
o Generics
 Generics (Generic Functions and Generic
Handouts / Web Classes) Quiz-1
3-4
References  Exceptions
 The Comparator Interface
 Analysis of Algorithms
5  Algorithm Efficiency
 Growth Functions
 Big-Oh Notation
6 R: Chp-2
 Comparing Growth Functions
 Determining Time Complexity
7  Analyzing loop execution, nested loops,
and method calls
 A simple List
 Specifying a List (An Interface)
8 T: Chp-12  Abstract Data Types (ADTs) Quiz-2
 The ADT List
 Using the ADT List
 Using an array to implement the ADT List
9 T: Chp-12, 13  Time efficiency of the array-based ADT
List implementation
 References as Links
 Managing Linked Lists
o Accessing Elements Project
10-11 R: Chp-4
o Inserting Nodes Assessment – 1
o Deleting Nodes
 Doubly Linked Lists
 Operations on a chain of linked nodes
o Adding a Node at various positions
o Removing a Node from various
positions Quiz-3
12-13 T: Chp-14
 Implementation of ADT List using a
Linked List
 Time efficiency of the linked-based ADT
List implementation
 Stacks
 The ADT Stack
T: Chp-5, 6  A Linked Implementation
14
 An array-based implementation
 Efficiency Analysis
Page 3 of 5
 Using Stacks to Solve Problems:
o Checking for Balanced Delimiters
in an Infix Expression
Project
15-16 o Infix to Postfix Expression
Assessment – 2
Conversion
o Evaluation Postfix Expressions
 The Program Stack
17-18 MIDTERM EXAMINATION
 The ADT Queue
 Problem Solved: Waiting Line
19 T: Chp-10, 11
 A Linked Implementation of ADT Queue
 An Array-based Implementation
 Recursion
 Tracing a Recursive Method
 Stacks and Recursion
20 T: Chp-7
 Iteration vs. Recursion
 Factorial Method using Iteration and
Recursion
 Iterators Quiz-4
T: Chp-15, Java  The Interface Iterator
21  ADT List Iterators
Interlude-5 Project
Assessment – 3
 Note on Linear Search and Efficiency
 Note on Binary Search and Efficiency
R: Chp-9  Note on Selection Sort and Efficiency
22 T: Chp-18, 9  Quicksort
 Median-of-Three Pivot Selection
 Efficiency of Quicksort
 Trees
23 R: Chp-10  Binary Trees Quiz-5
 Tree Traversals
 Binary Search Tree (BST)
24  The ADT BST
R: Chp-11  ADT BST Operations
Project
25-26  Balanced BSTs: AVL Trees
Assessment – 4
 Graphs
 Applications
 Paths, Loops, Spanning Trees
27-28 R: Chp-15  Directed vs. Undirected Graphs Quiz-6
 Graph Representations: using Arrays and
Lists
 Graph Traversals: BFS and DFS
 Hashing
 Applications
29-30 T: Chp-22
 Hash Functions
 Collisions and Resolutions
FINAL EXAMINATION
Page 4 of 5
 LEGEND: Q = Quiz, A = Assignment, T = Textbook, R = Reference Book

Please note: This is a proposed schedule only and may be varied at the discretion of the instructor to
give a greater or lesser degree of emphasis to particular topics.

ATTENDANCE POLICY: 80% (min)


Coming Late to Lectures: The instructor reserves the right not to allow late comers to attend the
lectures.

ACADEMIC DISHONESTY / PLAGIARISM


We have a zero-tolerance policy for such cases. It may result into an F grade in the course, and
possibly more severe penalties. The instructors also reserve the right to use automated tools to check
for plagiarism.

CLASS DISCIPLINE

Participation in, and contribution to, class discussions will positively help you in understanding and
applying the concepts learned during the lectures. Raise your hand if you have any question. Making
any kind of disruption (e.g. side talks, continually come to class late, continually leaving class early,
etc.) in the class is strongly discouraged and may result in the removal of students from the lectures.

COURSE COMMUNICATION

All communication in this course will be done via emails on your official student email
accounts only, and you are expected to regularly monitor your email for any important
announcements during the course.

MOBILE PHONE USAGE

Usage of mobile phone is strictly prohibited in the class room. In case of mobile phone usage, it will
be dealt according to university policies. Also, placing the mobile phones at desks during lectures
and lab sessions is strongly discouraged.

Page 5 of 5

You might also like