Third Stage

Courses

Semester One

Java Technology
Course Code : C315
Units : 3
Lecturer : Saman Alias Barakat

Description :

Course overview:

This course introduces Java technology and its visual programming concepts, where Java technology is designed to support applications that will be deployed into heterogeneous environments where hardware and software from two or more manufacturers are used. In such environments, applications must be capable of executing on a variety of hardware architectures. Within this variety of hardware platforms, applications must execute atop a variety of operating systems and interoperate with multiple programming language interfaces. To accommodate the diversity of operating environments, the Java Compiler generates bytecodes (an architecture neutral intermediate format designed to transport code efficiently to multiple hardware and software platforms). The interpreted nature of Java technology solves both the binary distribution problem and the version problem; the same Java byte codes will run on any platform.

Course objective:

By the end of this course, students should be able to:

o   Learn visual Java concepts.

o   Write GUI based Applications

o   Leverage the rich Application Programming Interface (API) of Java to simplify software development process.

o   Update themselves with advance frameworks of java.

The Topics:

Unit – 1Introduction

Software development steps, Java technology, Java is platform-independent, Write Once Run Anywhere (WORA), Java is an open-source, Uses of Java, Java Development Kit (JDK), NetBeans Integrated Development Environment (IDE), Installing JDK & NetBeans IDE, Compiling and running of Java programs using NetBeans IDE.

Unit – 2Fundamentals

Data types and sizes, Declaring and assigning of variables, Scope and life time of variables, Operators (arithmetic, relational, logical, increment, decrement, conditional, and bit-wise operators), Type conversion and casting, Input-output statements, Control statements (selection, iteration, and jump statements), One dimensional & two dimensional arrays, Java programs covering all the above aspects.

Unit – 3Visual Programming

User interfaces: Command-Line Interface (CLI), Graphical User Interface (GUI), Voice User Interface (VUI), Zoomable User Interface (ZUI), Activity User Interface (AUI), Characteristics of successful user interfaces, Java Swing controls: JLabel, JTextField,JPasswordField, JTextArea, JTextPane, JButton, JCheckBox, JRadioButton,…, Java Swing containers: JPanel, JTabbedPane,…,Java Swing menus: JMenuBar, JMenu, JMenuItem,..., File processing: Creating, opening, reading, writing, ,…, Java programs covering all the above aspects.

Unit – 4SQLite Database

Database concepts, SQLite DMS, Installing SQLite, Creating and accessing SQLite database, Java programs covering all the above aspects.

Course Reading List and References‌:

1.      Key references:

o   Paul Deitel and Harvey Deitel, “Java: How to Program”, 10th Edition,  Prentice Hall, 2014

o   Kenneth Ganfield, Alyona Stashkova Jo Lawless, Dawn Phillips, Catherine Pickersgill, and Scott Fisher, “Developing Applications with NetBeans IDE Release 8.0”, 1st Edition, Oracle, 2014

2.      Useful references:

o   David Salter, “Mastering NetBeans”, 1st Edition, Packt Publishing, 2015

3.      Magazines and review (internet):

o   Oracle website: http://www.oracle.com/technetwork/java/index.html

o   SQLite website: http://www.sqlite.org

o   NetBeans website: http://www.netbeans.org

Operating Systems I
Course Code : C311
Units : 3
Lecturer : Amera Ismail Melhum

Description :

Course overview:

This course examines the important problems in operating system design and implementation. The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for sharing resources (e.g., disks, networks, and processors), providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from interfering with one another. The course will start with a brief historical perspective of the evolution of operating systems over the last fifty years and then cover the major components of most operating systems. This discussion will cover the trade-offs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling).

Course objective:

This course aims to teach the students the basics of Operating System. Following are the objectives of the course:

o   To introduce students about the basic concepts of Operating System.

o   To get a clear understanding of Operating System concepts.

o   To understand Operating System through Linux.

o   To understand the services provided by and the design of an operating system.

o   To understand what a process is and how processes are synchronized and scheduled.

Student learning outcome:

You will have an opportunity to learn a lot of practical information about how programming languages, operating systems, and architectures interact and how to use each effectively. This course is the first time you will learn about how concurrency and distributed systems communicate and work correctly. This knowledge will help you to more effectively use and manipulate computers and computer programs.

The Topics:

o   Introduction

o   What Operating Systems Do

o   Computer-System Organization

o   Computer-System Architecture

o   Operating-System Structure

o   Operating-System Operations

o   Process Management

o   Memory Management

o   Storage Management

o   Protection and Security

o   Kernel Data Structures

o   Computing Environments 

o   Open-Source Operating Systems

o   Operating-System Structures

o   Operating-System Services

o   User and Operating-System Interface

o    System Calls

o    Types of System Calls

o    System Programs

o    Operating-System Design and Implementation

o    Operating-System Structure

o    Operating-System Debugging

o    Operating-System Generation

o   System Boot

o    PROCESS MANAGEMENT

o   Processes Process Concept

o    Process Scheduling

o    Operations on Processes

o    CPU Scheduling

o    Basic Concepts

