0% found this document useful (0 votes)
34 views

CS-All Course Outlines

CS-All Course Outlines

Uploaded by

hailemariam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

CS-All Course Outlines

CS-All Course Outlines

Uploaded by

hailemariam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 49

COURSE DETAILS

Major Compulsory Courses

CSC 101: Introduction to Computer Science


Credit Hours: 3
Lecture Hours: 2
Laboratory Hours: 2
Prerequisites: None
Course Objectives
At the end of the course, students will be
 able to explain a computer system, its major components, functions
and principles,
 able to explain computer types and their historical development,
 able to understand data representation techniques and computer
arithmetic,
 able to understand the building blocks of digital computers, and
 familiar with the various application areas of computers.

Course Description
Introduction: an overview of computer science, benefits and disadvantages
of solving
problems using computers, history of computing; data processing: data
versus information, information processing, file processing, quality of
information, database processing; functions and components of a computer
system: computer hardware (memory unit, Central Processing Unit, system
unit, I/O and storage devices), computer software (system software,
operating systems, programming languages, application software features
and trends); digital arithmetic: number system, decimal, binary, octal,
hexadecimal, BCD, fixed and floating-point representation, complements
(1‟s and 2‟s), ASCII code, applications of computers: office automation,
computers at home, in entertainment, in education and training, in science,
medicine and engineering; computer networks and communications with
description of modern networking technologies.

