1. Course Title (Course Code) Data Structure and Algorithms (2291) 2. Instructor. Muhammad Wannous, Ph.D. 3. Term. Spring Outline and Objectives

Similar documents
Basic academic skills (1) (2) (4) Specialized knowledge and literacy (3) Ability to continually improve own strengths Problem setting (4) Hypothesis

DATA STRUCTURES USING C

AP Computer Science AB Syllabus 1

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Questions 1 through 25 are worth 2 points each. Choose one best answer for each.

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s

Converting a Number from Decimal to Binary

Binary Heap Algorithms

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

Java Software Structures

An Introduction to Programming and Computer Science

Data Structure [Question Bank]

Data Structures. Level 6 C Module Descriptor

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

DIVISION OF INFORMATION TECHNOLOGY PROGRAMS AND SYSTEMS SUPPORT FALL 2015 / Spring 2016

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

10CS35: Data Structures Using C

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

COWLEY COLLEGE & Area Vocational Technical School

LeMoyne-Owen College Division of Natural and Mathematical Sciences COMPUTER ALGORITHMS, COSI 335 Fall Syllabus

Data storage Tree indexes

Lecture 1: Data Storage & Index

BCS2B02: OOP Concepts and Data Structures Using C++

Introduction to Programming System Design. CSCI 455x (4 Units)

Heaps & Priority Queues in the C++ STL 2-3 Trees

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. Course Curriculum. DATA STRUCTURES (Code: )

Abstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types

1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

FOPR-I1O23 - Fundamentals of Programming

COURSE OUTLINE. Prerequisites: Course Description:

Lecture 2: Data Structures Steven Skiena. skiena

CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING LESSON PLAN

Exam study sheet for CS2711. List of topics

Data Structures and Data Manipulation

CS 300 Data Structures Syllabus - Fall 2014

The Tower of Hanoi. Recursion Solution. Recursive Function. Time Complexity. Recursive Thinking. Why Recursion? n! = n* (n-1)!

CSC148 Lecture 8. Algorithm Analysis Binary Search Sorting

External Sorting. Chapter 13. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Sample Questions Csci 1112 A. Bellaachia

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 13-1

COMPUTER SCIENCE (5651) Test at a Glance

Operating Systems CSE 410, Spring File Management. Stephen Wagner Michigan State University

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

To My Parents -Laxmi and Modaiah. To My Family Members. To My Friends. To IIT Bombay. To All Hard Workers

CS 525 Advanced Database Organization - Spring 2013 Mon + Wed 3:15-4:30 PM, Room: Wishnick Hall 113

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

Binary Search Trees CMPSC 122

1. Course Title(Course Code) Project Management Special Experiments(2238) 2. Instructor Samiullah PARACHA. 3. Term Spring 1

External Sorting. Why Sort? 2-Way Sort: Requires 3 Buffers. Chapter 13

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

02-201: Programming for Scientists

CS711008Z Algorithm Design and Analysis

How To Teach C++ Data Structure Programming

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Basic Programming and PC Skills: Basic Programming and PC Skills:

Ordered Lists and Binary Trees

Data Structures and Algorithm Analysis (CSC317) Intro/Review of Data Structures Focus on dynamic sets

Please consult the Department of Engineering about the Computer Engineering Emphasis.

Chapter 13 Disk Storage, Basic File Structures, and Hashing.

Chapter 13. Disk Storage, Basic File Structures, and Hashing

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

1 FCS Project Submission System

Department of Computer Science Academic Year Assessment Report

SQL Query Evaluation. Winter Lecture 23

University of Pune Revised Structure for the B. Sc. (Computer Science) Course (Second Year to be implemented from Academic Year )

2) What is the structure of an organization? Explain how IT support at different organizational levels.

Algorithms and Data Structures

Syllabus for Computer Science. Proposed scheme for B.Sc Programme under Choice Based Credit System