o    Scheduling Criteria

o    Scheduling Algorithms

o   Multiple-Processor Scheduling

o    Real-Time CPU Scheduling

o   Threads

o    Overview

o    Multi core Programming

o    Multi threading Models

o    Thread Libraries

o    Implicit Threading

Course Reading List and References‌:

Silberschatz, P. B. Galvin, and G. Gagne, “Operating Systems Concepts”, ninth edition.

References

Silberschatz, P. B. Galvin, and G. Gagne, “Operating Systems Concepts”, eighth edition.

Silberschatz, P. B. Galvin, and G. Gagne, “Operating Systems Concepts”, seventh  edition.

Silberschatz, P. B. Galvin, and G. Gagne, “Operating Systems Concepts”, sixth   edition.

 

Computer Graphics
Course Code : C313
Units : 3
Lecturer : Dr. Hasan Salim Mohammed

Description :

Course overview:

Nowadays the importance of computer graphics is very intuitive. Computer graphics is everywhere: in mobile phones, tablets, laptops, PCs, and on TV. No matter what is the age of person whether a 6 years old primary school student or a 70 years old retiree, he/she is likely to consume (watch) or deal with some kind of computer graphics. Computer graphics shows in many areas of life such as education, science, engineering, entertaining, training, social, and economic disciplines. Many fundamental terms in computers will be explained such as: resolution, bit-depth, refresh buffer, refresh rate. One of the main principles of the course is to teach students how draw graphical primitives like lines and circles and also how to understand area and how to fill area.

Course objective:

The course aims to provide the student with a good background of computer graphics in discipline of software as well as the related hardware. An overview of graphics hardware such as raster-scan, random-scan displays, plasma and liquid crystal displays will be presented. In the software part the student will study 2D algorithms of line and circle drawing. Area filling and connectivity will also been taught.

After finishing the course, the student will be able to grasp the basics of graphics hardware and software and to be able to understand graphics building blocks as well as having the ability to develop more advanced graphics algorithms.

Student learning outcome:

The student will learn

o   how current graphics devices (i.e. monitors) work and generate output. They also will be able to differentiate between different devices technology like plasma vs. LCD monitors.

o   the features of computer graphics devices like resolution, refresh rate, and bit-depth that has effect on what they can display on the monitors.

o   how to differentiate between text mode and graphics mode.

o   how to call graphics library functions under BC++/TC++ programming environment.

o   computer algorithms used to draw lines and circles on the screen. They will also know the differences between different algorithms (i.e. the cons and pros).

o   about pixel connectivity and neighborhood. They will learn about 4- vs 8-connectivity and how to use this configuration to develop area-filling algorithms like flood fill and boundary fill.

The Topics:

1. Graphics Applications

2. Video Display Devices

o   Cathode Ray Tubes (CRT)

     I. Raster Scan Displays

o   Resolution

o   Bit-planes (depth)

o   Refresh rates

o   Interlacing

o   Refresh buffer

    II. Random Scan Displays

o   Flat Panel Displays

    I. Liquid Crystal Displays (LCD)

    II. Plasma Displays

3. Line-drawing Algorithms

o Slope-intercept Line Equation

o DDA line Drawing Algorithm

o Bresenham’s Line Drawing Algorithm

4. Circle Drawing

o Circle drawing using Cartesian Coordinates

o Circle Drawing using Polar Coordinates

o Circle Drawing and the Circle Symmetry

o Midpoint Circle Algorithm

5. Area Filling

o Pixel connectivity

    1.  4- and 8-connectivity

o Boundary Fill Algorithm

o Flood Fill Algorithm

Course Reading List and References :

1. Key references [Books]:

o   Donald Hearn and M. Pauline Baker, "Computer Graphics With OpenGL", Third Edition, Prentice Hall, 2004

o   Donald Hearn and M. Pauline Baker, "Computer Graphics: C Version", Second Edition, Prentice Hall, 1997

2. Magazines and review (internet):

o   Computer Graphics World, http://www.cgw.com/

Computer Networks
Course Code : C314
Units : 3
Lecturer : Sarhan Sulaiman Dawood

Description :

Course overview:

Many organizations have a substantial number of computers in operation, often located far apart. Initially, each of these computers may have worked in isolation from the others, but at some point, management may have decided to connect them as a network to be able in sharing resources between their users without regard to the physical location of the resources and the user.

 So the communication and network technology becomes an important field in all organization in order to achieve the goal of "tyranny of geography" and facilitate the resource sharing to provide high reliability to the organization activities. This course introduces the concepts, terminologies and technologies used in modern day's data communication and computer networking.

Course objectives:

o   Understand the main aspect and benefits of computer networks

o   Become familiar with layered communication architectures (OSI).

o   understand the communication modes and problems

o   Understand the communication media and device (properties and job )

o   Know the principles of protocols( types, task , …)

o   Learn the principles of IP addressing.

o   Understand the basics and technologies of LAN networks.

o   Can manage the workgroup and domain environment ( creating workgroup, sharing files and printer, user accounts and permission ---)