Course Content
Chapter 1 - Overview of Computer Science
1.1 Introduction to Information and Communication Technology
1.2 Definition of Computer and Computer Science
1.3 Characteristics of computers (speed, accuracy, capacity, versatility,
durability
and reliability)
1.4 Types of Computers (Analog, digital, special purpose, general purpose;
super computers, mainframe computers, minicomputers, microcomputers -
desktop, laptop or notebook, PDA or palmtop, handheld)
1.5 Applications of computers (learning aid, entertainment, commercial and
business applications, information utility, engineering and research
applications, public service)
Chapter 2 - Development of Computers
2.1 History of computing
(Abacus, Pascal‟s Calculator, The difference engine and the analytical
engine, Herman Hollerith‟s tabulating machine, Mark I, ENIAC, The Von
Neumann Machine, commercial computers)
2.2 Generations of computers (first, second, third, and fourth generations;
current
trends)
Chapter 3 - Organization of a computer system
3.1 Introduction to Computer Systems
3.2 Computer hardware
(The Central Processing Unit, Purposes of the Central Processing Unit,
Control Unit, Arithmetic and Logic Unit, RAM and ROM, The bus system
(address bus, data bus, and control bus), input units (pointing devices, game
controllers, keyboard, scanner, camera, microphone), output units (monitor,
printer, speaker), Storage units, Sequential access media (tape), random
access media (magnetic disk, optical storage media, flash memory)
3.3 Computer software
(System software, operating systems, what is an operating system?,
functions of an operating system (controlling operations, input/output
management, command processing), types of operating systems
(single/multi tasking, single/multi user, real-time, command driven vs GUI-
based), Example operating systems (Windows, UNIX, Solaris, MacOS);
Language software, translators (assemblers, compilers, interpreters), and
editors; applications software, word processing, spreadsheet, database
management systems, graphics, software suites, enterprise application
software
Chapter 4 - Data representation in computers
4.1 Units of data representation: Bit, Byte, Word
4.2 Concept of number systems and binary arithmetic (binary, octal,
hexadecimal,
conversion from one number system to another, binary arithmetic)
4.3 Coding Methods (EBCDIC; ASCII; Unicode)
4.4 Representation of negative numbers and arithmetic (signed magnitude,
one‟s complement, two‟s complement)
4.5 Floating-point representation
Chapter 5 - Computer System architecture
5.1 Hierarchical structure of computer system architecture
5.2 Logic elements and Boolean algebra
5.3 Implementation of Boolean algebra: Boolean functions and truth tables,
Construction of logic circuits
5.4 Types of circuits: combinational and sequential circuits
Chapter 6 - Computer networks and communications
6.1 Introduction to computer networking and its applications
6.2 Types of networks: LANs and WANs
6.3 Introduction to the Internet (services of the Internet - e-mail, World
Wide Web,
file transfer/access, remote login/ execution, video conferencing)
Chapter 7 - Computer Security
7.1 Introduction to computer security, encryption, backup, viruses and
worms

Teaching Methods
-Lecture, Lab, Demonstration
Method of Assessment
- Lab: 20%
- Continuous assessment 30%

Mid exam: 20%


30%
Final exam:

- Teaching material
- ITL Education Solutions Ltd, Introduction to Computer Science, Pearson
Education, 2004.

References
- Clements, Alan: The Principle of Computer Hardware, Oxford University
Press, 1989
- Davis, Gordon B., Introduction to Computers, McGraw-Hill, 1977.
- Dida Midekso, Introduction to Computer Science, Ethiopia, AAU, 1994
CSC 131 –Fundamentals of Programming I
Credit Hours: 4
Lecture Hours: 3
Laboratory Hours: 2
Prerequisites: None
Course Objectives
On completion of this course, students will be able to:
grasp the main idea and concepts of programming,
 understand the software development process and tools such as
editors and compilers,
 understand the syntax and semantics of programming languages,
 understand the major building blocks of computer programs,
 know the basic skills of programming and solve problems using
computers,
 know the major programming techniques and implement them using
the C++
programming language, and
 know, understand and implement the basic concepts and tools in C+
+.

Course Description

Introduction to programming: definition, evolution of programming languages (low and high


level languages), algorithms and their representation (pseudo code, flowchart); problem
solving steps using computers; fundamental elements of C++: history of C++, program
structure, reserved words and identifiers, variables and constants, data types, declarations,
operators and expressions (arithmetic, logical, relational, bit-wise), syntax and semantics;
simple statements: assignment, null, block, input/output; flow of control:
branching/selection statements (if, switch), looping statements (while, do ... while, for),
other statements (break, continue, exit); structured data types: arrays, pointers, strings.
Course Content
Chapter 1 - Introduction to Programming
1.1 General Introduction to computer and programming
1.2 Software Development Life Cycle (SDLC); feasibility study; requirement
analysis; designing solution; testing designed solution;
implementation(coding); unit testing; integration and system testing;
maintenance; algorithm development and representation (structured chart,
pseudocode, flow chart)
Chapter 2 - C++ Basics
2.1 Structure of C++ Program; C++ IDE; Keywords, Identifiers, Inputs,
Outputs, Comments, Parts of a program; Data Types, Variables, and
Constants
2.2 Operators; Assignment Operators; Compound Assignment Operators;
Arithmetic Operators; Relational Operators; Increment and Decrement
Operators; Infix and postfix types; Precedence of Operators
Chapter 3 - Control Statements
3.1 If statements: If…else, nested if
3.2 Switch Statements: multiple cases, break, default
3.3 Looping: for, while, do, break, continue; nested loops
Chapter 4 - Arrays and String Manipulation
4.1 Array Definition; Array referencing; one dimensional and
multidimensional
arrays
4.2 Strings: Definition, accessing strings
Chapter 5 – Pointers
5.1 Definition of Pointers; Pointer and address of operator
Teaching Methods
- Lecture, Lab, Project Work
Method of Assessment
- Lab: 20%
- Project work: 50%
- Final exam: 30%

Teaching materials
- Dietel &Dietel, “C How To Program”, Third Edition, Prentice-Hall, 2003
- Robert Lafore, “The Waite Group‟s C Programming Using Turbo C++”,
Techmedia,
1993
References
- Walter Savitch, “Problem solving with C++ – The Object of Programming”,
Menlo
Park:Addison-Wesley, 1996
- John R. Hubrard, “Fundamentals of Computing with C++”, Shuam‟s
Outline, 1997
- Jess Liberty, “An Introduction to C++”, 1995
- Robert Lafore, “The Wait Group Object Oriented Programming With C++”,
1994
CSC 132: Fundamentals of Programming II.
Credit Hours: 4.
Lecture Hours: 3.
Laboratory Hours: 2.
Prerequisites: CSC 131.
Course Objectives
On completion of this course, students should be able to:
 understand concepts of modular programming,
 design and write modular programs,
 describe and implement advanced data structure elements that serve as
holding
homogenous data primitives, and
 know file manipulation, i.e., I/O operations of files.
Course Description
Structures; modular programming (functions, arguments, passing
arguments by value and by reference, life time of variables), recursion, file
management (text and binary files, file manipulation, file accessing modes).
Course Content
Chapter 1 - Functions
1.1 Introduction to Modular Programming (Functions); Declaration of
functions;
Definition of functions
1.2 Calling function Scope of Variables
1.3 Function Arguments; Return Values
1.4 Default Parameters; Parameters passing; Call by value; Call by
reference
1.5 Recursive functions

Chapter 2 - Structures
2.1 Overview of Structure; declaring structures
2.2 Defining structure in structure.
2.3 Initializing structure; manipulating structure.
2.4 Array of structure.
2.5 Nested structure.
2.6 Structure, Reference and Pointer.
2.7 Passing structure to function.
2.8 Passing value of structure to a function.
2.9 Passing address of a structure to a function.
Chapter 3 - File Management
3.1 Streams and Files.
3.2 Text and Binary Files.
3.3 Text File processing.
3.4 Binary File processing.
3.5 Random Access Files.

Teaching Methods
- Lecture, Lab, Project Work
Method of Assessment

- Lab: 20%
- Project work: 50%
- Final exam: 30%

Teaching materials
- Dietel&Dietel, “C How To Program”, Third Edition, Prentice-Hall, 2003.
- Robert Lafore, “The Waite Group‟s C Programming Using Turbo C++”,
Techmedia,
1993.
References
- Walter Savitch, “Problem solving with C++ – The Object of Programming”,
Menlo
Park:Addison-Wesley, 1996.
- John R. Hubrard, “Fundamentals of Computing with C++”, Shuam‟s
Outline, 1997.
- Jess Liberty, “An Introduction to C++”, 1995.
- Robert Lafore, “The Wait Group Object Oriented Programming With C++”,
1994.

CSC 227: Computer Organization and Architecture.


Credit Hours: 3

Lecture Hours: 3

Laboratory Hours: 0
Prerequisites: CSC 131

Course Objectives

At the end of the course, students will be able to

 develop an understanding of the underlying operation of a modern digital


computer and its architectural organization,

 identify and understand the various building blocks from which a modern
computer is constructed, and

 understand the difference between registers and memory.

Course Description

Microprocessor architecture, von Neumann architecture, number systems,


computer data representation; memory addressing, real mode, protected
mode, execution unit, bus interface unit; input output organization: I/O
interface, modes of data transfer, interrupts, DMA, IOP and serial
communication; memory organization: memory hierarchy, main memory,
auxiliary memory, cache memory, virtual memory; digital logic circuits: map
simplification, combinational circuits, flip flops, sequential circuits,
integrated circuits, decoders, multiplexers, registers, shift registers, binary
counters; advanced computer architecture concepts: CISC, RISC.

Course Content

Chapter 1 - Introduction to the Microprocessors and Computers

1.1 A historical background

1.2 The microprocessor-based personal computer system

1.3 The Intel and Motorola microprocessors


1.4 Review of number systems

1.5 Review of computer data representation

Chapter 2 - The microprocessor and its architecture

2.1 Internal microprocessor architecture – micro-architecture

2.2 Von Neumann architecture

2.3 Real mode memory addressing

2.4 Introduction to protected mode memory addressing

2.5 Execution and bus interface units

Chapter 3 - Input output organization

3.1 Peripheral devices

3.2 Input output interface

3.3 Asynchronous data transfer

3.4 Modes of transfer

3.5 Priority interrupt

3.6 Direct memory access (DMA)

3.7 Input output processor (IOP)

3.8 Serial communication

Chapter 4 - Memory organization

4.1 Memory hierarchy

4.2 Main memory, Auxiliary memory, Associative memory, Cache memory,


Virtual memory
Chapter 5 - Digital logic circuits

5.1 Review of logic gates and Boolean algebra


5.2 Combinational circuits (half adder, full adder)

5.3 Flip flops (JK, SR, D)

5.4 Sequential circuits, Integrated circuits

5.5 Decoders

5.6 Multiplexers

5.7 Registers, Shift registers

5.8 Binary counters

Chapter 6 - Advanced computer architecture concepts

6.1 CISC and RISC computers

6.2 Parallel processing

6.3 Symmetric multiprocessing

6.4 Clustering

Teaching Methods

- Lecture, Demonstration

Method of Assessment

- Continuous assessment 60%

- Final exam: 40%

Teaching material

- A. S. Tanenbaum: Structured Computer Organization, 5th edition, Prentice


Hall, 2005.
References
- Mano, M. and Kime, C.: Logic and Computer Design Fundamentals, 3rd
edition,
Pearson Prentice Hall, 2004.

- W. Stallings: Computer Organization and Architecture, 6th edition,


Prentice Hall, 2002.

- John Hennessey and David Patterson: Computer Architecture: A


Quantitative

Approach, 4th edition, Morgan Kauffman Publishers, 2003.

CSC 255: Fundamentals of Database Management Systems

Credit Hours: 3

Lecture Hours: 2

Laboratory Hours: 2

Prerequisites: CSC 131

Course Objectives

At the end of the course, students will

 have the background to design, implement, and use database management


systems,
 understand the basics of database design and its applications,

 learn to use relational database applications,  learn to use the SQL


database language, and
 be introduced to database security, backup and recovery, and concurrency
control.
Course Description

Database concepts: definition of a database and benefits of database


systems; architecture
for database systems: internal, conceptual and external level architectures,
database schema; implications of file organization and storage structures;
overview of hierarchical and network data models; relational data model:
data structures and integrity rules (entity and referential integrity);
database design: entity relationship (ER) model, functional dependencies,
avoidance of redundancy and normalization; mapping ER-models to
relational tables; basics of relational algebra and relational calculus; SQL:
data definition and data manipulation languages; basics of QBE; database
security: backup and recovery, concurrency control.

Course Content
Chapter 1 - Introduction
1.1 Overview
1.2 Basics of Databases
1.3 File organization verses Database approach
1.4 Users and actors of Database Systems
Chapter 2 - Database System Architecture
2.1 Data models, Schemas, and Instances
2.2 Overview of data models
2.3 DBMS Architecture and Data Independence
Chapter 3 - The ER Model
3.1 The high-level conceptual model
3.2 Entities, Attributes, and Keys
3.3 Relationships, Associations, and Constraints
3.4 The ER Diagrams
3.5 Mapping ER-models to relational tables
Chapter 4 - Functional Dependency and Normalization
4.1 Functional Dependency
4.2 Normal Forms
Chapter 5 - The SQL Language
5.1 Data Definition Language
5.2 Data Manipulation Language
5.3 Basic Queries in SQL
5.4 Views
Chapter 6 - The Relational Data Model and the Relational Algebra
6.1 The Relational Model Concepts
6.2 The Relational Constraints and Relational Database Schemas
6.3 The Relational Operations
Chapter 7 - Data Protection
7.1 Data recovery
7.2 Concurrency
7.3 Data Security
Teaching Methods
- Lecture, Lab, Project Work
Method of Assessment
-
Lab: 20%

-
Project work: 50%

-
Final exam: 30%

Teaching material
- R. Elmasri and S. B. Navathe: Fundamentals of Database Systems, 4th
edition,
Addison-Wesley.
References
- C. J. Date: An Introduction to Database Systems, Addison-Wesley, 8th
edition, 2003.
- A. Silberschatz, H. F. Korth, and S. Sudarshan: Database System
Concepts, McGraw
Hill, 5th edition, 2005.

- T. Connolly and C. Begg: Database Systems - A Practical Approach to


Design,
Implementation and Management, Pearson Education Ltd, 4th edition,
2005.

CSC 231: Object-Oriented Programming

Credit Hours: 4

Lecture Hours: 3

Laboratory Hours: 2

Prerequisites: CSC 132

Course Objectives

At the end of the course, students will

 understand the basic principles of object-oriented programming,


 acquire the necessary skills for developing object-oriented programs,

 know the main features of Java, and

 be able to implement object-oriented methodology as it relates to Java and


create Java
programs and Applets.

Course Description

Introduction to object-orientation: object-oriented principles; Java


programming: variable types and identifiers, number types, strings,
constants, operators and operator precedence, type conversion, arrays and
array lists, modifiers, Java exceptions; decision and repetition statements:
statements, if statement, switch statement, for loop, while and do while
loop; objects and classes: object variables, defining a class, instantiating
and using objects, instance fields, constructors and methods; OOP concepts:
inheritance, method overloading and overriding, encapsulation,
polymorphism, abstract classes and interfaces; AWT and Swing: AWT
features, Swing features, AWT components, Swing components, Event
handling: sources, listeners and events; Applets: overview of Java applets,
Java applets Vs Java applications, HTML tags for Applets.
Course Content

Chapter 1 - Introduction to Object-Oriented Programming

1.1 Types of computer languages

1.2 Overview of OO principles

1.3 Overview of Java Programming and types of Java Programs (Definition of


Java Application, Java Applets; Editing, Compiling and Interpreting)

Chapter 2 - Basics in Java Programming

2.1 Variable types and identifiers


2.2 Number types, strings, constants

2.3 Operators and operator precedence

2.4 Type Conversion/ Casting

Chapter 3 - Decision and Repetition Statements

3.1 Overview of Java statements

3.2 If statement

3.3 Switch statement

3.4 For loop

3.5 While, Do while loop

Chapter 4 -Objects and Classes

4.1 Object variables

4.2 Defining a class

4.3 Instantiating and using objects

4.4 Instance fields, Construction and methods

Chapter 5 - OOP Concepts

5.1 Inheritance, method overloading and overriding

5.2 Encapsulation

5.3 Polymorphism

5.4 Abstract classes and Interfaces

Chapter 6 - AWT and Swing

6.1 Components of AWT and Swing (Frame, Label, Button, TextField,

ComboBox; JFrame, JLabel, JButton, JTextField, JcomboBox)


6.2 Event handling (Sources, Listeners, Events)

Chapter 7 -Java Applets

7.1 Overview of Java Applets

7.2 Java Applets Vs Java Application

7.3 HTML tags and Java Applets

Teaching Methods

- Lecture, Lab

Method of Assessment

- Lab: 20%

- Continuous assessment 50%

-Final exam: 30%

Teaching material

- Herbert Schildt: Java 2 A Beginner‟s Guide, Second Edition, Tata McGraw-Hill, 2003.
References
- H. M. Deitel and P. J. Deitel: Java, How to Program, 8th Edition, New Delhi, 2010.
- P. Naughton and H. Schildt: Java 2: The Complete Reference, 3rd edition, Osborne
Publishing, 1999.
- T. Budd: Understanding Object Oriented Programming with Java, Addison-Wesley,
2000.
CSC 239: Rapid Application Development

Credit Hours: 4

Lecture Hours: 2

Laboratory Hours: 2

Prerequisites: CSC 132

Course Objectives

Upon completing the course, students will able to

know and understand visual programming,

know how to develop application software using Visual Basic,

understand and design user interface,

know how to create database connectivity using Visual Basic, and

design, develop and implement application software for real world


problems using
Visual Basic.Net by connecting to a database.

Course Description

Introduction to Visual Basic programming environment; introduction to the


integrated
development environment; building an application; variables, constants,
data types, and
expressions; modifying applications; looping and multiple forms; using
menus, dialogs,
procedures, functions, and arrays; debugging, executable files, and
distribution.

Course Content

Chapter 1 - Introduction to Visual Basic Programming Environment

1.1 Visual Basic.Net and the Visual Basic programming language

1.2 Program development

1.3 Phases of the development cycle

1.4 Object-oriented programming and design

1.5 Rapid application development

Chapter 2 - Introduction to the Integrated Development


Environment

2.1 Basic components of Visual Basic integrated development environment

2.2 Customizing the environment

2.3 Setting properties on controls and navigating the code window

2.4 Modifying code in a project

2.5 Running a project

Chapter 3 - Building an Application


3.1 Designing an application

3.2 Working with forms

3.3 Using controls - label, textbox, numeric up down, and button

3.4 Changing property values of controls

3.5 Writing and document code

3.6 Evaluating and modify a program

Chapter 4 - Variables, Constants, Data Types, and Expressions

4.1 Declaring variables and constants

4.2 Using variables and constants within code

4.3 Describing data types

4.4 Converting between data types

4.5 Coding a form load event procedure

4.6 Using the option strict statement

4.7 Arithmetic expressions

4.8 Order of operator precedence in code

4.9 Pmt and format functions

Chapter 5 - Modifying Applications

5.1 Combo Box control

5.2 If…Then…Else… structure and nested structures

5.3 Selection structure

5.4 Validation of input

5.5 Strings in code


5.6 Rational and logical operators in code

Chapter 6 - Looping and Multiple Forms

6.1 Adding forms to a project

6.2 Changing default of forms

6.3 Displaying item lists on forms

6.4 Using form controls

6.5 Working with collections in code

6.6 Do Until, Do While loops

6.7 For…Next and For Each Next loops

Chapter 7 - Using Menus, Dialogs, Procedures, Functions, and Arrays

7.1 Adding menus to applications and shortcuts

7.2 Common dialog boxes in an application for user interaction

7.3 One- and multidimensional arrays in code

7.4 Function procedure to return a value

7.5 Sub-procedures

Chapter 8 - Debugging, Executable Files, and Distribution

8.1 Differences among syntax, logic, and run-time errors

8.2 Locate errors during design and run time

8.3 Setting breakpoints

8.4 Stepping to execute one statement at a time

8.5 Evaluating variables and expressions

8.6 Changing values of variables using debugging tools


8.7 Examining variables and objects

8.8 Creating executable files

8.9 Creating a setup program to distribute a Windows application

Teaching Methods

- Lecture, Lab, Project

Method of Assessment

- Lab: 20%

- Continuous assessment 30%

- Project: 20%

- Final exam: 30%

Teaching material
- Steven Holzner: Visual Basic .Net Programming Black Book, Dream Tech
Press.

References
- Serguson Patterson Beres, Boutquin, Gupta: C# Programming Bible,
Wiley-Dreamtech
India Pvt Ltd.

- McCarter David: Visual Basic .Net Complete, APRESS, USA.

- Willis Crossland Blair: Beginning VB .Net 2003, Dream Tech Press.


CSC 234: Assembly Language Programming

Credit Hours: 3

Lecture Hours: 2

Laboratory Hours: 2

Prerequisites: CSC 227

Course Objectives

Upon completing the course, students will able to

 develop simple assembly language programs and understand the


underlying

operations of more complex programs,

 understand the role of interrupts in performing I/O, and

 write and use functions, and understand how function calls are carried
out, including passing parameters.

Course Description

Assembly language fundamentals; editing, assembling, and linking an


assembly program; basics of assembly language programming (program
segments, instruction components, instruction sets, addressing modes, data
movement instructions, arithmetic and logic instructions, program control
instructions); basic directives and instructions; assembly program structure;
variable declaration and memory allocation; data types and addressing
modes; input/output: character I/O, basic arithmetic, number I/O; control
transfer: subroutines, jumps, loops; macros and structures; conditional
assembly directives; string I/O and manipulation; modular programming;
file processing; interrupts.

Course Content

Chapter 1 - Assembly Language Fundamentals

1.1 Basic elements of Assembly language

1.2 Assembling, linking, and running programs

1.3 Defining data

1.4 Symbolic constants

1.5 A 32-bit Assembler program template

1.6 Input/output of numbers and strings

Chapter 2 - Data Transfers and Arithmetic

2.1 Data transfer instructions

2.2 Addition and subtraction

2.3 Data-related operations and directives

2.4 Indirect addressing

2.5 JMP and LOOP instructions

Chapter 3 – Procedures

3.1 Linking to an external library

3.2 Stack operations

3.3 Defining and using procedures

Chapter 4 - Conditional Processing


4.1 CPU flags

4.2 Boolean and comparison instructions

4.3 Conditional jumps

4.4 Conditional loop instructions

Chapter 5 - Integer Arithmetic

5.1 Shift and rotate instructions

5.2 Shift and rotate applications

5.3 Multiplication and division instructions

Chapter 6 - Procedures and Functions

6.1 Passing parameters (by value and by reference, in global variables, in


registers,
on the stack, in the code stream)

6.2 Function results

6.3 Recursion

Chapter 7 - Interrupt Handling

7.1 Hardware interrupts

7.2 Runtime program structure

7.3 Working with COM programs

7.4 Interrupt handling

7.5 Working with system speaker

7.6 DOS memory map

7.7 Ports map

Teaching Methods
- Lecture, Lab

Method of Assessment

- Lab: 20%

- Continuous assessment 50%

- Final exam: 30%

Teaching material

- Richard Trooper: Assembly Language Programming the IBM PC, McGraw


Hill, 1994.
References
- Kip Irvine: Assembly Language for Intel-Based Computers, 5th edition,
Prentice Hall,
2006.
- P. Abel: IBM PC Assembly Language and Programming, 5th edition,
Prentice Hall,
2005.

CSC 256: Advanced Database Management Systems.

Credit Hours: 3
Lecture Hours: 3

Laboratory Hours: 0

Prerequisites: CSC 255

Course Objectives

At the end of the course, students will

 have an in-depth understanding and implementation of concurrency


control, transaction
management, and database security,

 be introduced to object-oriented and object-relational database design,

 learn query optimization, and

 be introduced to database security and authorization.

Course Description

Concepts of Object-Oriented databases; object relational and extended


relational databases; query processing and optimization;transaction
processing concepts; database

recovery techniques; database security and authorization.

Course Content

Chapter 1 - Concepts of Object-Oriented Databases

1.1 Overview

1.2 Object Identity

1.3 Object Structure

1.4 Type Constructors

1.5 Encapsulation of Operations


1.6 Methods and Persistence

1.7 Type Hierarchies and Inheritance

1.8 Polymorphism

1.9 Multiple and Selective Inheritance

Chapter 2 - Object database standard and languages and design

2.1 Overview of the Object Model of ODMG

2.2 The Object Definition Language

2.3 The Object Query Language

2.4 Object Database Conceptual Design

2.5 Examples of ODBMS‟s

Chapter 3 - Object relational and extended relational databases

3.1 Evolution and Current Trends of Database Technology

3.2 Object-Relational Features of Oracle

3.3 Implementation and related issues for Extended type systems

Chapter 4 - Query processing and optimization

4.1 Overview

4.2 Translating SQL queries into Relational Algebra

4.3 Using Heuristics in Query Optimization

Chapter 5 - Transaction Processing Concepts

5.1 Introduction

5.2 Transaction and System concepts

5.3 Desirable properties of Transactions


5.4 Schedules and Recoverability

5.5 Serializability of Schedules

Chapter 6 - Database Recovery Techniques

6.1 Recovery Concepts

6.2 Recovery based on deferred update and immediate update

6.3 Shadow paging

Chapter 7 - Database Security and Authorization

7.1 Introduction

7.2 Discretionary Access control based on Granting/Revoking of privileges

7.3 Multilevel Security

Teaching Methods

- Lecture, Lab Assignment, Project Work

Method of Assessment

- Project work: 20%

- Continuous assessment 50%

- Final exam: 30%

Teaching material

- R. Elmasri and S. B. Navathe: Fundamentals of Database Systems, 4th edition,


Addison-Wesley.
References
- C. J. Date: An Introduction to Database Systems, Addison-Wesley, 8th edition, 2003.

- A. Silberschatz, H. F. Korth, and S. Sudarshan: Database System Concepts, McGraw


Hill, 5th edition, 2005.
- T. Connolly and C. Begg: Database Systems - A Practical Approach to Design,
Implementation and Management, Pearson Education Ltd, 4th edition, 2005.

- M. Gunderloy, J. L. Jorden and D. W. Tschanz: Mastering Microsoft SQL Server 2005,


Wiely, 2005.

- R. Ramakrishnan and J. Gehrke: Database Management Systems, 3rd edition, McGrawHill,


2002.

CSC 213: Data Communications and Computer Networks

Credit Hours: 3

Lecture Hours: 2

Laboratory Hours: 2

Prerequisites: CSC 101

Course Objectives
At the end of the course, students will

 Be introduced to the fundamentals of computer networking and the


Internet,

 Know different transmission media and their characteristics,

 Be introduced to the architectures and protocols of computer networks


and the Internet,

 Gain a broad understanding of computer networks and data


communications, and

 Have a an understanding of network security and network management.

Course Description

Applications of computer networks; overview of the OSI and TCP/IP


reference models, the Internet; network types: LAN, MAN, WAN, Intranet,
Internet; network protocols; analog and digital signals, modulation,
multiplexing, synchronous and asynchronous

communication; guided and unguided transmission media and their


characteristics: guided media (twisted pair, coaxial cable, fiber optic),
unguided media (satellite, microwave, radio), encoding, multiplexing,
transmission impairments; connecting devices: repeater, hub, switch,
bridge, router, gateway, firewall; switching techniques: circuit switching,
packet switching, message switching; error detection and correction; flow
and error control; multiple access methods; network topologies: bus, ring,
star, mesh; LANs: Ethernet (standard, fast, gigabit), token bus, token ring;
WANs: addressing, routing; network security; network management.

Course Content

Chapter 1 - Introduction to Networking

1.1 Definition of Computer Networks


1.2 Communication components (message/data, source, medium,
destination, protocol)
1.3 Terminologies (LAN, MAN,WAN; Guided transmission media - Twisted
Pair,
Fiber, Coaxial; Unguided transmission media - Satellite, Radio wave; Direct

link, Indirect link, Point to point, Multipoint; Simplex, Half-duplex, Full


Duplex)

1.4 Application of Computer Networks

Chapter 2 - Protocols and Architectures

2.1 Overview of the OSI reference model

2.2 TCP/IP reference model (TCP/IP protocol architecture)

2.3 Comparison of OSI and TCP/IP reference models

2.4 Network protocols

2.5 Some protocols in TCP/IP protocol suite (SMTP, HTTP, FTP)

Chapter 3 - Data Encoding, Data Transmission and Multiplexing

3.1 Analog and digital signals (Analog and digital transmission)

3.2 Modulation (digital data, analog signal; digital data, digital signal;
analog data,

analog signal; analog data, digital signal)

3.3 Encoding (NRZ, Manchester and Differential Manchester, Scrambling


techniques)

3.4 Multiplexing (FDM, TDM)

3.5 Transmission impairments (attenuation, delay distortion, noise)

Chapter 4 -Data Link Control


4.1 Fragmentation/Packetization, Reassembly

4.2 Flow Control (Stop and wait, Sliding windows - Go back N, Selective
repeat;
ARQ)

4.3 Error Detection and Correction (Parity, CRC)

Chapter 5 - Local Area networking technologies

5.1 Access methods (ALOHA, CSMA/CD, CSMA/CA, TokenPassing)

5.2 Ethernet and Ethernet Standards (Traditional, Fast, Gigabit, MAC


address)

5.3 Token-ring, Token-bus

5.4 Network topologies (bus, ring, star, mesh)

5.5 LAN components (NIC,Cables and Connectors)

Chapter 6 -Internetworking Devices

6.1 Repeaters and Hubs

6.2 Bridges and Switches

6.3 Routers

6.4 Gateways

Chapter 7 –WANs

7.1 Introduction to WANs

7.2 Circuit Switching (Circuit switching applications)


7.3 Packet Switching (Virtual Circuit Switching, Datagram Packet
Switching)

7.4 Message switching

7.5 Introduction to Routing


7.6 Routing algorithms (Dijkstra‟s Algorithm)

Chapter 8 - The Internet

8.1 History of the Internet

8.2 IP versions and Addressing (IPv4 andIPv6) – Subnetting\

8.3 Some network services (DNS, DHCP)

Chapter 9 - Network security and Management

9.1 Networks and the security threats

9.2 Types of security (physical security, server security, client security,


network
security)

9.3 Common Security Mechanisms (Firewall, Encryption)

9.4 Network Management (maintain user and group accounts, network


resources
management, backup)

Teaching Methods

- Lecture, Lab

Method of Assessment

- Lab: 20%

- Continuous assessment 50%

- Final exam: 30%

Teaching material

- A. S. Tannenbaum: Computer Networks, Prentice Hall, 4th edition, 2003.


References
- B. A. Forouzan: Data Communications and Networking, 3rd edition, 2003.
- D. E. Comer and R. E. Droms: Computer Networks and Internets, with
Internet
Applications, 4th edition, Prentice Hall, 2003.

- J. F. Kurose and K. W. Ross: Computer Networking: A Top-Down Approach


to the
Internet, 3rd edition, Pearson Education, Inc., 2005

CSC 232: Internet and Website Development

Credit Hours: 4

Lecture Hours: 3

Laboratory Hours: 2

Prerequisites: CSC 132

Course Objectives
At the end of the course, students will

 understand the basic operation of the Internet and be familiar with


Internet terminology,
 have knowledge about XML markup language and be familiar with a
number of
extended markup languages based on XML,

 have good understanding about a Scripting Language,

 have practical experience of using the Internet,

 know how to design web pages using HTML, and

 develop Websites using HTML, Java Script, and FrontPage.


Course Description

Characteristics of web-based information systems; Web server and security;


Web browsers
and plug-ins; HTTP protocol; Web page (static and dynamic) design and
development; client side scripting using JavaScript, VBScript; server-sides
cripting (CGI, JSP, ASP, PHP,

Java Servlets); database-driven web application development; overview of


XML.
Course Content

Chapter 1 - HTTP - the Hypertext Transfer Protocol

1.1 Introduction

1.2 The World Wide Web (WWW)

1.3 The Client/Server Architecture of the WWW

1.4 The Domain Name System (DNS)

1.5 URL
1.6 HTTP Header

1.7 HTTP Request/Response, the Stateless nature of HTTP

1.8 Web browser configuration

1.9 HTTP Authentication

Chapter 2 - Static HTML

2.1 HTML Document Structure and HTML Tag Format

2.2 Hyper-Links

2.3 Tables, Frames

2.4 Forms, Form Elements

2.5 Image Maps, Special Characters, Meta Data

2.6 Browser Compatibility Issues

Chapter 3 – Design Issues

3.1 Design Look and feel of a web site

3.2 Usability, Accessibility, Good and Bad web sites, Pitfalls, Ethics

Chapter 4 - ClientSide Scripts

4.1 Cascading Style Sheets (CSS)

4.2 Client Side Scripting with JavaScript

4.3 Dynamic HTML (DHTML)

4.4 The Document Object Model (DOM)

4.5 Application of ClientSide Scripts

Chapter 5 - Server Side Programs


5.1 Configuring the Apache Web Server

5.2 The Common Gateway Interface (CGI)5.3 Server Side Scripting with
PHP
5.4 Session Control

Chapter 6 - Database Driven Websites

6.1 PHP/MySQL

6.2 Generating Dynamic Content

Teaching Methods

- Lecture, Lab

Method of Assessment

- Project work: 20%

- Continuous assessment 50%

- Final exam: 30%

Teaching materials

- Donna Baker: HTML Complete Course, Hungry Minds Inc., USA.

- Sybex, XML Complete, Sybex Publisher.

References
- Douglas E.Comer: Internet Book – Everything you need to know
about Computer
Networking, Prentice Hall of India.

- Nicolaus C. Zakas: Java Script for Web Developers.


CSC 345: Introduction to Artificial Intelligence

Credit Hours: 4

Lecture Hours: 3

Laboratory Hours: 2

Prerequisites: CSC 315

Course Objectives

At the end of the course, students will

 understand the basic concepts and methods of artificial intelligence,


 be aware of the problems and methods in the field of artificial intelligence,

 be introduced to the methods of data representation, selection of data


structures and
algorithms useful in the design and implementation of intelligent systems,
and

 know artificial intelligence programming language.

Course Description

Concepts of Artificial Intelligence; basics of search; knowledge


representation and reasoning; planning; Bayesians networks; intelligent
agents; evolutionary computation;
machine learning.

Course Content

Chapter 1 - Introduction to AI

1.1 Why AI?

1.2 Definitions, Approaches and Foundations of AI

1.3 History of AI

Chapter 2 - Basics of Search

2.1 Introduction

2.2 What is Search? (how to search? formulating search problems)

2.3 State and state space (types of search problems, State space search and
examples, State space representation, Performing state space search)

2.4 Search strategies (uninformed search strategies, constraint satisfaction


problem; heuristic search strategies; heuristic functions; greedy search; A*
search, etc.)

Chapter 3 - Knowledge Representation and Reasoning


3.1 Introduction (Knowledge representation, Physical symbol hypothesis)

3.2 Propositional Logic

3.3 Predicate Calculus (First-order Logic)

Chapter 4 – Planning

4.1 Introduction

4.2 Plans and Planning (Planning as search; Knowledge representation for


planning)

Chapter 5 - Bayesians Networks

5.1 Uncertainty

5.2 Probability

5.3 Making decisions under uncertainty

5.4 Probability basics

Chapter 6 - Intelligent Agents

6.1 Introduction

6.2 Agents and Environments

6.3 Task environments

Chapter 7 - Evolutionary Computation

7.1 Introduction

7.2 Genetic algorithm

7.3 Genetic programming

Chapter 8 - Machine Learning

Teaching Methods

- Lecture, Lab
Method of Assessment

- Lab: 20%

- Continuous assessment 50%

- Final exam: 30%

Teaching material

- Elaine Rich, Kevin Knight: Artificial Intelligence, Tata McGraw Hill.

References
- S. Russell and P. Norvig: Artificial Intelligence: A Modern Approach, 2nd edition,
Prentice Hall, 2002.

- Winston: Artificial Intelligence, 3rd edition, Addison Wesley, 1992.

- M. Negnevitsky: Artificial Intelligence: A Guide to Intelligent Systems, 2nd edition,


Wesley, 2004.

CSC 421: Basic Hardware and Troubleshooting


Credit Hours: 3
Lecture Hours: 2
Laboratory Hours: 2
Prerequisites: CSC 101
Course Objectives
At the end of the course, students will
 be able to describe basic parts of computers,
 know how computers work,
 be able toassemble and disassemble computers,
 be able toupgrade computers, and
 be able to install and configure hardware peripherals.
Course Description
Familiarizing with computer hardware: input/output devices, secondary
storage devices, system case, motherboard, CPU and chipsets, memories,
power supply, Modem, bus and expansion slots, NIC, sound card, ports and
connectors, CMOS; upgrading a PC; operating system foundations;
installing operating systems and application software; system and data
recovery; backup; hardware evaluation techniques and factors; destructive
software; software troubleshooting ;hardware troubleshooting; monitors,
printers and other peripherals; troubleshooting portable computers.
Course Content
Chapter 1 - Familiarizing with computer hardware
1.1 Input and Output devices
1.2 Secondary storage devices
1.3 System Case and Motherboard
1.4 CPU and Chipsets
1.5 Memories
1.6 Power supply
1.7 Central processing unit
1.8 Modem
1.9 Bus and Expansion slots
1.10 Network interface card, sound card
1.11 Ports and connectors, CMOS
Chapter 2 - Upgrading a PC
2.1 Upgrading Basics
2.2 Identifying when and what to upgrade
2.3 Identifying basic procedures for adding and removing computer
components
2.4 Hardware Upgrades (system inputs, upgrading CD and DVD drives,
adding an
internal or external CD or DVD Drive, upgrading system memory)
2.5 Installing a printer and a scanner
2.6 Upgrading Video cards and Monitors
2.7 Software upgrades
Chapter 3 - Operating System Foundations
3.1 Major file systems used in today’s PC
3.2 How to choose which file system to use on a new disk
Chapter 4 - Introducing and Installing operating systems and
Application Software
4.1 The current versions of Windows
4.2 Preparing and installing a system for a new Windows installation or
upgrading
an existing one
4.3 Managing dual boot configuration
4.4 Installing Software
Chapter 5 – Recovery
5.1 System and data recovery
5.2 Create a restoring point
5.3 Restoring the system to an earlier point
5.4 Recovering data using third party software
Chapter 6 – Backup
Chapter 7 - Hardware evaluation techniques and factors
7.1 Performance, Compatibility, Connectivity, Cost, Ergonomics, Reliability,
Availability, Technology, Scalability, Support
Chapter 8 - Destructive Software
8.1 Common types of destructive software
8.2 Understanding software security settings (Firewall, Auto update,
Antivirusenabling)
8.3 Understanding spam (Common Types of Spam, Spam protection)
Chapter 9 - Software Troubleshooting
9.1 Installing and configuring device drivers
9.2 Troubleshooting the operating systems
Chapter 10 - Hardware Troubleshooting
10.1 Using diagnostic software
10.2 Identifying and troubleshooting failed components
Chapter 11 – Monitors
11.1 Introduction to monitor (background and how monitor have changed)
11.2 Define the features of a monitor and what to look for when buying a
monitor
11.3 Define the three major types of monitors and how each works
11.4 Symptoms of a monitor and troubleshooting monitor problems
Chapter 12 - Printers and other Peripherals
12.1 Introducing a printer and types of printers
12.2 What to look for choosing a printer
12.3 Overview of troubleshooting other peripherals
Chapter 13 - Portable Computers
13.1 Troubleshooting portable computers
Teaching Methods
- Lecture, Lab, Demonstration, Hands on exercise
Method of Assessment
- Continuous assessment 40%
- Practical
30%
assessment:
-
Final exam: 30%

Teaching material
- Bigelow‟s: Troubleshooting, Maintenance and Repairing PCs, 5th Edition
References
- Mark Minasi: Upgrade and Maintenance Guide
- PC Upgrading and Maintenance, Smart Computing, Second Edition

You might also like