Course Book Data Structure 2014-2015

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

SYLLABUS @@@óäaì@ôØímóq

Data Structures and Algorithms Using JAVA óäaì@ñìbä


Dr. Harith Raad Hasan ‫ ﺣﺎﺭرﺙث ﺭرﻋﺪ ﺣﺴﻦ‬.‫ﺩد‬ @‘‹q@ói@ñbníàbà
Technical College of informatics D.B; Network; IT ‰ïÜüØ@O•@ói
Email: harith.hasan@spu.edu.iq Tel:+9647711111300 @ñ‡ä@òíî@óq
www.spu.edu.iq ‰ïÜüØ@óÜ@óäaì@ÙåïÜ
@óƒÙî@ñìbä
Oïáï÷ Op ñ‡ä@òíîóq@
@@óÙi@óî@óäaìì@ãó÷@îíïq@ì@Ùä‹@óÜ@‘bibäbà‹q@Àa‹@òóq@@ìì†@‫ﻟﻪﮫ‬
(course overview)
The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures and
algorithms. The main objective of the course is to teach the students how to select and design data structures and algorithms that are appropriate for
problems that they might encounter. This course is also about showing the correctness of algorithms and studying their computational complexities.
This course offers the students a mixture of theoretical knowledge and practical experience.

In addition, this course introduces some basic data structures (arrays, linked lists, stacks, queues and tree) and algorithms (various sorting
algorithms, and algorithms for operations on binary search trees). We will also cover recursion in this course. Although, the java programing
language will use to implement the algorithms.
‫ﺑﻪﮫ ﺩدﻭوﻭوﺳﻲˇ ﭘﻩه ﺭرﻩهﮕﺭرﺍاﻑف ﺩدﻩه ﺳﺘﻨﻴﯿﺸﺎﻧﻲ ﭘﻩه ﻳﯾﺎﻣﻪﮫ ﮔﺭرﻧﻜﻪﮫ ﻛﺎﻧﻲ ﻭوﺍاﻧﻪﮫ ﻛﻪﮫ ﺑﻜﻪﮫ ﻭو ﺋﻪﮫ ﻭو ﺧﺎﻻˇﻧﻪﮫ ﻱي ﻛﻪﮫ ﭘﻳﯾﻮﺳﺘﻪﮫ ﻗﻮﺗﺎﺑﻲ ﺧﻮﻳﯾﻨﺪﻛﺎﺭر ﻟﻪﮫ ﻛﺎﺗﻲ ﻛﻮˇﺗﺎﻳﯾﻲ ﺋﻪﮫ‬
‫ﻭوﻭوﺍاﻧﻪﮫ ﻳﯾﻪﮫ ﺩدﺍا ﻓﻴﯿﺮﻳﯾﺎﻥن ﺑﺒﻲˇ ﺩدﻳﯾﺎﺭرﻳﯾﺎﻥن ﺑﻜﺔ‬
(Course objective)
The objective of this course can be listed in below:

Ø To become a sophisticated programmer.

Ø To implement algorithms and data structures in Java.

Ø To design large object-oriented programs that are easy to modify.

Ø To understand and prove some properties of data structures and algorithms.

Ø To learn the relative merits of a variety of data structures and algorithms.

(‫ﺳﻪﮫ ﺭرﭽﺍاﻭوﻩه ﮔﺭرﻧﻜﻪﮫ ﻛﺎﻧﻲ ﺋﻪﮫ ﻭوﻭوﺍاﻧﻪﮫ ﻳﯾﻪﮫ )ﺑﻮˇﻫﮬﮪھﻪﮫ ﻣﻮﻭو ﺑﺎﺑﻪﮫ ﺗﻪﮫ ﻛﺎﻥن‬
course reading list and references(for all topic)
(‫ﮔﻭوﭬﺍاﺭرﻭوﺭرﻳﯾﻔﻴﯿﻮﻭو)ﺋﻴﯿﻨﺘﻪﮫ ﺭرﻧﻴﯿﺖ‬
‫ﺳﻪﮫ ﺭرﭽﺍاﻭوﻩه ﻱي ﺳﻮﻭوﺩد ﺑﻪﮫ ﺧﺶ‬
‫ﺳﻪﮫ ﺭرﭽﺍاﻭوﻩه ﺑﻨﻪﮫ ﺭرﻩه ﺗﻴﯿﻪﮫ ﻛﺎﻥن‬
‫ﮔﯚﭬﺎﺭر ﻭو ﺋﻴﯿﻨﺘﺮﻧێﺖ‬ ‫ﺳﻪﮫﺭرﭼﺎﻭوەﯼی ﺳﻮﻭوﺩد ﺑﻪﮫﺧﺶ‬ ‫ﺳﻪﮫﺭرﭼﺎﻭوە ﺑﻨﻪﮫڕەﺗﻴﯿﻪﮫﮐﺎﻥن‬

ü Data  Structures  and  Algorithms  in  Java  


http://www.amazon.com/Data-Structures- (6th  edition)  by  Michael  
Algorithms-Michael-Goodrich/dp/1118771338 T.  Goodrich  and  Roberto  Tamasia  (2014).  