Summit Public Schools Summit, New Jersey Grade Level / Content Area: Mathematics Length of Course: 1 Academic Year Curriculum: AP Computer Science A

CS Matters in Maryland CS Principles Course

Physical Data Organization

Big Data and Scripting. Part 4: Memory Hierarchies

Course Descriptions. preparation.

CCA CYBER SECURITY TRACK

1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)

Computer. Course Description

Chapter 13: Query Processing. Basic Steps in Query Processing

Assessment for Master s Degree Program Fall Spring 2011 Computer Science Dept. Texas A&M University - Commerce

Introduction to Algorithms March 10, 2004 Massachusetts Institute of Technology Professors Erik Demaine and Shafi Goldwasser Quiz 1.

Persistent Binary Search Trees

Algorithms and Data Structures Exercise for the Final Exam (17 June 2014) Stack, Queue, Lists, Trees, Heap

MAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push)

Tables so far. set() get() delete() BST Average O(lg n) O(lg n) O(lg n) Worst O(n) O(n) O(n) RB Tree Average O(lg n) O(lg n) O(lg n)

Computer Science 210: Data Structures. Introduction

CS5310 Algorithms 3 credit hours 2 hours lecture and 2 hours recitation every week

CSE 562 Database Systems

Chapter 13. Chapter Outline. Disk Storage, Basic File Structures, and Hashing

File Management. Chapter 12

Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Computer Science. General Education Students must complete the requirements shown in the General Education Requirements section of this catalog.

CS135 Computer Science I Spring 2015

Data Structures and Algorithms(5)

Data Structures and Algorithms

Transcription:

1. Course Title (Course Code) Data Structure and Algorithms (2291) 2. Instructor Muhammad Wannous, Ph.D. 3. Term Spring 1 4. Outline and Objectives Good organization of information (Data Structures) and logic flow (algorithms) ensures creating efficient programs. On the other hand, mastering the basic principles of clear design is very important for every programmer. Computer science programs consider that gaining good programming skills starts with principles of fundamental software engineering. Then, once a programmer has learned the principles of clear program design and implementation, the next step is to study the effects of data organization and algorithms on program efficiency. This course serves as an introduction to Data Structures and Algorithms. It describes many techniques for representing data and famous algorithms for solving common problems. The students will see: That each data structure and each algorithm has costs and benefits. That it is necessary to balance costs and benefits. Many common practices to avoid reinventing the wheel. That data structures follow needs. 5. Goals (Attainment Targets) By the end of this course, students will be able to: (1). Describe different data structures. (2). Choose the data structures that model the information in a problem. (3). Explain tradeoffs among alternative data structure implementations or combinations. (4). Analyze common algorithms for searching and sorting. (5). Apply and know when to use standard algorithms. (6). Design, implement, and test programs using a variety of data structures. 111