o   Can use the “Packet Tracer” simulator software in creating, administrating and troubleshooting  networks

The Topics:

1. Fundamentals of communication & computer network

1.1 definitions: communication, computer network

1.2 hardware & software components

1.3 network benefits, elements and  types

2.  Data transmission   

2.1 digital and analog signals and transmission

2.2 transmission systems

2.2.1 Simplex, half duplex and full duplex transmission

2.2.2 Asynchronous and synchronous transmission

2.2.3 Serial and parallel transmission

2.2.4 Baseband and broadband transmission

2.3 transmission problems

2.3.1 Attenuation

2.3.2 Distortion

2.3.3 Dispersion

2.3.4 Collision

2.3.4 Cross talk

2.3.5 Timing hitter

3.  Open System Interconnection Reference Model (OSI)

3.1 Application Layer

3.2 Presentation Layer

3.3 Session Layer

3.4 Transport Layer

3.5 Network Layer

3.6 Data Link Layer

3.7 Physical Layer

4. Communication Media  

4.1 cable characteristics :Bandwidth, segment length, interference susceptibility, cable grade, number of devices per segment, cost  

4.2 Coaxial Cable ( Thinnet & Thicknet coaxial cable )

4.3 twisted-pair cables (UTP and STP cable)

4.5 Fiber Optics Cables  ( Single Mode & Multi Mode )

5. Communication Devices

5.1 Network Interface Card (NIC)

5.2 Repeaters

5.3 Hubs( Active, Passive, and Hybrid Hubs

5.4 Bridges (Transparent & Translation Bridges)

5.5 Switches ( Cut-through & Store and forward Switches )

5.6 Routers ( Static routing & Dynamic routing)

5.6.1 Distance vector and link state algorithm )

5.7 Modems

5.8 Multiplexers

6. Protocols

6.1 types of protocols (connection oriented, connectionless)

6.2 protocols and OSI model

6.3 TCP/ IP stack

6.3.1 Layers in TCP/IP

6.3.2 IP addressing (class A, B, C)

6.3.3 Subneting