https://www.google.iq/url?sa=t&rct=j&q=&esrc=s
&source=web&cd=1&cad=rja&uact=8&ved=0CB ü Data  Structures  and  Algorithms  in  Java  
0QFjAA&url=http%3A%2F%2Fso-i-think-i- (4th  edition)  by  Michael  
created-my-first-online- T.  Goodrich  and  Roberto  Tamasia  (2010).  
project.googlecode.com%2Ffiles%2FData%2520St
ructures%2520and%2520Algorithms%2520in%25
20Java%2520Fourth%2520Edition.pdf&ei=Vc5M
VJXQAuL-
ygOs0YKYDg&usg=AFQjCNG8tYv_o3Roi6OaC
klhy1vwgvMIMQ&sig2=98TN4FBOn8zhN-
Cgd4jMrQ&bvm=bv.77880786,d.bGQ
   
https://robot.bolink.org/ebooks/Data%20Structures ü Data  Structures  with  Java  Second  Edition  
%20with%20Java%202e%20By%20John%20R%2 by  John  R.  Hubbard,  Schaum’s  Outline  
0hubbard,%20Schaum's%20Outline%20Series.pdf Series  (2007).  
(Theory) ‫ﺑﺎﺑﻪﮫ ﺗﻪﮫ ﻛﺎﻧﻲ ﻭوﺍاﻧﻪﮫ ﻱي‬

‫ﻧﺎﻭوﻩه ﺭرﯙۆﻛﻲ ﺯزﺍاﻧﺴﺘﻲ‬ ‫ﺋﺎﻣﺎﻧﺞ ﻟﻪﮫ ﻭوﺑﺎﺑﻪﮫ ﺗﻪﮫ‬ ‫ﺑﺎﺑﻪﮫ ﺗﻪﮫ ﻛﺎﻥن‬ ‫ﻫﮬﮪھﻪﮫ ﻓﺘﻪﮫ‬
‫ﺑﺎﺑﻪﮫ ﺗﻪﮫ ﻛﻪﮫ‬
Overview of Programming Language (JAVA) 1
Ø Introduction
Ø Classes, Objects
Ø Types of Data
Ø Examples

Object-Oriented Programming 2
Ø What is the (OOP)?
Ø What is this Object? (Example)
Ø Thinking Cap Implementation  (use Classes and
Packages)
Ø Using the Thinking Cap (Writing a Java Program)
Ø Questions and Answers.

Arrays 3,4
Ø Properties of Arrays
Ø Duplicating an Array
Ø The java.util.Arrays Class
Ø The Sequential Search Algorithm
Ø The Binary Search Algorithm
Linked Lists 5,6,7
Ø Maintaining an Ordered Array
Ø Linked Nodes
Ø Inserting an Element into a Linked List
Ø Inserting at the Front of the List
Ø Deleting from a Sorted Linked List

Recursion 8
Ø Linear Recursion
Ø Binary Recursion
Ø Multiple Recursions.
Stacks 9, 10,
Ø The Stack Abstract Data Type 11
Ø A Simple Array-Based Stack Implementation
Ø Implementing a Stack with a Generic Linked List
Ø Reversing an Array Using a Stack
12,13,
Queues 14,15,
16
Ø The Queue Abstract Data Type
Ø A Simple Array-Based Queue Implementation
Ø Implementing a Queue with a Generic Linked List
Ø Round Robin Schedulers
Ø The Josephus Problem
Ø Double-Ended Queues
Ø The Deque Abstract Data Type
Ø Implementing a Deque
Trees 17,18,
Ø General Trees 19,20,
Ø Tree Definitions and Properties 21,22
Ø The Tree Abstract Data Type
Ø Implementing a Tree
Ø Tree Traversal Algorithms
Ø Depth and Height
Ø Preorder Traversal
Ø Post order Traversal
Ø Binary Trees
Ø The Binary Tree ADT
Ø A Binary Tree Interface in Java
Ø Properties of Binary Trees
Ø A Linked Structure for Binary Trees
Ø An Array-List Representation of a Binary Tree
Ø Traversals of Binary Trees
   
 

23,24,
Binary Search Trees 25,26
Ø Searching Update Operations
Ø Java Implementation
Ø AVL Trees
Ø Update Operations
Ø Java Implementation
Ø Splay Trees
Ø Splaying
Ø When to Splay
 
Ø Amortized Analysis of Splaying
Ø Multi-Way Search Trees
Ø Update Operations for (2,4) Trees
  Ø Red-Black Trees
Ø Update Operations
Ø Java Implementation
Sorting 27,28,
Ø Merge-Sort 29,30
Ø Divide-and-Conquer
Ø Merging Arrays and Lists
Ø The Running Time of Merge-Sort
Ø Java Implementations of Merge-Sort
Ø Merge-Sort and Recurrence Equations
Ø Quick-Sort
Ø Randomized Quick-Sort
Ø In-Place Quick-Sort
Ø A Lower Bound on Sorting
Ø Bucket-Sort and Radix-Sort
Ø Bucket-Sort
Ø Radix-Sort
Ø Comparison of Sorting Algorithms

Note: All the lectures in the Theory will apply in the Practice

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy