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)
|
-
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
-
Conditional Statements
-
Loops and Switches
-
Continue, Break and Return
-
Object oriented programming concepts
-
Object
-
Java classes: constructors, destructors
-
Overloading and Overriding methods
-
Polymorphism & inheritances.
-
Abstract Classes
-
Interfaces
-
String Class
-
Introduction to Graphical user Interface (GUI) and Applet
-
Basics of Input Output Stream
---------------------------------- First Exam ----------------------------------------------
-
Thread
-
Recursion
-
Single Link List and Double Link List
-
Stacks
-
Definition and operations.
-
Stack specifications.
-
Implementation of stack as an array.
-
Implementation of stack as a linked list.
-
Queues
-
Definition and operations.
-
Implementations of queues.
-
Circular implementation of queues
-
Linked Queues.
--------------------------------- Second Exam -------------------------------------------------
-
Simple Trees
-
General trees
-
Binary trees.
-
Binary search trees.
-
Implementation of trees.
-
Simple Graphs
-
Definitions and examples.
-
Undirected graphs.
-
Directed graphs.
-
Computer representations.
-
Graph Traversal.
-
Shortest Paths
-
Minimum Spanning Trees.
-
Sorting and Searching:
-
Introduction and Notation
-
Binary Search
-
Sequential Search
-
Insertion sort
-
Selection sort
-
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
-
Conditional Statements
-
Loops and Switches
-
Continue, Break and Return
|
3+ 4+5
|
Object oriented programming concepts
-
Object
-
Java classes: constructors, destructors
-
Overloading and Overriding methods
-
Polymorphism & inheritances.
-
Abstract Classes
-
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
|