7. Local Area Networks (LAN's)

7.1 LAN Typologies (stare, ring, bus, mesh, hybrid)

7.2 LAN standards (IEEE.802 standards)

7.3 Ethernet Technology

7.4 Token Ring Technology

Course Reading List and References‌:

1.      Key references:

Computer Networking: A Top-Down Approach, 6th edition, by James Kurose and Keith Ross

ISBN-13: 978-0132856201

ISBN-10: 0132856204

2.      Useful references:

Computer Network, 3rd edition, by Andrew S. Tanenbaum

ISBN-10: 0133499456 • ISBN-13: 9780133499452

3.      Magazines and review (internet):

 http://www.cisco.com/c/en/us/index.html

http://www.packettracernetwork.com/

Software Engineering
Course Code : C316
Units : 3
Lecturer : Saman Alias Barakat

Description :

Course overview:

This course is aimed at helping students build up an understanding of how to develop a software system from scratch by guiding them through the development process and giving them the fundamental principles of system development with object oriented technology using UML. The course will initiate students to the different software process models, project management, software requirements engineering process, systems analysis and design as a problem-solving activity, key elements of analysis and design, and the place of the analysis and design phases within the system development life cycle.

Course objective:

The aim of this course is to help students how to develop a software system from scratch

o   By guiding them through the development process and giving them the fundamental principles of system development with object oriented technology using UML.

Student learning outcome:

1. Develop an understanding of project management, software process models and the ability to select the suitable model to use in software development.

2. Develop an understanding of requirements engineering process and distinguish between different types of requirements.

3. Ability to analyse, design and develop the system models using object oriented methodology (UML) for software development.

 4. Ability to prepare the software requirements specification document for a software project.

5. Ability to create Testing Unit for the software

The Topics:

o   Introduction to Software Engineering

o   Software Processes

o   Requirements Engineering

o   System Modelling

o   System Modelling

o   Architectural Design

o   Design and Implementation

o   Design and Implementation

o   Software Testing

o   Software Evolution

Course Reading List and References :

o   Sommerville, I. Software Engineering. 9th Edition.,2011

o    Pressman, Roger S. Software engineering: a practitioner's approach. Palgrave Macmillan, 2005.

o    Miles, Russ, and Kim Hamilton. Learning UML 2.0. " O'Reilly Media, Inc.", 2006

Database Design I
Course Code : C312
Units : 3
Lecturer : Nashwan Maslah Fares

Description : Course overview
The objective of this course is to prepare students to become able to implement a working
database system using one of the popular commercial DBMSs, such as Oracle or MS
SQL Server. The course introduces students to the concepts of databases and database
modeling and design. It, in particular, provides students with a three-stage methodology
for designing relational database applications, namely, conceptual, logical, and physical
database modeling and design. In the first stage students will build a conceptual data
model that is independent of all physical considerations. They will then transform this
model in the second stage into the relational database logical model. In the third stage,
students will translate the logical data model into a physical design for the target DBMS.
Topics include basic concepts of databases, the 3-stage modeling and design
methodology, the concepts of the relational database, conceptual data modeling using
ERD, from ERD to RDB and reverse engineering, data normalization, SQL:DDL, SQL:

manipulation and query languages, and relational algebra for querying.

1-Fundamental concepts of files and databases
2‐ Database Environment
3‐ Entity Relationship (E‐R) Modeling
4‐ The Relational Database Model
5‐ SQL query language: Schema Definition, Constraints, and Queries and Views
6‐ Relational Algebra
7‐ Normalization
8‐ Database security:
9‐ Physical database

Course Learning Outcomes
By the completion of the course the students should be able to
1. Define the problems entailed in file-based information systems design and that
motivates the use of a database system.
2. Contrast the file-based and the database methods of designing information
systems.
3. Describe the 3-stage database design methodology.

4. Analyze a statement of data requirements to identify and express the different
constituents of the conceptual data model.
5. Analyze a set of data forms to identify and express the different constituents of
the conceptual data model.
6. Draw the conceptual data model using ERD.
7. Examine a relational database schema to identify its different constituents, such
as primary keys, foreign keys, and integrity constraints.
8. Describe a relational database schema using both formal specification and
diagrammatical forms.
9. Transform a conceptual data model into a relational database model.
10. Apply reverse engineer a relational data model into its corresponding conceptual
data model.
11. Identify relational database design and update anomalies.
12. Apply normalization techniques to logical database designs up to the third normal
form.
13. Build a relational database schema using the standard SQL’s DDL and DML.
14. Construct SQL queries to respond to a specific information request using data
aggregation, calculations, views, sub-queries, embedded queries, manipulation,
and report generation.
15. Construct Relational Algebra expressions to express the answer to a specific
information request.
16. Cite and discuss some of the issues regarding the physical design of a database
system .
17. Design and implement a moderate size database information system using one of
the commercial DBMS systems, such as Oracle.

Semester Two

Electives Visual Programming (VB)

Units : 3
Lecturer : Sarhan Sulaiman Dawood

Description :

Course overview:

Visual Basic is a Microsoft Windows object-based driven general purpose programming language created in an Integrated Development Environment (IDE) affords a simplified approach to programming and allowing the programmer to create, run and debug programs. The emphasis of Visual Basic is on the objects included in the user interface and the events that occur when those objects are used. This course examines the object- based, event-driven programming approach including language constructs, looping structures, file management, error trappings and database access. The student must have a good knowledge about programming logic and how to solve problems with minimal skills in English language.

Course objective:

o   Upon successful completion of this course, students will be able to:

o   Identify and describe the purpose of various components of the VB Integrated Development Environment (IDE).

o   Build and run small application using Visual Basic.

o   Write conditional and repetition (loops) statements and other control structures.

o   Declaring variables and constants using the data types available in VB.

o   Examine and discuss Sub and Function procedures.

o   Understand the array structure and its usage.

o   Use strings in addition to their built-in functions.

o   Understand and create multiple document interface (MDI) applications.

o   Develop a single document interface (SDI) application.

Student learning outcome:

o   Become familiar with object oriented programming language

o   Become familiar with al controls used in visual basic

o   understand the statements used in v.basic

o   Enable students to create projects in the visual basic

The Topics:

1. Beginning Visual Basic

1.1 What is Visual Basic?

1.2 Features of Visual Basic

1.3 The Visual Basic Philosophy

1.4 The integrated development environment, Forms, controls, objects properties, project explorer

1.5 Events and methods

1.6 Save project

1.7 Building small application

1.8 Practice and exercises

2.Dealing with Data  

2.1 Operators

2.2 Data types

2.3 type of Variables

2.4 Declaring Variables

2.5 Constants

2.6 arithmetic & logical operations

2.7 using immediate window

2.8 printing on the form

2.9 practice and exercises

3.Writing Code

3.1 Subroutines (private sub ….. end sub)

3.2 Functions (private function …. End function)

3.3 Calling Procedures (CALL function)

3.4 correct errors during run time (On Error Go To ….)

3.5 Built-in Functions  (Sqr, Val, Abs, Fix, Len, Chr, Str, Lcase, Left, mid …)

3.6 practice and exercises

4. I/O statements and control flow statements

4.1 I/O Statements

4.2 Control Flow Statements

4.2.1 If—Then

4.2.2 If-then-else

4.2.3 Nested Control Statements

4.4.4 Select-Case

4.3 practice and exercises

5. Loop Statements

5.1 For…Next

5.2 Do... while Loop &   Do loop….while

5.3 do until ---- loop & Do … loop until

5.4 While-Wend

5.5 nested loop

5.7 Exit Statement

5.8 practice and exercises

6. Arrays

6.1 Declaring Arrays

6.2 Specifying Arrays

6.3 Multidimensional Arrays

6.4 Dynamic Arrays

6.5 Arrays of Arrays

6.6 practice and exercises

7. Creating an Application Using Controls

7.1 events and methods

7.2 Textbox Control

7.3 Picture Box

7.7 Image Box

7.5 Label Box

7.6 Frame

7.7 List Box

7.8 Option Button

7.9 Combo Box

7.10 Command Button

7.11 Check Box

7.12 The Drive, Directory, File List Controls

7.13 The Line & Shape Control

7.17 Scroll Box

7.15 Data

7.16 Timer

7.17 practice and exercises

Course Reading List and References‌:

o   Key references:

o   VB6 How to Program, Deitel & Deitel, Prentice Hall Inc

o   Useful references:

o   Beginning VB 6.0 –Peter Wrights

o   internet URL:

o   http://www.vbtutor.net/vbtutor.html  +    http://www.freetutes.com/learn-vb6/

Electives Visual Programming (VC#)
Course Code : C325
Units : 3
Lecturer : Saman Alias Barakat

Description :

Course overview:

This course is used to teach students how to build windows applications using C sharp. C sharp is  very powerful tool in developing such applications. The course consists of several lectures about main controls in visual c sharp environment. These controls have properties and events. Students should understand and learn these properties and events to build application.

Course objective:

o   Give an Introduction to Visual C#

o   Teach student how to build Windows Applications

Student learning outcome:

1. Student should be able to understand and use Visual C Sharp controls

2. Students should be able to understand and use controls properties

3. Students should be able to develop windows form applications

The Topics:

o   Introduction to Visual C#

o   Loops, Control Statements

o   Forms & Labels

o   Textbooks & Buttons

o   Creating Menus in C#

o   Checkboxes & RadioBoxes

o   ComboBox & ListBoxs & List View

o   Dealing with Exceptions

o   Generics & Collections

o   Database programming in C#

Course Reading List and References :

o   Sharp, John. Microsoft Visual C# 2013 Step by Step. Pearson Education, 2013.

o   Watson, Karli, et al. Beginning Visual C# 2012 Programming. John Wiley & Sons, 2012.

Operating Systems II
Course Code : C321
Units : 3
Lecturer : Dr. Shaheen A. Abdulkareem

Description :

Course overview:

This course is a continuous course of Operating Systems (OS) I. The student will be taught principles of modern operating systems. In particular, the course will cover details of concurrent processes, multi-threads, CPU scheduling, memory management, file system, storage subsystem, and input/output management. The course will integrate theory and practice through coordinated lecture and lab hours.

The course outline of this course as been said is continuing the topics given in the first course. This course covers the topics the problem of memory management; it will cover topics such as linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging. With the availability of the time, the course concerns file systems, including topics such as storage devices, disk management and scheduling, directories, protection, and crash recovery.

The second course of OS will start with last part of CPU scheduling problem that is the deadlock and continue with the rest of chapters along with the time available (from Feb 14th to May 15th). A two hours lecture a week that covers the theoretical part of OS and a two lab hours a week.

Course objective:

1. general understanding of structure of modern computers

2. purpose, structure and functions of operating systems

3. illustration of key OS aspects by example

4. Perform user administration, access control, auditing, and reporting on various operating systems.

Student learning outcome:

The students who succeeded in this course will be able to;

1. learn the principles operating systems

2. understand relationship between subsystems of a modern operating system

3. develop multi-process and multi-threaded applications

4. evaluate the efficiency aspect of using system resources (processor, memory, disk)

The Topics:

o   Deadlocks in multi processing

o   Memory management

o   Virtual memory management

o   File system

o   I/O Management

Course Reading List and References:

o   Key references: A. Silberschatz, P.B. Galvin and Greg Gagne “Operating System

Concepts”, 9th Ed., Wiley, 2013

o   Useful references: Google can help with million lectures, references, descriptive images.

Computer Graphics with OpenGL
Course Code : C323
Units : 3
Lecturer : Dr. Hasan Salim Mohammed

Description :

Course overview:

Nowadays the importance of computer graphics is very intuitive. Computer graphics is everywhere: in mobile phones, tablets, laptops, PCs, and on TV. No matter the age of person whether a 6 years old primary school student or a 70 years old retiree, he/she is likely to consume (watch) or deal with some kind of computer graphics. Computer graphics appears in many areas of life such as education, science, engineering, entertaining, training, social, and economic disciplines. One of the main goals of  the course is to teach students how to work with OpenGL library that became a standard in  microcomputer environment.

Course objective:

The course aims to provide the student with a good background of computer graphics in discipline of two dimensional geometric transformations. The other objective is to teach the student OpenGL  library functions. After finishing the course, the student will be able to grasp the basics of graphics  hardware and software and to be able to understand graphics building blocks as well as having the  ability to develop more advanced graphics algorithms.

Student learning outcome:

The student will learn

o    Two dimensional geometric transformations and their representation as

mathematical formulas and matrix operation.

o   Homogeneous coordinates and the representation of geometric transformations as

transformation matrix in homogeneous coordinates.

o   Merging more than one transformation in one transformation matrix, i.e. composite

transformations.

o   How to initialize and use OpenGL library.

The Topics:

1.      Introduction to OpenGL

2.      2D transformations

o Translation

o Scaling

o   Scaling relative to the origin

o   Scaling relative to a fixed point

o Rotation

o   Rotation around origin

o   Rotation about an arbitrary pivot point

3.      2D Transformations in Homogeneous Coordinates

4.      Composite Transformations

5.      Inverse Transformations

6.      General 2D Pivot-Point Rotation

7.      General 2D Fixed-Point Scaling

8.      Other 2D Transformations

o Reflection

o   Reflection about the line y = 0 (the x axis)

o   Reflection about the line x = 0 (the y axis)

o   Reflection relative to the coordinate origin

o   Reflection about the line y = x

o   Reflection about the line y = -x

o Shear

o   x-direction shear

o   y-direction shear

Course Reading List and References :

1.      Key references [Books]:

o   Donald Hearn and M. Pauline Baker, "Computer Graphics With OpenGL", Third Edition, Prentice Hall, 2004

o   Edward Angel and Dave Shreiner, “Interactive Computer Graphics - A Top-Down

o   Approach”, Sixth Edition, Pearson, 2012

2.      Magazines and review (internet):

o    Computer Graphics World, http://www.cgw.com/

Web Design
Course Code : C324
Units : 3
Lecturer : Mrs. Lamya Abdulateef Omer

Description :

Course overview:

This course is explained the fundamentals and some advanced concept of web design. It covers four big parts which are HTML5, CSS, JavaScript and website X5. In HTML, we will be covering some basic and advance features of HTML5 like multimedia elements and HTML semantic element. It will be explained how to change the HTML style by using internal style and external style. Finally,  JavaScript will be covered to change the webpage form static to dynamic. It is also used to change HTML elements and attributes and CSS style. Website X5 is the most complete software around for creating attractive and functional websites, blogs and online stores that display perfectly on desktops, tablets and smartphones. Students do not need programming skills. It's easy to use, with lots of exciting features so you can create websites that adapt automatically to all screen sizes.

Course objective:

1. To teach the students the client side languages for creating web Pages including full contents and styles.

2. To teach student how to define the content of the web pages by HTML5.

 3. To teach student how to control the style and layout of Web pages by CSS.

4. To teach student how to provides the behaviours or actions behind the interactively that you see on web pages by JavaScript.

5. To teach students how to use custom website to create the website.

Student learning outcome:

At the end of the course the student should be able to understand the web page languages. Use HTML, CSS and JavaScript appropriately to create its own web pages. Marking up web page with HTML, Styling pages with CSS and Changing behaviours web pages with JavaScript. Using the most complete software (website X5) for creating attractive and functional websites, blogs and online stores that display perfectly on desktops, tablets and smartphones. Students do not need to know any programming skills.

The Topics:

1.1 Internet & WWW

1.2 Web browser & web server

1.3 How the Web Works

1.4 Basic structure of HTML documents

1.5 HTML Text appearances

2.1 Images

2.2 Hyperlinks

2.3 List (description list, ordered list and unordered list)

2.4 Define table rows, columns and data

2.5 Colspan and rowspan attributes

3.1 Iframe to divide window into frames

3.2 Changing iframe content by using Target and Name attributes.

3.3 New HTML5 Features & Structure

3.4 New Semantic Elements

3.5 Multimedia elements(Audio and video)

4.1. HTML5 Form Elements

4.1.1 HTML5 Input elements

4.1.1.1 (text, Password, radio, checkbox, file, submit,reset, number, date and email)

4.1.2 Select element

4.1.3 Textarea element

4.1.4 Datalist element

4.2 New HTML5 Attributes

5.1 CSS Basic introduction

5.2 CSS selectors

5.3 Ways to apply CSS to an HTML document

5.4 Styling Links

5.5 Styling List

5.6 Styling Tables

5.7 CSS Box Model (Margin, Border, Padding and Content)

5.8 CSS Display and Float properties

6.1 Styling the whole website by using Semantic Elements

7.1 What is JavaScript

7.2 What JavaScript can do

7.3 Adding JavaScript in HTML

7.4 Data types and variables

7.5 Popup messages(alert, confirm and prompt)

8.1 Changing HTML Contents

8.2 Changing HTML Attributes

8.3 Changing CSS Style

8.4 JavaScript Events

9.1 Website X5 Basic Introduction

9.2 Website X5 Features

9.3 Building website by complete software (Website X5)

10.1 Examples related to HTML,CSS and JavaScript

Course Reading List and References :

1.      Books:

o   Pro HTML and CSS3 Design Patterns.

o   Learning PHP, MYSQL, JavaScript, CSS & HTML5, 3rd Edition

2.      Websites & Tutorial:

o   http://www.w3schools.com/

o   http://www.tutorialspoint.com/php

o   www.websitex5.com/en/

3.      Tutorial:

o   Udemy - Become a Web Developer From Scratch Complete (2015)

Numerical Analysis
Course Code : C326
Units : 3
Lecturer : Dr. Ahmed Abdulkhalik Tahir

Description :

Course overview:

This course is concerned with numerical methods for the solution of mathematical problems on a computer.  It includes elements of error analysis, real roots of linear and non-linear systems, differentiation and integration, interpolation and least mean square fitting. The student should expect to program a computer in Borland C language.

Course objective:

The purpose of numerical analysis is:

(1) To find acceptable approximate solutions when exact solutions are either impossible or time-consuming.

(2) To devise alternate methods of solution better suited to the capabilities of computers.

Student learning outcome:

After successfully completing this course, with the help of computers, the student should learn how:

(1) The design of a numerical algorithm is not necessarily straightforward, even for some simple problems. 

(2) The basic principles of good numerical techniques must be handled in practice.

(3) To gain insight into the design of better and more widely applicable algorithms and to practice the programming language Borland C for their implementation.

The Topics

1. Error types

o   Round off error

o   Approximation error

o   Absolute error

o   Relative error

o   Truncation error

o   stable error

2. Non linear algebraic equation

o   Bisection method,

o    Newton-Raphson method

3. Linear equation system

o   Direct method

o    Gauss elimination method

o    Gauss-Seidel method

o    Gauss-Jorden method

4. Interpolation

o   Lagrange Method

5. Numerical Integration

o   Simpson's rule

6. Ordinary differential equation

o   Euler method

o   Taylor method

7. Least square fittings

o   Finite difference method

Course Reading List and References‌:

The followings may be the possible texts for this course:

1. Atkinson, Kendall E., 2001, "An Introduction to Numerical Analysis ", third edition, John Wiley & sons.

2. Burden, Richard L.; Faires, J. Douglas (2000), Numerical Analysis (7th ed.), Brooks/Cole, ISBN 978-0-534-38216-2 .

3. Cheney W. and Kincaid D., Numerical Analysis and Computing, 2nd ed., Brooks/Cole, Pacific Grove, CA.

4. Marion, M.J., Numerical Analysis, A Practical Approach, Macmillian, New York, NY.

Database Design II
Course Code : C322
Units : 3
Lecturer : Nashwan Maslah Fares

Description :

Course overview:

Relational database management systems are composed of objects or relations. They are managed by operations and governed by data integrity constraints.By using the Oracle9i Database Server, in which the student can store and manage information by using SQL, and the Oracle9i Application Server with which student can run all of your applications.

Then descript how to retrieve data from a database table with the SELECT statement, how to retrieve a certain columns, changed column alias by displaying it. Execute a these statements.After that, the student should learn about restricting and sorting rows returned by the SELECT statement. And learning how to implement various operators and conditions.

Single-row functions can be nested to any level. Single-row functions can manipulate: character data, number data, date data. While conversion functions can convert character, date, and numeric values. IF-THEN-ELSE logic can be applied within a SQL statement. When more than one table used two retrieve data Cartesian Products produced. To avoid thisWHERE clause used.There are multiple ways to join more than one table to access data from them such as equijoins, non-equijoins, outer joins, self joins, cross joins, natural joins and full or outer joins.

Seven group functions are available in SQL these are: AVG, COUNT, MAX, MIN, SUM, STDDEV and VARIANCE that used by students during this course.Subgroupscan also be created by using the GROUP BY clause. Groups can be excluded using the HAVING clause.

A subquery is a SELECT statement that is embedded in a clause of another SQL statement.Subqueries are useful when a query is based on search criteria with unknown intermediate values.Substitution variables are useful for running reports. They give user the flexibility to replace values in a WHERE clause, column names, and expressions.Data manipulation is important, to manipulate data in the Oracle database the INSERT, UPDATE, and DELETE statements are used. The COMMIT, SAVEPOINT, and ROLLBACK statements used to control data changes.

Data definition language (DDL commands) used to create, alter, drop, rename, truncate tables and add comments to a table. The student should learn how to use these. The Oracle server uses constraints to prevent invalid data entry into tables. Oracle gives the ability to implement the constraints in DDL statements, such as not null, unique,primary key,foreign key and check.

A view is based on a table or another view and acts as a window through which data on tables can be viewed or changed. A view does not contain data. The definition of the view is stored in the data dictionary. It has many advantages such as restrict database access, simplify queries and so.

Course objective:

This course aims to gains the students the understanding of the database, relational database management systemand also introducing to theOracle9i Server as well as SQL statements.Then to extract data from the database, using the structured query language (SQL) SELECT statement, restrict the columns that are displayed and using column aliases for headings.

While retrieving data from the database, the student may need to restrict the rows of data that are displayed or specify the order in which the rows are displayed.Functions make the basic query block more powerful and are used to manipulate data values. This course focuses on single-row character, number, and date functions, as well as focuses to those functions that convert data from one type to another, for example, character data to numeric data.

  After that, the student should learn how to obtain data from more than one table by using different join types.For further addresses functions. This course focuses also on obtaining summary information, such as averages, for groups of rows. It discusses how to group rows in a table into smaller sets and how to specify search criteria for groups of rows.

More advanced features of the SELECT statement, the student can write subquery in the WHERE clause of another SQL statement to obtain values based on an unknown conditional value. It covers single-row subqueries and multiple-row subqueries.Including iSQL*Plus commands to produce more readable SQL output. Create a command file containing a WHERE clause to restrict the rows displayed. Use substitution variables to change the condition each time the command file is run.

After that he should learn how to insert rows into a table, update existing rows in a table, and delete existing rows from a table. He also learns how to control transactions with the COMMIT, SAVEPOINT, and ROLLBACK statements.As well as to understanding the main database objects, and their relationships to each other. Also learning how to create, alter, and drop tables.And how to implement business rules by including integrity constraints to tables.

By the end of the course, the student will be able to understand, create and use views. Finally, he also learns to query the relevant data dictionary object to retrieve information about views.

Student learning outcome:

The student shall learn to:

Understanding database, RDBMS, the Oracle9i Server is the database for Internet computing.Relational databases are composed of relations, managed by relational operations, and governed by data integrity constraints.

The next step he should be able to Writing a SELECT statement these includes: returns all rows and columns from a table, returns specified columns from a table, uses column aliases to give descriptive column headings.

Then the student should be able to Use the WHERE clause to restrict rows these includes: Use the comparison conditions, Use the BETWEEN, IN, LIKE, and NULL conditions and apply the logical AND, OR, and NOT operators. Use the ORDER BY clause to sort rows of output.

It is important for the student to know by using functions,how to perform calculations on data, modify individual data items, manipulate output for groups of rows, alter date formats for display, convert column data types, use NVL and use IF-THEN-ELSE logic.

In case of retrieving data from more than one table, the student should learnhow to use joins to display data from multiple tables with different join types.

In case for displaying data the student should learn how to use the group functions COUNT, MAX, MIN, AVG. Moreover to write queries that use the GROUP BY clause and write queries that use the HAVING clause.

The student should learn how to write subqueries when a query is based on unknown values and identify when a subquery can help solve a question.

He also should learn how to use iSQL*Plus substitution variables to store values temporarily, use SET, COLUMN, BREAK, TTITLE and BTITLE commands.

The student should understand what DML is and how to use DML statements to INSERT, UPDATE, DELETE, MERGE, and COMMIT statements in a table.Control transactions.

The student should also understand what DDL is and how to use DDL statements to create, alter, drop, rename truncate and comment tables. 

Tables required constraints to hold data efficiently in tables as well as to hold the related datain tables. The student should learn how to create constraints, such like using NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY and CHECK.

Finally the student should learn that a view is derived from data in other tables or views and provides the advantages such that, Restricts database access, simplifies queries, provides data independence, provides multiple views of the same data.

The Topics:

·   Introduction to Database

o  Explain the database, List the features of Oracle9i, Discuss the theoretical and physical aspects of a relational database and describe the implementation of the RDBMS.

·    Writing Basic SQL SELECT Statements

o  List the capabilities of SQL SELECT statements.

o  Execute a basic SELECT statement.

o  Differentiate between SQL and iSQL*Plus commands.

·    Restricting and Sorting Data

o  Limit the rows retrieved by a query.

o  Sort the rows retrieved by a query.

·    Single-Row Functions  - Part One

o  Describe various types of functions available in SQL.

 ·    Single-Row Functions  -  Part Two

o  Use character, number, and date functions in SELECT statements.

o  Describe the use of conversion functions.

 ·    Displaying Data from Multiple Tables - Part one

o  Write SELECT statements to access data from more than one table using equality and non-equality joins.

o  View data that generally does not meet a join condition by using outer joins.

o  Join a table to itself by using a self-join.

·    Displaying Data from Multiple Tables - Part Two

o  Write SELECT statements to access data from more than one table using cross joins, natural joins and full or outer joins

·    Aggregating Data Using Group Functions  - Part One

o  Identify the available group functions

o  Describe the use of group functions

o  Group data using the GROUP BY clause

·    Aggregating Data Using Group Functions  - Part Two

o  Include or exclude grouped rows by using the HAVING clause

·    Subqueries

o  Describe the types of problem that subqueries can solve.

o  Define subqueries and list the types of subqueries.

o  Write single-row and multiple-row subqueries.

·    Producing Readable Output with iSQL*Plus

o  Produce queries that require a substitution variable.

o  Customize the iSQL*Plus environment.

o  Produce more readable output, create and execute scripts

·    Manipulating Data

o  Insert rows into a table

o  Update rows in a table

o  Delete rows from a table

o   Merge rows in a table and control transactions

·    Creating and Managing Tables

o  Describe the main database objects, create tables

o  Describe the data types that can be used when specifying column definition

o  Alter table definitions, drop, rename, and truncate tables

·    Including Constraints

o  Describe constraints

o  Create and maintain constraints

·    Creating Views

o  Create, alter the definition of, and drop a view

o  Retrieve data through a view

o  Insert, update, and delete data through a view

o  Create and use an inline view

Course Reading List and References‌:

o   Introduction to Oracle9i: SQL, Volume 1, By Nancy Greenberg and Priya Nathan

o   Introduction to Oracle9i: SQL, Volume 2, By Nancy Greenberg and Priya Nathan

o   Introduction to Oracle9i: SQL, Volume 3, By Nancy Greenberg and Priya Nathan

o   Oracle Database11g SQL, By Jason Price