6. Correspondence relationship between Educational goals and Course goals Educational goals Course goals Basic academic skills (1) High level ICT skill Specialized knowledge and literacy (1), (4) Ability to continually improve own strengths (3), (5) Problem setting (2) Hypothesis (2), (5) Ability to discover and planning resolve the problem in Hypothesis (6) society testing Human skill Practice (2), (5) (Tankyu skill) Ability to step (3), (5) forward Fundamental Ability to think (2), (5) Competencies for Working through Persons Ability to work (6) in a team Professional ethics (1) 7. Course Requirements Programming skill (especially in an object-oriented programming language) is necessary for completing the practical examples. A strong base in Math is also required for analyzing the performance of algorithms. 8. Textbooks For this course, a set of lecture slides, handouts, and reports will be distributed in timely manner through Moodle. 9. Reference Books The following book can enhance the experience of the students: Data Structures and Algorithm Analysis Edition 3.2 (Java Version) Free download (http://www.cs.vt.edu/ shaffer/book.html.) 10. Evaluation Goals Evaluation method & point term-end exam quiz report presentation deliverable other (1) (2) (3) (4) (5) (6) Allocation 75 25 112

Course Schedule (Notice) This schedule is a tentative plan; there might be changes, additions, and revisions etc. at the time of delivering the course. Lesson 1: Data structures and Algorithms (Lecture, 90 minutes) This session includes these topics: 1. Orientation of the course and the syllabus. 2. Description of Data structures. 3. Abstract Data Types and Structures. 4. Problems, algorithms and Programs. Lesson 2: Fundamentals of Data Structures [1] (Lecture, lab work, 90 minutes) 1. Lists A) Array-Based List Implementation. B) Linked Lists. C) Comparison of List Implementations. D) Element Implementations. E) Doubly Linked Lists. And analyze a sample code in Java on Lists. Lesson 3: Fundamentals of Data Structures [2] (Lecture, lab work, 90 minutes) 1. Stacks A) Array-Based Stacks. B) Linked Stacks. C) Comparison of Array-Based and Linked Stacks. D) Implementing Recursion. And analyze a sample code in Java on Stacks. Lesson 4: Fundamentals of Data Structures [3] (Lecture, lab work, 90 minutes) 1. Queues A) Array-Based Queues. B) Linked Queues. C) Comparison of Array-Based and Linked Queues. 2. Dictionaries. And analyze a sample code in Java on Queues. Lesson 5: Binary Trees [1] (Lecture, 90 minutes) 1. Binary Trees. A) Definitions and Properties. B) Binary Tree Traversals. Lesson 6: Binary Trees [2] (Lecture, lab work, 90 minutes) 1. Binary Trees. A) Binary Tree Node Implementations. B) Binary Search Trees. C) Heaps and Priority Queues And analyze a sample code in Java on Binary Trees. 113

Lesson 7: Non-Binary Trees (Lecture, lab work, 90 minutes) 1. Non-Binary Trees. D) General Tree Definitions and Terminology. E) General Tree Traversals. F) The Parent Pointer Implementation. G) General Tree Implementations. H) K-ary Trees. I) Sequential Tree Implementations. And analyze a sample code in Java on Non-Binary Trees. Lesson 8: Review (lecture, discussion, 90 minutes) In this session, we go through the main points we have studied so far in order to confirm what we have learnt and answer any questions about the concepts of Cloud Computing. Lesson 9: Sorting and Searching [1] (Lecture, 90 minutes) 1. Sorting Terminology and Notation 2. Three (n 2 ) Sorting Algorithms A) Insertion Sort B) Bubble Sort C) Selection Sort 3. The Cost of Exchange Sorting Lesson 10: Sorting and Searching [2] (Lecture, lab work 90 minutes) 1. Shellsort 2. Mergesort 3. Quicksort 4. Heapsort And analyze a sample code in Java on Sorting and Searching. Lesson 11: File Processing and External Sorting [1] (Lecture, 90 minutes) 1. Primary versus Secondary Storage. 2. Disk Drives A) Disk Drive Architecture B) Disk Access Costs 3. Buffers and Buffer Pools. 4. The Programmer s View of Files. Lesson 12: File Processing and External Sorting [2] (Lecture, lab work, 90 minutes) 1. External Sorting. A) Simple Approaches to External Sorting. B) Replacement Selection. C) Multiway Merging. And analyze a sample code in Java on Sorting and Searching. Lesson 13: Searching [1] (Lecture, 90 minutes) 1. Searching Unsorted and Sorted Arrays. A) Self-Organizing Lists 307 B) Bit Vectors for Representing Sets] 114

Lesson 14: Searching [2] (Lecture, lab work, 90 minutes) 1. Hashing A) Hash Functions. B) Open Hashing. C) Closed Hashing. D) Analysis of Closed Hashing. E) Deletion. And analyze a sample code in Java on Hashing. Lesson 15 Conclusion (discussion, 90 minutes) This is the final session in which we try to recall the most important issues and concepts we learned in this course. 115