Advanced Programming - Data structure using Java

haya's picture
Course Code: 
66411
Course Outline: 

An Najah National University

Faculty of Engineering

Department of Computer Engineering

 

 

Course title and number

Advanced Programming  66411 –Data structure using Java

 

Instructor(s) name(s)

Eng. Haya Sammaneh

 

Contact information

(Email, Office location, other information)

hayasam@najah.edu

Faculty of Engineering – Third Floor .

Office number :1410

Semester and academic year

Second Semester 2011

Compulsory /Elective

Compulsory Course

Prerequisites

Computer Programming C++  ( 66111)

 

Course Contents(description)

  1. Introduction  in Java
  2. Java life cycle  
  3. Structure of an Application
  4. Syntax & Grammar
  5. Data Types
  6. Literal Constants
  7. Variables and Arrays
  8. Operators and Expressions
  9. Conditions,Statements,Blocks
  10. Control Flow
  11. Conditional Statements
  12. Loops and Switches
  13. Continue, Break and Return

 

  1. Object oriented programming concepts
  2. Object
  3. Java classes: constructors, destructors
  4. Overloading and Overriding methods
  5. Polymorphism & inheritances.
  6. Abstract Classes
  7. Interfaces
  8. String Class 
  9. Introduction to Graphical user Interface (GUI) and Applet
  10. Basics of Input Output Stream

----------------------------------   First Exam ----------------------------------------------

  1. Thread
  2. Recursion
  3. Single Link List and Double Link List 
  4. Stacks
  5. Definition and operations.
  6. Stack specifications.
  7. Implementation of stack as an array.
  8. Implementation of stack as a linked list.

 

  1. Queues
  2. Definition and operations.
  3. Implementations of queues.
  4. Circular implementation of queues
  5. Linked Queues.

 

--------------------------------- Second Exam -------------------------------------------------

 

 

  1. Simple Trees
  2. General trees
  3. Binary trees.
  4. Binary search trees.
  5. Implementation of trees.

 

 

  1. Simple Graphs
  2. Definitions and examples.
  3. Undirected graphs.
  4. Directed graphs.
  5. Computer representations.
  6. Graph Traversal.
  7. Shortest Paths
  8. Minimum Spanning Trees.

 

 

  1. Sorting and Searching:   
  2. Introduction and Notation
  3.  Binary Search
  4.  Sequential Search
  5.  Insertion sort
  6. Selection sort
  7. Quick sort.

 

Course Objectives

  • To understand the fundamentals of data structure that is the main key in the development of efficient algorithms.
  • To understand the fundamentals of structuring : sorting, searching, recursion, lists, stacks, queues, trees, graphs, tables

 

Intended Learning Outcomes and Competences

  • Fundamental knowledge in basic data structures(arrays, stacks, queues, linked lists, trees, graphs, sorting, searching, recursion and Tables)
  • The ability to write computer programs and using computing tools and packages necessary.
  • The ability to apply programming built-in and user defined functions.
  • The ability to develop programs using fundamental concepts of structured programming.
  • The ability to use software development methodology in solving programs’ problems.
  • The ability to run, test and debug programs.
  • The ability to implement data structures and algorithms using existing libraries.
  • The ability to identify all the steps of the software life cycle and perform problem analysis then select the most appropriate data structures and algorithms for a given problem, and can motivate their decision.
  • The ability to learn new programming languages and software development tools on their own.

Textbook and References (online resources)

  • Java JDK6 documentations. http://java.sun.com/javase
  • Java How To Program by Deitel & Deitel. 7th Edition.  Prentice Hall. 
  • Fundamentals of JAVA AP*  By Lambert and Osborne

 

 

 

 

Assignment Criteria

Activity

Percent(%)

Midterm Exams

 40 (First + Second)

Homework and quizzes

20

Other criteria(Research, Discussion. etc)

-

Final Exam

40

Week

 

Subject

1 , 2

Introduction  in Java

  • Java life cycle  
  • Structure of an Application
  • Syntax & Grammar
  • Data Types
  • Literal Constants
  • Variables and Arrays
  • Operators and Expressions
  • Conditions, Statements, Blocks

Control Flow

  1. Conditional Statements
  2. Loops and Switches
  3. Continue, Break and Return

 

3+ 4+5

Object oriented programming concepts

  1. Object
  2. Java classes: constructors, destructors
  3. Overloading and Overriding methods
  4. Polymorphism & inheritances.
  5. Abstract Classes
  6. Interfaces

String Class 

 

6

Introduction to Graphical user Interface (GUI) and Applet

7

Basics of Input Output Stream

8

Thread

9

Recursion

10

Single Link List and Double Link List 

11

Stacks

12

Queues

13

Simple Trees

14

Simple Graphs

15

Sorting and Searching