Computer Science July 2013 Harmonized
Computer Science July 2013 Harmonized
Computer Science July 2013 Harmonized
_____________________________________________________
Prepared By:
Debre Birhan Univeristy Arbaminch University Wollega Univeristy Bule Hora Unversity
Study Program
Bachelor of Science (BSc) Degree
in
Computer Science
Imprint
Study Program for the Bachelor of Science (B.Sc) Degree in Computer Science
The study program was developed by the curriculum development committee from different
Universities mentioned below.
Addis Ababa Univeritsy, Mizan-Tepi University, Mekele University, Wolaita Sodo Univeristy,
Jigjiga University, Haramaya University, Jimma University, Assosa University, Dire Dawa
University, Bahirdar University, DebreBirhan Univeristy, Adama Science and Technology
Univeristy, Arbaminch University, Aksum University, Samara University, Wellega
Univeristy, Wollo University, Wachemo Univesity, Hawassa University, Dilla University,
Bule Hora Unversity AAST University, AST Univeristy,,Adigrat University, Gondar University and
Meda Welabu University.
i
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Approval Section
Department Council
Name Signature
1.__________________________ ____________________
Academic Commission
Name Signature
1.__________________________ ____________________
Senate Council
Name Signature
1.__________________________ ____________________
ii
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
EXECUTIVE SUMMARY
iii
`
TABLE OF CONTENTS
Computers play a major role in shaping the information or the knowledge age. They are also becoming
essential in almost all activities of human life. Furthermore, with the decline in the price of computer
hardware, nations, organizations and individuals that couldn't afford to have computers some years
back can now afford to acquire them. However, the acquisition of the hardware is just one step
towards computerization. The most important step is to be able to use them properly.
This necessitates for a high number of skilled computer scientists who will develop the necessary
applications for the computers, who will administer the computer systems and who will decide on
computer system acquisitions of the organizations and all automation processes in general.
Institutions, enterprises, organizations and companies in all sectors, public and private, are directly or
indirectly being affected by the overwhelming information flow around the world. The effect goes
down to small businesses and even to individuals. Every such unit should be equipped with tools that
enable it to survive in such a dynamic world. Ethiopia is no exception and we must get ready to cope
up with the influence of the knowledge age in our day-to-day life.
A curriculum in Computer Science must be designed in such a way that it addresses the current needs
of the country. Currently, the country has no sufficient number of competent computer professionals in
the various fields of Computer Science. Various Governmental and other organizations have the desire
to use modern information technology. However, there is an acute shortage of technical staff.
2
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Educating and training students for the very dynamic and rapidly changing science and technology
market.
Educating and training students to become life-long learners by providing them with a sound base
in computer science, basic sciences as well as general education.
Motivating students to become innovators who can respond very positively to the challenges and
opportunities presented by new ideas and technologies.
Laying a strong foundation for, and instilling confidence in students who may want to pursue post-
graduate studies later in life.
Cognitive Knowledge
Analyze and demonstrate a high-level understanding of theory and
Skill
principles of Computing systems as a whole
Conduct research in computing to generate new knowledge
Apply knowledge and innovative skills to plan, set up and run
businesses.
Practical Skills Demonstrate, deploy, design and implement computing systems
Exercise management and administration of computing systems
Attitude (Transferable
Prepare, present and reporting research findings orally and in writing.
Skills)
Apply managerial skills
Demonstrate knowledge and understanding of essential facts, concepts, principles and theories
relating to computer science.
Use such knowledge and understanding in the modeling and design of computer-based systems
in a way that demonstrates comprehension of the tradeoffs involved in design choices.
Identify and analyze criteria and specifications appropriate to specific problems, and plan
strategies for their solution.
Analyze the extent to which a computer-based system meets the criteria defined for its current
use and future development.
Deploy appropriate theory, practices, and tools for the specification, design, implementation,
and evaluation of computer-based systems.
4
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Recognize the need for, and an ability to engage in, continuing professional development and
the knowledge and skills to act as research assistants or lecturers in higher education
institutions.
b) Practical skills
Evaluate systems in terms of general quality attributes and possible tradeoffs presented within
the given problem.
Identify any risks or safety aspects that may be involved in the operation of computing
equipment within a given context.
Deploy effectively the tools used for the construction and documentation of software, with
particular emphasis on understanding the whole process involved in using computers to solve
practical problems.
Use current techniques, skills, and tools necessary to maintain and administer computer based
systems.
Apply mathematical foundations, algorithmic principles, and computer science theory in the
modeling and design of computer-based systems in a way that demonstrates comprehension of
the tradeoffs involved in design choices;
Manage one’s own learning and development, including time management and organizational
skills
5
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Keep abreast of current developments in the discipline to continue one’s own professional
development.
Recognize and be guided by the social, professional, and ethical issues involved in the use of
computer technology.
4. GRADUATION REQUIREMENT
.
Clusters
Module Course ECTS Total
Code Module Name Code Courses in a Module Credit ECTS
Introduction to Computer Science 3 5 26
CoSc1011
Fundamentals of Programming I 3 5
CoSc1012
Fundamentals of Programming II 3 5
CoSc1014
3 5
Basic Math1012 Linear Algebra
CoSc- Applied Mathematics for 4
Programming 6
M1011 Math1015 Computer Science
Fundamentals of Database 4 6 12
CoSc2071
Database Advanced Database System 4
CoSc-
Systems 6
M2071 CoSc2072
Computer Computer Security 3 5
CoSc-
Security 5
M4171 CoSc4171
Computer Networking & Data 4 16
6
CoSc2061 Communication
CoSc- Wireless Communication and 3
M2061 Mobile Computing 5
CoSc3062
Computer Network and System 3
Networking Administration 5
CoSc3063
Web Internet Programming 4 7
CoSc-
Development 7
M3101 CoSc3101
Numerical Analysis 3 23
5
Advanced Math2081
6
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Programming
CoSc-
Object Oriented Programming 4 6
M2081 CoSc2082
Advanced Programming 4 6
CoSc2084
CoSc2083 4 6
Data Structures and Algorithms
Computer organization and 3 16
Computer architecture 5
CoSc2043
Architecture Microprocessor and Assembly
and Operating Language Programming 3 5
CoSc2044
CoSc-
Systems Operating System 4 6
M2041 CoSc2045
Fundamentals of Electricity and 3 10
Basic 5
EEng2041 Electronic Devices
Electronics 3 5
EEng2042 Digital Electronics
Fundamentals of Software 3 10
5
System CoSc3091 Engineering
CoSc- Object Oriented Software 3
Development 5
M3091 CoSc3092 Engineering
10
CoSc- Computer Graphics 3 5
CoSc3121
Computer Graphics and HCI
M3121 Human Computer Interaction 3 5
CoSc3122
Discrete Probability and Statistics 3 5 10
Stat3071
CoSc- Mathematic& Discrete Mathematics and 3
M2051 Statistics Combinatory 5
Math2051
Formal Language and Automata 11
Compiler Theory 3 5
CoSc3111
CoSc-
Development Compiler Design 4 6
M3111 CoSc3112
Algorithms and Analysis of Algorithms 3 5 10
CoSc3131
CoSc-
Complexity Complexity Theory 3 5
M3131 CoSc4132
Introduction to Artificial 4 6 10
Intelligent Intelligence
CoSc4142
CoSc-
Systems Logic in Computer Science 2 4
M3141 CoSc3141
Elective Elective I (one course) 4 6 11
CoSc4151
CoSc-
Modules Elective II (one course) 3 5
M4152 CoSc4152
CoSc- Project CoSc4161 Technical Report Writing in 2 4 17
7
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Computer Science
Final Project I 4 6
CoSc4162
Final Project II 4 7
M4161 CoSc4163
Entrepreneurship and Small 5
Mgmt- Business Skill Mgmt310
M3101 Business management 3 5
1
Selected topics in Computer 5
CoSc- Selected Topics
M4181 Science 3 5
CoSc4181
Basic English Communicative English Skills 3 5 10
EnLa1011
EnLa-
Skills Basic Writing Skills 3 5
M1013 EnLa1012
Civics and Ethical Education 3 5 10
Civics and CESt1023
Introduction to Logic (Reasoning
CESt- Logic
Skill) 3 5
M1023 Phil1024
CoSc- Distributed 6
M4191 Systems Int. to Distributed Systems 4 6
CoSc4191
Total 148 240
Elective Courses
Elective I
No. Course CP
1. System Programming 6
3. Multimedia 6
Elective II
No. Course CP
8
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
8. Windows Programming 5
9. Industrial Practice 5
5. PROGRAM/EDUCATIONAL PROCESS
9
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Computer Laboratories
The department needs 4 computer laboratories working 24 hours. Each computer laboratories has a
minimum of 40 computers. Additional specialized simulated lab rooms are expected to be organized
in order to meet the requirements due to the introduction of new courses/advancement in technology.
Laboratories Number of Student /lab Minimum number of Computers
Year 1 40 40
Year II 40 40
Year III 40 40
Year IV 40 40
Total No. of 240
Computers
Remark: When the number of students exceeds the above specified number the laboratory also
increase proportionally.
Libraries
10
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Every course instructor should make available all the required textbooks and reference materials on
the library. These include both the softcopy and hardcopy materials.
Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
First class with
[85, 90) 4.0 A Excellent
[80, 85) 3.75 -
A Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction
- Good
[65, 70) 2.75 B First class
[60, 65) 2.5 +
C
11
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
If someone is caught while cheating during final examination, his/her grade will automatically
be ‘F’. However, other assessments are evaluated as ‘0’.
If someone misses any assessments with a valid justification, he/she has a right to sit for
makeup exam.
Students are not allowed to enter to examination rooms after 30 minutes of examination
commencement.
6. DEGRE NOMENCLATURE
7. ATTAINMENT OF OBJECTIVES
Graduates who are cultivated in academic culture, competent in knowledge and skills and who are
internationally competitive.
12
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Cognitive Abilities: Cognitive abilities are assessed by a combination of written examinations and
continuous assessment, including marked essays, class tests and computer programming problems.
Practical Abilities: Practical Abilities are assessed mostly by continuous assessment. Some of
practical abilities are assessed as part of group project module.
Transferable skills: some skills, like the use of software tools and ability to communicate orally and in
written form are directly assessed, in assignments or projects, other skills are not directly assessed but
their effective use will enhance the students overall performance.
Evaluation will be done based on the midterm exam, assignments, laboratory sessions demonstrations,
Project work, final exam and different continues assessments.
The module code contains four digit number preceded by four letters that designate the home base of
the module and a hyphen and an “M” to differentiate it from the course code. The first digit signifies
year that module is offered and the next two digits signify the order of the module in the program and
the last digit signifies either if that module is a core or elective or general/support (1= Core; 2=
Elective; 3=General/support) Example for the Module code: CoSc-M1011 (This is a module of the
Computer Science program offered in the first year and it is the first module in the program and it is a
core module)
The course code will have four alphabets and four digit numbers like CoSc1011. The four alphabets
code indicates the home base of the program with the first and second alphabets in capital letter, For
instance, CoSc indicates abbreviation of the program of Computer Science. The four digits indicates
the year of course offering (the first number, ‘1’, indicates the level of the course in terms of the year it
is offered; accordingly '1' for 1st year, '2' for 2nd year , ‘3’ for 3rd year and ‘4’ for 4th year courses);
the middle numbers, ‘01’, indicates module code number in the program (example 01, 02, 03, 04, 05,
06, 07, 08, 09, 10), the last number, ‘1’, indicates order of the course within the module.
13
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
15
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
16
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Year I Sem I
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc1011 Introduction to Computer Science 32 48 0 55 5 Parallel
CoSc1013 Fundamentals of Programming I 32 48 16 39 5 Parallel
Math1012 Linear Algebra 48 0 16 71 5 Parallel
EnLa1011 Communicative English Skills 48 0 0 87 5 Parallel
CvEt1021 Civics and Ethical Education 48 0 0 87 5 Parallel
EEng1041 Fundamentals of Electricity and Electronic Devices 32 48 16 39 5 Parallel
240 144 48 378 30
Year I Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc1014 Fundamentals of Programming II 32 48 16 39 5 Parallel
Math1015 Applied Mathematics for Computer Science 64 0 32 93 6 Parallel
EnLa1012 Basic Writing Skills 48 0 0 87 5 Parallel
CoSc3101 Internet Programming I 32 48 16 39 5 Parallel
Statxxxx Probability and Statistics 48 0 32 55 5 Parallel
EEng1042 Digital Electronics 32 48 0 55 5 Parallel
272 96 80 416 31
Year II Sem I
Course Code Course Title Lec Lab Tut HS ECTS Delivery
Mathxxxx Discrete Mathematics and Combinatorics 48 0 32 55 5 Parallel
CoSc2041 Computer organization and architecture 48 0 32 55 5 Parallel
CoSc2071 Fundamentals of Database 48 48 16 50 6 Parallel
Math2081 Numerical Analysis 32 48 0 55 5 Parallel
CoSc2082 Object Oriented Programming 48 48 16 50 6 Parallel
CoSc2083 Data Structures and Algorithms 48 48 16 50 6 Parallel
272 192 112 315 33
Year II Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery
17
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Year IV Sem I
18
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Year IV Sem II
Course Code Course Title Lec Lab Tut HS ECTS Delivery
CoSc4171 Computer Security 48 0 0 87 5 Parallel
CoSc4191 Introduction to Distributed Systems 48 48 16 50 6 Parallel
CoScxxxx Elective II (one course) 32 48 16 39 5 Parallel
CoSc4163 Final Project II 0 0 0 182 7 Parallel
CoSc4181 Selected topics in Computer Science 48 0 0 87 5 Parallel
176 96 32 445 28
1872 1152 528 2969 240
NOTE: 1 Laboratory hour is equivalent with 1 Lecture hour. [1 Lab Hr.=1 Lect Hr.]
19
`
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
[Name of University]
Department of Computer Science
Module Code CoSc-M1011
Module Name Basic Programming
Module Category Core
Module Number 01
Module ECTS 26
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Have clear understanding of the field computer science
Be able to design, code, debug and document large programs using
procedural programming style.
Be able to use the concepts related to Data Structures and
Algorithms to solve real world problems
Apply the principle of mathematical knowledge to prove statements
and solve problems in computing science.
20
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
[Name of University]
Department of Computer Science
Module Code CoSc- M1023
Module Name Civics and Logic
Module Category General
Module Number 02
Module ECTS 10
Mode of Delivery Parallel
Module Competences
Module Objectives
[Name of University]
Department of Computer Science
Module Code EnLa-M1013
Module Name Basic English Skills
Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:
21
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
[Name of University]
Department of Computer Science
Module Code CoSc-M2041
Module Name Computer Architecture and Operating System
Module Category Core
Module Number 04
Module ECTS 16
Mode of Delivery Parallel
Module Competences At the end of this module students will be able to:
Describe the basic structure and operation of a digital
computer
Explain in detail the operation of the arithmetic unit including the
algorithms & implementation of fixed-point and floating-point
addition, subtraction, multiplication & division.
Identify different ways of communicating with I/O devices and
standard I/O interfaces.
Explain the objectives and functions of modern operating systems
Describe the functions of a contemporary operating system with
respect to convenience, efficiency, and the ability to evolve.
Explain the different states that a task may pass through and the
data structures needed to support the management of many tasks.
Explain conditions that lead to deadlock.
Compare and contrast the common algorithms used for both
preemptive and non-preemptive scheduling of tasks in operating
systems, such as priority, performance comparison, and fair-share
schemes.
Explain the concept of virtual memory and how it is realized in
hardware and software
Become familiar with the basic components of 8086 instruction set
architecture
Inspect and modify 8086 processor registers and memory.
Use assembler to develop and run assembly language programs.
Write code to process exceptions and interrupts
Module Description and This module should train the students in basic knowledge and skills
Objectives of the main hardware Components of a Computer – their
construction & operation; how they function to achieve main tasks
of computer operation a practical reference to all programming and
22
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
University Name
College/Institute/Faculty
Department of Computer Science
Module Name Computer Networking
Module Category Core
Module Code CoSc-M2061
Module Number 06
Module ECTS 16
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Acquire the basic concepts and principles in computer networking.
Be able to design, install/configure, manage and troubleshoot small
and medium size computer networks.
Module Description and This module teaches the basic concepts, principles and practices
Objectives associated network and system administration and develop the
student’s ability to understand, analyze, and design and to
implement simple network computer systems. It provides the
knowledge and skills for students to manage modern system
administration issues.
University Name
Institute of Technology
Department of Computer Science
Module Code CoSc-M2071
Module Name Database Systems
Module Category Core
Module Number 07
Module ECTS 12
Mode of Delivery Parallel
Module Competences By the end of this module students will be:
Explain the overview, design and implementation of database
systems.
Describe the general overview and purpose of the database system,
storage devices, and its difference with the traditional file processing
system.
Extend concepts of different issues in advanced database
management systems and advanced database systems
Learn the methodology for building applications on top of database
management system
Define the fundamental terminology used in the relational data
model.
Categorize data models based on the types of concepts that they
provide to describe the database structure—that is, conceptual data
model, physical data model, and representational data model
Describe the modeling concepts and notation of widely used
24
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc-M2081
25
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
26
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Final Exam
University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc -M3091
Module Name System Development
Module Category Core
Module Number 09
Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Understand the basic principles of software engineering
Able to elicit, analyze, specify, validate and produce complete and
consistent requirement document and manage requirement
changes.
Describe the object-oriented software development process,
including object-oriented methodologies and workflows
Understand the issues involved in software project management
and manage software projects
Module Description and The module helps the students to deal with complexity through
Objectives modeling, by introducing the students to the software
development steps: requirement gathering, analysis, design,
implementation, testing and maintenance.
It helps the students to understand several software
methodologies and equips them with the skills to perform system
Requirement analysis, Software specification, Design methods,
Software testing, Software project management techniques;
Software project planning, Risk management; Software Quality
Assurance; Software reuse; and Computer aided software
engineering: with both the structured as well as OO approach.
Basic aims of the module
To build many different models of a system and of the application
domain
Identify system development steps or problem solving steps:
analysis, design, implementation, testing
Describe the methods to deal with system development steps for
developing applications
Identify the different problems related to software development
and techniques of handling them
Courses in the Module
Course Number Course Name ECTS
CoSc3091 Fundamental of 5
27
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Software Engineering
Object Oriented
CoSc3092 Software Engineering 5
Total Study Hours in the Module
Lecture Laboratory Tutorial Home Study Total
96 0 48 126 270
Tests
Quiz
Assessment Methods Assignment
Project
Final Exam
University Name
College/Institute/Faculty
Department of Computer Science
Module Name Web Development
Module Delivery Parallel
Module Code CoSc-M3101
Module Category Core
Module Number 10
Module Weight in ECTS 7 ECTS
28
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
web servers
Specify, build and manage form and content of information-rich
web sites
Design, implement and evaluate client-server systems following
specific protocol specifications, taking into account concurrency
issue.
Module Competency At the end of this module the students will be able to have
Practical use of client based programming
Knowledge about XML markup language and be familiar with a
number of extended markup languages based on XML
A practical knowledge of Internet protocols, web security and
cryptography theory
Practical use of Server based programming
Practical use of MYSQL database management system
Module mode of delivery Parallel
Module Learning and The learning–teaching methodology will be student-centered with
Teaching Method appropriate guidance of instructor/s during the students’ activities.
This includes:
Lecture
Lab work and projects
Tutorials
Assignments
Presentation and Group Discussions
Module Assessment Tests
Technique Quiz
Assignment
Project
Final Exam
University Name
College/Institute/Faculty
Department of Computer Science
Module Name Compiler Development
Module Category Core
Module Code CoSc-M3111
Module Number 11
29
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
30
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
31
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
University Name
College/Institute/Faculty
Department of Computer Science
Module Code CoSc-M3141
Module Name Intelligent Systems
Module Category Core
32
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Module Number 14
Module ECTS 10
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Understand reasoning, knowledge representation and learning
techniques of artificial intelligence
Evaluate the strengths and weaknesses of these techniques and
their applicability to different tasks
Assess the role of AI in gaining insight into intelligence and
perception
know classical examples of artificial intelligence
know characteristics of programs that can be considered
"intelligent"
understand the use of heuristics in search problems and games
know a variety of ways to represent and retrieve knowledge and
information
know the fundamentals of artificial intelligence programming
techniques in a modern programming language
consider ideas and issues associated with social technical, and
ethical uses of machines that involve artificial intelligence
University Name
College/Institute/Faculty
Department of Computer Science
Module Name Computer Security
33
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Module Description and This module teaches the basic concepts, principles and practices
Objectives associated computer security and aware students with the security
threats, vulnerabilities and security mechanisms.
The aim of this module is :
State the basic concepts in information security, including security
attacks, security vulnerabilities, security policies, security models,
and security mechanisms.
Explain concepts related to applied cryptography, including plain-
text, cipher-text, techniques for crypto-analysis, symmetric
cryptography, asymmetric cryptography, digital signature, message
authentication code, hash functions, and modes of encryption
operations.
Discuses about the basic concepts, principles and practices
associated with database security, program security, Operating
system security and network and Internet security.
Explain and compare security mechanisms for conventional
operating systems, including memory, time, file, object protection
requirements and techniques and protection in contemporary
operating systems.
Describe threats to networks, and explain techniques for ensuring
network security, including encryption, authentication, firewalls,
and intrusion detection.
Explain the requirements and techniques for security management,
including security policies, risk analysis, and physical threats and
controls.
34
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Quiz
Assignment
Project
Final Exam
University Name
College/Institute/Faculty
Department of Computer Science
Module Name Distributed Systems
Module Category Core
Module Code CoSc-M4191
Module Number 19
Module ECTS 6
Mode of Delivery Parallel
Module Competences At the end of this module students will:
Acquire the basic concepts and principles in distributed systems.
Be able to develop small distributed applications.
Module Description and This module teaches the basic concepts, principles and practices
Objectives associated distributed systems and aware students with the
challenges in the design and implementation of distributed systems.
The aim of this module is :
To familiarize students with the basic principles and concepts of
distributed systems
To familiarize students with the current distributed technologies
To enable students develop small distributed applications
35
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 26
Course Title: Introduction to Computer Course Code: CoSc1011
Science
Course Description:
An overview of Computer Science; historical development of computers; logical organization of
a computer system; software ,data representation inside computers; computer arithmetic;
computer system architecture(Boolean algebra and logic circuits); overview of computer
networks & Computer security, Lab Introducing the use of PC in an MS DOS, MS Windows
environment; Introduction to main MS application packages in that context – MS Excel, MS
Word, MS access, MS power point, Introduction to using Internet;
Course Goals or Learning Outcome:
Up on the completion of this course, students will be able to:
Find out what computer science is about and explore its applications and impact in other
disciplines
Explain how the computer understands words, numbers, and how data and instructions are
stored, retrieved and processed
Describe basic characteristics of components of a computer system, Illustrate and analyze basics
of Computer architecture
Demonstrate basics of networking. Explain what the Internet is, browse and use the Internet for
information and communication purpose,
Discuss and explain importance of securing computer-based resources (including hardware,
software, and information)
Perquisite: None
Required Texts:
36
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Ref 1: Fikire Sitota and Belay Tedla: fundamentals of information technology; AA, mega
publishing enterprise, 2002
Ref 2: ITL ESL, Introduction to computer science, Pearson edition, 2004
Ref 3: Kenneth C Laudon, Carol Guercio Traver, Jane Price laudon : information
technology and society, second edition, 1996
Ref 4: Dida Midekso, information technology: Addis Ababa University Printing Press, revised
press, 2006.
Ref 5 : William Stallings: Computer Organization and Architecture, 5/E, 6/E, Prentice Hall,
2003
Ref 6: Donald H. Sandar computer concepts and applications; USA; Von Hoffman press, 1987
Ref 7: http://newdata.box.sk/bx/c/
Expectations:
Students are expected to attend all lectures and laboratory sessions with serious discipline and
complete the required assessments. Thus, intensive reading of course texts and frequent practice
of laboratory activities are expected from students.
Students are strongly encouraged to collaborate with one another in studying the textbook and
the lecture material, while they are not permitted to collaborate on exams.
Summary of Assessment Methods:
Assessment methods:
Continuous Assessments (50%):
Lab works
Quizzes
Assignment
Tests
Final exam-50%
Student Workload:
Student workload will be as follows:
Activity Hours
Lecture 32
Tutorials and discussion 0
Labs 48
Home study 55
Total 135
ECTS 5
Schedule
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
37
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
38
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
39
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
This course introduces students to basic computer organization and architecture concepts. It
covers: number systems, Boolean algebra, digital logic circuits and their design, simple machine
architecture, genealogy of microprocessors, von Neumann architecture, the system bus model,
data representation and manipulation, organization of instruction sets and program execution,
microprocessor organization, memory organization, organization of input and output subsystem,
I/O interface; instruction set design philosophies, parallel processing, symmetric multiprocessing
and clustering; case study of at least two microprocessor families and other components of
computing system..
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Describe the basic structure and operation of a digital computer
Explain in detail the operation of the arithmetic unit including the algorithms & implementation
of fixed-point and floating-point addition, subtraction, multiplication & division.
Identify different ways of communicating with I/O devices and standard I/O interfaces.
Describe different performance enhancement of computer architecture
Explain the basic structure of computer hardware & software
Identify the processes involved in the basic operations of CPU
Understand basic concepts of circuits and their design
Prerequisites:
None
Required Texts:
Text book: William Stalling, Computer Organization and Architecture: Designing for
Performance, 7th Edition, Prentice Hall, 2006
40
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Reference books:
Andrew S. Tannenbaum, Structured Computer Organization, 4th Edition, Prentice Hall, 1999
Mano M, Morris, Computer System Architecture, 3rd Edition, 1993
B. Ram, Computer Fundamentals, Architecture and Organization, 2007
5. Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, and Final exam
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Assignments - These consist of activities for directly applying and integrating the concepts
presented in the course. In some cases, you will be given a case scenario to use in the
development of the assignment. These assignments will require you to use critical thinking skills,
logical analysis, and creativity. They may be individual or group assignments.
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course COMPUTER SECURITY has 5*27hr=135 hrs the split up is as shown
below:-:
Lecture 48
Discussion 0
Tutorials 32
Project 0
Lab work 0
Private study 30
Assessment 15
Total 135
Polices:
41
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)
+Assignment(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above
Week 1 Introduction
Logic gates
Boolean Algebra
Combinational circuit
Flip Flops
Sequential circuits
Week 2 Number Systems and Codes
Data types
Complements
Fixed point representation
Floating point representation
Codes
Week 3 Common Digital Components
Integrated Circuits
Decoders, multiplexers and registers
Binary counters
Memory units
QUIZ-1
Week 4 Register Transfer Language and Micro Operations
Register Transfer Language
Bus and Memory Transfer
ASSIGNMENT -1
Week 5 Register Transfer Language and Micro Operations
Arithmetic and Logic Operations
Shift Micro operations
TEST # 1
42
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
43
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 15%
Test # 2 15%
Final examination 35%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Total 100%
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 5
Course Tile: Computer Security Course Code: CoSc 2043
Course Description:
What is an Operating System, history of operating system, operating system zoo; process
concept, process scheduling, inter-process communication; threads; CPU scheduling, basic
concepts, scheduling criteria, scheduling algorithms; process synchronization, the critical section
problem, semaphores, monitors, classical synchronization problems; deadlocks, avoidance,
prevention, detection; memory management, physical and virtual memory, swapping, allocation,
paging, segmentation; file systems, access methods, directory structure, file sharing and
protection; security, authentication, intrusion detection, encryption.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Explain the objectives and functions of modern operating systems
Describe the functions of a contemporary operating system with respect to convenience,
efficiency, and the ability to evolve.
Explain the different states that a task may pass through and the data structures needed to support
the management of many tasks.
Explain conditions that lead to deadlock.
Compare and contrast the common algorithms used for both preemptive and non-preemptive
scheduling of tasks in operating systems, such as priority, performance comparison, and fair-
share schemes.
Explain the concept of virtual memory and how it is realized in hardware and software
Prerequisites:
Computer Organization and Architecture
Required Texts:
Text book: Andrew Tanenbaum, Modern Operating Systems, 2nd Edition, USA,
Prentice-
Hall, 2001
Reference books:
William Stallings, operating Systems: Internals and Design Principles, 5th Edition, Prentice-Hall,
2005
Abraham Silberschatz, P.B. Galvin and G. Gagne, Operating Systems Concepts, 6th Edition,
John Wiley &Sons ,2006
45
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Laboratory Assignments - These consist of activities for directly applying and integrating the
concepts presented in the course. In some cases, you will be given a case scenario to use in the
development of the assignment. These lab assignments will require you to use critical thinking
skills, logical analysis, and creativity. They may be individual or group assignments.
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course COMPUTER SECURITY has 5*27hr=135 hrs the split up is as shown
below:-:
Lecture 32
Discussion 10
Tutorials 0
Project 0
Lab work 48
Private study 30
Assessment 15
Total 135
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above
46
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Week 1 Overview
Role and purpose of operating systems
History of operating system development
Types of operating systems
Inter-process communication
IPC and the race condition
Critical sections (or regions) and mutual exclusion
QUIZ-1
Week 4 Processes and process management
Process scheduling
Preemptive and non preemptive scheduling
Scheduling policies
ASSIGNMENT -1
Week 5 Processes and process management
Deadlock
Detection
Prevention
Avoidance
TEST # 1
Week 6 Memory management
Review of physical memory and memory management
hardware
Overlays, swapping, and partitions
47
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 35%
48
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
Microprocessor architecture; memory organization; assembly language programming;
microprocessor assemblers; use of microprocessor boards; memory and I/O interfaces;
programming peripherals; interrupt system programming; microprocessor system design and
applications.
49
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Prerequisites:
Computer Organization & Architecture
Required Texts:
Text book: The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80486, Pentium and
Pentium processor – Architecture, Programming and Interfacing by Barry B Brey. 4th Edition,
prentice Hall – India – 2002
Reference books:
Ouglas v. Hall 'Microprocessors and Interfacing', Tata McGraw hill
Uffenbeck 'Microcomputers and Interfacing', prentice hall
Ram 'Fundamentals of Microprocessors and Microcomputers', Dhanpat Rai
Ompkins 'PC interfacing', prentice hall
Richard Trooper, Assembly Language Programming the IBM PC, McGraw Hill, 1994
Vlad Pirogov, the Assembly Programming Master Book, 2006
Peter Abel, IBM PC Assembly Language and Programming, 5h Edition, 2001.
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, lab exam and Final exam
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Laboratory Assignments - These consist of activities for directly applying and integrating the
concepts presented in the course. In some cases, you will be given a case scenario to use in the
development of the assignment. These lab assignments will require you to use critical thinking
skills, logical analysis, and creativity. They may be individual or group assignments.
50
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course COMPUTER SECURITY has 5*27hr=125 hrs the split up is as
shown below:-:
Lecture 32
Discussion 10
Tutorials 0
Project 0
Lab work 48
Private study 30
Assessment 15
Total 135
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above
51
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
TEST # 1
Week 6 Computer organization
Memory
CPU
Week 7 Computer organization
The 80x86 family of CPUs
Interrupts
Registers
QUIZ -2
Week 8 Assembly Languages
Machine language
Assembly languages
Week 9 Assembly Languages
Instruction operands
Basic instructions
Directives
ASSIGNMENT -2
Week 10 Creating a program
First program
Compiler dependencies
Assembling the code
52
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 35%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Lab Examination 10%
Total 100%
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
53
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
This course is assumed to be the first course in database management systems. It starts by
introducing what database is and database systems, and how it differs with the traditional file
processing system. It then deals with data models, ER diagrams, database design methods,
normalization, relational algebra and calculus, file organizations and storage management, index
structure for files, and SQL statements. The course mainly emphasizes on basics of database
systems how to retrieve and modify data. It also deals different database environments.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Understand what database is, database system and DBMS
Differentiate database system from file system
Identify the pros and cons of manual approach, file based approach and database approach
Understand the basic principles of database design systems using different database models
Appreciate the use of database system in the real world.
Design different types of databases
Understand database normalization & functional dependency
Understand the principles of relational database management systems and their languages
Understand file organizations and storage management, and index structure for files
Demonstrate queries in the relational algebra.
Demonstrate queries in the tuple relational calculus.
Create a relational database schema in SQL that incorporates key, entity integrity, and referential
integrity constraints.
Prerequisites: Introduction to Computer Science (CoSc1011)
Reference
Text book:
Ramez Elmasri and Shamkant B. Navathe (2000) Fundamentals of Database Systems, 3rd
edition.
Reference books:
Massachusetts Addison Wesley C. J. Date (2000) an Introduction to Database Systems.
Massachusetts: Addison Wesley
Ramakrishna, Raghu & Johannes Gehrke (2000) Database Management Systems, 2nd edition.
McGraw Hill
Shepherd John C. (1990) Database Management: Theory and Practice. Boston:
IRWIN
Database Management Systems, 2nd edition Ramakrishna & Johannes Gherkin , McGraw Hail,
1998.
Database System Concepts 3/e. Abraham Sibcrschatz H e r i y F Korth & S. Sudarshan, McGraw-
Hill, 1997.
A First Course in Database Systems, Jeffrey Ullman & Jennifer Widom, Prentice-Hall, 1997.
Database System Implementation, Hector Garcia-Molina, Jeffrey Ullman & Jennifer Widom,
Prentice-Hall, 2000.
Readings in Database Systems, Michael Stonebraker & Joe Hellerstein, Eds, Morgan-
Kaufmann, 1998
54
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, Project, Mid exam and Final exam
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment, if not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
8. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamentals of Database Systems has 6*27hr=162 hrs the split
up is as shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Home study 50
Total 162
9. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
56
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Course Description:
This course deals with, query optimization, transaction management, recovery, and concurrency
control, database authorization and security. Additional topics including, object oriented and
object relational database system, distributed databases, databases, and integration may also be
covered. A major component of the course is a database implementation project using current
database languages and systems.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Describe the main concepts of the OO model such as object identity, type constructors,
encapsulation inheritance, polymorphism, and versioning
Evaluate a set of query processing strategies and select the optimal strategy. Know the basics of
transaction management and concurrency control
Understand database security
57
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Reference
Text book:
Ramez Elmasri and Shamkant B. Navathe (2000) Fundamentals of Database Systems, 3rd
edition.
Reference books:
Massachusetts Addison Wesley C. J. Date (2000) an Introduction to Database Systems.
Massachusetts: Addison Wesley
Ramakrishna, Raghu & Johannes Gehrke (2000) Database Management Systems, 2nd edition.
McGraw Hill
Shepherd John C. (1990) Database Management: Theory and Practice. Boston:
IRWIN
Database Management Systems, 2/e. Raghu Ramakrishna & Johannes Gehrke , McGraw Hill,
1998.
Database System Concepts 3/e. Abraham Sibcrschatz H e r i y F Korth & S. Sudarshan, McGraw-
Hill, 1997.
A First Course in Database Systems, Jeffrey Ullman & Jennifer Widom, Prentice-Hall, 1997.
Database System Implementation, Hector Garcia-Molina, Jeffrey Ullman & Jennifer Widom,
Prentice-Hall, 2000.
Readings in Database Systems, Michael Stonebraker & Joe Hellerstein, Eds, Morgan-
Kaufmann, 1998
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
58
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
8. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamentals of Database Systems has 6*27hr=162 hrs the split
up is as shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Home study 50
Total 162
9. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Date Topic Subtopic Reading
Week 1-2 Concepts for Object-Oriented Databases Ref-1 part 3
Overview of Object-Oriented Concepts Chapter 11
Object Identity, Object Structure, and Type Constructors
Encapsulation of Operations, Methods, and Persistence
Type Hierarchies and Inheritance
59
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
60
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 16
Course Tile: Data Communication and Course Code: CoSc2061
Computer Networks
Instructor Name: Course ECTS: 6
Course Description:
This course will explore the various types of the data communication systems, networks and
their applications. Concept & terminologies like computer networks, layer architecture (OSI &
TCP/IP), network hardware, network software, standardization, network medium, and IP
addressing will be explored. The practical aspect will deal with building small to medium level
networks including Cabling, Configuring TCP/IP, Peer to Peer Networking, Sharing resources,
Client Server Networking.
61
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Prerequisites:
Introduction to Computer Science ()
Required Texts:
Text book: Data Communications and Networking, 4th Edition, Behrouz A. Forouzan
Reference books:
Computer Networks Prentice Hall of India Publication, an S Tannenbaum, 2003
Data and Computer Communication, 8th edition Pearson Prentice Hall, William Stallings, 2007
Computer Networking. Kurose & Ross. Addison Wesley
, Computer Networks and Internet, Pearson Edu.Inc, Douglas E. comer, 2002
Computer Networking, Pearson Edition. Inc., James F. Kurose, 2003
Any Cisco Material (CCNA Module1) will be helpful
Summary of Teaching- Learning Methods:
The teaching-learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and answer questions posed by the instructor and/or other
students.
Lab Works – Students will have lab practices on most of the topics covered.
Projects – Students will be required to work on a design/implementation of a small to medium
level networks for different organizations.
7. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, this course has 6*27hr=162 hrs the split up is as shown below:-:
Lecture 48
Discussion 10
Tutorials 16
62
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Project 10
Lab work 48
Private study 20
Assessment 10
Total 162
8. Polices:
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for
the topics other than the
Week/Date TOPIC TO BE DISCUSSED
text book cited above
63
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
64
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 40%
Assignments (two) 10%
Lab Assessment/Examination 15%
Project 15%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 16
Course Tile: System and Network Course Code: CoSc3063
Administration
Instructor Name: Course ECTS: 5
65
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Course Description:
This course deals with the concepts and techniques of systems and network administration. The
course mainly covers a wide range like host management, network management, host and
network security to automating system administration. In this course students will install,
manage and configure various popular network based services in a Linux environment.
Prerequisites:
CoSc2061– Data Communication and Computer Networks
Required Texts:
References:
“Principles of Network and System Administration” (2nod Edition), John Wiley and Sons Ltd,
Mark Burgess, 2004.
“TCP/IP Network Administration” (3rd Edition), O’Reilly and Associates Inc., Craig Hunt,
2002.
“Running Linux”, (5th Edition), O’Reilly and Associates Inc., Matthias Kalle Dalheimer and
Matt Welsh, 2007.
“Essential System Administration”, 3rd Edition, O’Reilly and Associates Inc., Len Frisch, 2003.
http://en.wikipedia.org/wiki/System_administrator
http://www.ibm.com/developerworks/linux/library/l-linuxboot/
http://www.gnu.org
http://www.ahinc.com/linux101/users.htm
http://www.doc.ic.ac.uk/csg/all-OS/quota.html
http://www.yolinux.com/TUTORIALS/Postfix.html
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid
http://en.wikipedia.org/wiki/Manual_page_(Unix)
http://en.wikipedia.org/wiki/Wireless_LAN
http://en.wikipedia.org/wiki/Dial-up
http://en.wikipedia.org/wiki/Broadband_Internet_access
http://pentangle.net/python/report.pdf
Summary of Teaching- Learning Methods:
The teaching- learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities. In doing this, Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions will be given.
66
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and/or answer questions posed by the instructor and/or other
students.
Lab/practical Works – Students will be required to have lab practices on the relevant topics.
Projects – Students will be required to work on a design/implementation of a small to medium
level system and network administration for different organizations.
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, this course has 5*27hr=135 hrs the split up is as shown below:-:
Lecture 32
Discussion 5
Tutorials 16
Project 5
Lab work 48
Private study 24
Assessment 5
Total 135
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
67
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
[85, 90) 4.0 A First class with
Excellent
[80, 85) 3.75 -
A
Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction
69
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Project 15%
Total 100%
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 7
Course Title: Internet Programming Course Code: CoSc3101
70
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Course Description:
Client-server Architecture: Web page Design and development; information Architecture &
visualization; static & dynamic pages, client side programming using scripting languages
(JavaScript), OOP programming using PHP, File manipulation and Management using PHP.
Multimedia web programming, dynamic web content creation; session tracking; Internet
protocols, PHP Web controls, connecting web page to data base, loading and manipulating XML
documents, web security; cryptography theory.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
The objective of this module is to familiarize students: the concepts, principles and
methods in programming for web and Internet environment and the services and
technologies available and used on Internet.
Specifically, at the completion of this module the student is able to
Provide fundamental concepts and skills for the understanding and development of web-
based applications.
Construct Web sites using HTML and Server Side scripting Languages.
Implement client-side interactivity
Use CSS to manage Web site presentation and maintenance
Select and customize existing technologies to set up and maintain web servers
Specify, build and manage form and content of information-rich web sites
Design, implement and evaluate client-server systems following specific protocol
specifications, taking into account concurrency issue.
Prerequisites:
Computer Networking and Data communication
Required Texts:
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be
Lecture,
Projects and Presentation
Lab work Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like:
Quizzes,
Reading assessments,
Assignments,
Project,
Mid exam and Final exam
71
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Internet Programming has 7*27hr=189 hrs the split up is as shown below:-:
Work load Hour
Lectures 48
Laboratory 48
Tutorials 32
Home Study 61
Total 189
10. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
The final score will be converted to a letter grade using the following scale:
72
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
[40,45) D 1.00
[30,40) FX 0.00
[<30) F 0.00
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date Content Additional Reference
Chapter 1:introduction Donna Baker, “HTML Complete Course”, Hungry
Designing a good website Minds Inc. USA.
Types of web pages (static vs. Internets & World Wide Web How To Program, Third
dynamic), Ed., Author: Deitel, Deitel, and Goldberg, Publisher:
Web page design tools Pearson Education, 2004.
Client Side Scripting HTML, CSS, L.A. Ulrich. Web Design Virtual Classroom.
JavaScript (DOM, DHTML), Applet Osborn.2001
Server Side Scripting PHP Raj Kamal. Internet and web technologies. Tata
McGraw-Hill. 2002
HTML, Black Book, by Holzner
Week 1,2,3,4 Chapter 2: Web page Development L.A. Ulrich. Web Design Virtual Classroom.
using HTML Osborn.2001
What is HTML? Raj Kamal. Internet and web technologies. Tata
HTML tags McGraw-Hill. 2002
creating HTML documents HTML, Black Book, by Holzner
Breaking pages into paragraphs and JavaScript Bible 6th edition by Danny Goodman and
other breaks Michael Morrison
HTML style tag JavaScript for the World Wide Web by Tom Negrino
Lists (ordered and unordered) and and Dori Smith
definition lists Computer Networking with Internet Protocols and
Linking between pages Technology by William Stallings
Uniform resource locator
Linking to a local files (graphical file
or another HTML file)
Linking to the world: Internet sites
Linking to section of a page
Hyper graphics
Address footer and E-mail
Fonts Colors and Colorful and
Textured Backgrounds
Working with tables
Forms And Frames
Cascading Style Sheets (CSS)
CSS Basics
Style Sheet Rules
CSS selectors
Style Properties
Font and Text properties
Foreground and Background properties
Layout and Positioning Properties
73
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Week 7,8,9 Chapter 4: Basics of PHP Head First PHP and MySQL, Lynn Beighley and
What is PHP? Michael Morrison, 2009 O’Reilly Media, Inc.
Features of PHP PHP and MySQL Web Development, Luke Welling
Setting up PHP with apache and Laura Thomson, 2008 Addison-Wesley
Basic PHP syntax Professional
4.4.1 PHP comments PHP & MySQL Web development by Luke Welling
4.4.2 Predefined and user and Laura Thomson
variables PHP5 and MySQL Bible by Tim Converse and Joyce
Variable types in PHP Park with Clark Morgan
Retrieve data from html forms
Displaying errors
Using numbers and strings in PHP
Control structures
Conditional and loop statements
Introducing References
References and arrays
Functions
passing arguments by Reference
Functions : returning by Reference
Week 10,11 Chapter 5: Sessions and Cookies Internets & World Wide Web How To Program, Third
management in PHP Ed., Author: Deitel, Deitel, and Goldberg, Publisher:
What are cookies? Pearson Education, 2004.
Create and use cookies. L.A. Ulrich. Web Design Virtual Classroom.
What are sessions? Osborn.2001
74
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Create and use sessions Raj Kamal. Internet and web technologies. Tata
McGraw-Hill. 2002
HTML, Black Book, by Holzner
Chapter 6: Files and Directories Internets & World Wide Web How To Program, Third
Opening files Writing to a file Ed., Author: Deitel, Deitel, and Goldberg, Publisher:
Locking a file Reading a file content Pearson Education, 2004.
Handling file upload L.A. Ulrich. Web Design Virtual Classroom.
Working with directories Osborn.2001
Raj Kamal. Internet and web technologies. Tata
McGraw-Hill. 2002
HTML, Black Book, by Holzner
Week Chapter 7: Data Base manipulation Practical PHP and MySQL, Jono Bacon, 2007 Pearson
12,13,14 using PHP Education, Inc.
Understanding the MySQL Privilege PHP & MySQL Web development by Luke Welling
System in Detail and Laura Thomson
Locking and concurrency PHP5 and MySQL Bible by Tim Converse and Joyce
Speeding up database queries with Park with Clark Morgan
indexes
General optimization tips
Different table types
Loading data from a file· Making your
database more secure
Web security and cryptography theory
Week 15,16 Chapter 8: Object oriented programming The Internet and Its Protocols : A Comparative
in PHP Approach (The Morgan Kaufmann Series in
Creating a class Networking) by Adrian Farrel
Creating an object Inheritance
What is PEAR? Installation of PEAR
Installation of a PEAR package
Using a PEAR package
9. Assessment Arrangements:
List the assessment methods along with weight distribution. (Tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
Tests, Quizzes, reading assessment and tutorial contributions 20%
Lab Examination 20%
Project 20%
Final Examination 40%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.
Name of Institute
[name of the University]
[Logo] [Department/college/school Name]
UNIVERSITY
75
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Module ECTS: 23
Course Tile: Object Oriented Course Code: CoSc2082
Programming
Instructor Name: Course ECTS: 6
Course Description:
This programming course emphasizes the methodology of programming from an object-oriented
perspective and software engineering principles. It allows students to develop the ability to
analyses programming problems and design and document suitable solutions and to implement
reliable and robust software using contemporary program design methods. Topics to be dealt
with are: classes: data abstraction, information hiding, overloading; inheritance; polymorphism;
exceptions handling.
Course Goals or Learning Outcome:
Upon successful completion of the course, students will be able to:
Explain the basic object oriented concepts
Successfully code, debug and run programs with appropriate development environment
Work on more advanced programs written in Java
Have clear differentiation between structural and object oriented programming paradigms
Prerequisites:
Fundamentals of Programming II
Required Texts:
Text book:
Deitel & Deitel, Java How to Program. 8th ed. Prentice Hall
Eckel, Bruce. Thinking in Java. 4th Ed. New Jersey: Prentice Hall
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions.
The course will follow a rigorous schedule of assignments. Each assignment corresponds to a
section of the course content and textbook. Failure to keep up with the assignments will result in
your failing the course. Each session builds on the prior session and is a required building block
for the following section. It is very difficult for you to be successful in the course if you miss any
class sessions.
Summary of Assessment Methods:
% of Final
Assessment Grade
Quizzes 10
76
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assignments 15
Lab Assessment 20
Tests 25
Final Exam 30
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Object Oriented Programming has 6*27hr=162 hrs the split up is as
shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Private study 50
Total 162
Policies:
Grading policies
Grading scale will be based on the university legislation.
Policies on incomplete grade and late assignments:
Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week
Topics Reading Assignment
Week 1 Introduction to Object-Oriented
Programming Text # 1: Section 1.9;
Types of programming paradigm Section 1.13; Section
Overview of OO principles 2.2
Overview of Java Programming and types of
Java Program
Definition of Java Application, Java Applets
Editing, Compiling and Interpreting
Week 2 & Basics in Java Programming
3 Variable types and identifiers
Number types, strings, constants
Operators and operator precedence
Type Conversion/ Casting
Week 4 & Decision and Repetition Statements
5 Overview of Java statements
If statement
Switch statement
For loop
While, Do while loop
77
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Name of Institute
[name of the University]
[Logo] [Department/college/school Name]
UNIVERSITY
Department: Computer Science
Module Title: Advanced Programming Module Code: CoSc-M2081
Module ECTS: 23
Course Tile: Data Structures and Algorithms Course Code: CoSc2083
Course Description:
This course focuses on the study of data structures, algorithms and program efficiency. Topics
include: analysis of time and space requirements of algorithms; program efficiency improving
techniques, abstract data types such as linked lists, stacks, queues, trees (traversal,
implementations); simple searching algorithms (linear search, binary search, … ), simple sorting
78
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
algorithms (bubble sort, insertion sort, selection sort, … ), advanced sorting algorithms (merge
sort, quick sort, heap sort … )
Course Goals or Learning Outcome:
The course aims:
To introduce the most common data structures like stack, queue, linked list
To give alternate methods of data organization and representation
To enable students use the concepts related to Data Structures and Algorithms to solve real world
problems
To practice Recursion, Sorting, and searching on the different data structures
To implement the data structures with a chosen programming language
Prerequisites:
Fundamentals of Programming II
Required Texts:
Text book:
E. Horowitz, S.Sahni and Dinesh Mehta. Fundamentals of data structures in C++, W.H Freeman
and Company (1995
Sanjay Pahuja, A practical approach to data structures and algorithms, New age International
publishers, 2008
Weiss, Mark. Data structures and algorithm analysis in C, Benjamin Cummings Publishing
(1997)
The Design and Analysis of Computer Algorithms. Aho, Hopcroft, and Ullman
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions.
The course will follow a rigorous schedule of assignments. Each assignment corresponds to a
section of the course content and textbook. Failure to keep up with the assignments will result in
your failing the course. Each session builds on the prior session and is a required building block
for the following section. It is very difficult for you to be successful in the course if you miss any
class sessions.
79
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Total 162
Policies:
Grading policies
Grading scale will be based on the university legislation.
Policies on incomplete grade and late assignments:
Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week
Topics Reading Assignment
Week Chapter 1: Introduction to Data Structures
1(Half) Introduction
Abstract Data Type and Abstraction
Week 1 & Chapter 2 – Algorithm and Algorithm
2 Analysis
Properties of Algorithm
Analysis of Algorithm
Week 3 & Chapter 3: Simple Sorting and Searching
4 Algorithms
Sorting
Selection Sort
Bubble Sort
Insertion Sort
Pointer Sort
Searching
Linear/Sequential Searching
Binary Searching
80
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Name of Institute
[name of the University]
[Logo] [Department/college/school Name]
UNIVERSITY
Department: Computer Science
Module Title: Advanced Programming Module Code: CoSc-M2081
Module ECTS: 23
Course Tile: Advanced Programming Course Code: CoSc2084
Course Description:
This course covers topics on Java which includes: AWT and Swing, I/O Streams,
Multithreading, Network Programming, Java database connectivity (JDBC), RMI, and
Introduction to Servlets.
Course Goals or Learning Outcome:
81
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Object Oriented Programming has 6*27hr=162 hrs the split up is as
shown below:-:
Lecture 48
Tutorials 16
Lab work 48
Private study 50
Total 162
Policies:
Grading policies
Grading scale will be based on the university legislation.
Policies on incomplete grade and late assignments:
Homework and project deadlines will be hard. Late homework will be accepted with a 10%
reduction in grade for each class period they are late by. However, once a homework assignment
is discussed in class or the solution is posted, submissions will no longer be accepted. All
assignments must be turned in before the start of class on the due date.
82
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week
Topics Reading Assignment
Week 1 -3 Chapter 1 - AWT and Swing
Concepts of AWT and Swing
Frame, label, Button, Text Field, Combo Box
JFrame, JLabel, JButton, JtextField,
JComboBox,…
Event Handling
Sources
Listeners
Week 4 & Chapter 2 – Streams and File I/O
5 Streams
Various Stream classes
Using Streams
Object Streams
File Management
Week 6 & Chapter 3 – Multi threading Concept
7 Threads Vs process
Multiple threads
Thread priorities
Synchronization
Week 8 & Chapter 4 – Networking in Java
9 Connecting to a server
Implementing Servers in Java
Sockets, ports, URIs
Week 10 & Chapter 5 – Remote Method Invocation
11 Overview of RMI
The RMI Registry
The Remote Interface
Implementing RMI
Week 12 & Chapter 6 – Java Database Connectivity
13 Database Systems – an Introduction
Structured Query Language
Installing and setting up JDBC
Basic JDBC Programming concepts
Populating a database
Executing Queries
Scrollable and Updateable Result Sets
Week 14 & Chapter 7 – Servlets
15 Servlet Overview and Architecture
Handling HTTP get Request
Handling HTTP get Requests Containing Data
Handling HTTP post request
Redirecting Requests to Other Resources
Multi-Tier Applications: Using JDBC from a
83
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Servlet
Week 16 Final Exam
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
The aim of this course is to provide a unified introduction to computer graphics and computer
vision for students with an interest in imaging or digital visual arts and to the highest extent,
create animated objects and video game development.
The course primarily introduces both the hardware and software utilized in computer graphics.
The emphasis is on creating a working graphics system from the ground up, but modern models
and applications are also discussed and utilized.
The fundamentals of display hardware and applications, interactive techniques and color models,
study of 3D viewing pipeline, drawing images in OpenGL, 3D polygon rendering and
transformations are discussed shrewdly.
Course provides hands-on experience through programming assignments. Example code and
lecture material will be presented in C++ or Java using the OpenGL API. It is highly
recommended that assignments be completed in C++/Java. You are free to use whatever
language you want, with four caveats discussed here under, unless and otherwise the lecturer
wants the students to work on a selected language due to some reasons:
Setup and debugging help will not be offered for languages other than C or C++.
Code other than C or C++ must run on all of the Windows OS
Instructions for compilation and running of executable must be extra clear.
Partial credit may not be assigned for ”partially working” code.
OpenGL should be installed on all laboratory Windows machines and Linux. Assignments may
be done on either Windows (using Visual Studio .NET or Net beans) or Linux (using gcc/g+
+).OpenGL does not have calls to deal with user interaction, like mouse clicks or opening
windows.
84
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Prerequisites:
Fundamentals of Programming II
Required Texts:
Text book:
Richard S. Wright et.al. OpenGL® SuperBible: Comprehensive Tutorial and Reference, Fifth
Edition Addison-Wesley Professional
Glen W Rowe, Computer Graphics with Java, PALGRAVE, 2001
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, and Tutorials,
Reading assignments, Group Discussions and Lab work.
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam ,Lab exam and Final exam
Students should note that completion of both the programming and theoretical assignments will
be necessary to achieve good grades. There are two things students should be aware of before
penalized for the crime they might commit.
There will be a penalty for late assignments which may amount to 10% per day.
Unless intended to be done in group, assignments are to be completed by the student without
assistance from or collaboration with other persons.
Students should make sure their code is debugged or come up without error (i.e., one should be
able to compile and run without medications to the source code)
Programming projects will have their due dates announced in class or Laboratory session
Assignments:
85
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
The goal of this assignment is to get comfortable with the programming environment you will be
using for this class, familiarize yourself with two simple libraries that we will use for linear
algebra and images. It's an opportunity to know OpenGL Deeply Detail Description will be given
Apply the OpenGL transformations to some simple 3D line drawing (e.g. the unit cube or the
house) and verify that what you expect to happen did indeed happen. Check your results by
directly comparing the matrices you obtain for several combinations with ones produced by calls
to various OpenGL transformations. This is a good way to understand exactly what the OpenGL
operations do
Assume the function void earth (); draws a three dimensional model of the earth with the South
Pole at the origin, the north pole at the point (0; 1; 0), and the Greenwich meridian (0o longitude)
pointing in the z-direction. We are interested in drawing the earth as seen from a point in space
with a given longitude and latitude (specified in degrees) and given distance from the surface of
the earth. We want to be looking down into the
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Logic in computer science 4*27hr=108 hrs the split up is as shown
below:-:
Lecture 32
Lab 48
Home studies 55
10. Polices:
86
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
End of Mid examination Mid examination will includes all the topics
week 9 discussed up until now by giving more focus for
87
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
88
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Course Description:
A key component to the discipline of Computer Science is the understanding and the advocacy
of the user in the development of CS applications and systems. CS graduates must develop a
mind-set that recognizes the importance of users and organizational contexts. They must employ
user-centered methodologies in the development, evaluation, and deployment of Computer
applications and systems. This requires graduates to develop knowledge of HCI, including but
not limited to such areas as user and task analysis, human factors, ergonomics, accessibility
standards, and cognitive psychology.
Course Goals or Learning Outcomes:
At the end of the course, the student should be able to do the following:
Describe the relationship between the cognitive principles and their application to interfaces and
products.
Explain the conceptual terms for analyzing human interaction with products such as affordance,
conceptual model, and feedback.
Analyze different user populations with regard to their abilities and characteristics for using both
software and hardware products.
89
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Describe the connection between the development of a user interface and the user’s knowledge
of an application domain.
List several of the emerging alternative I/O devices for computers
Prerequisites:
None
Required Texts:
Dix, A., Finlay, J., Abowd, G. and Beale, R. (1997). Human-computer interaction.
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam and Final exam
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
Lecture 48
Tutorials 16
home 71
10. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
90
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
91
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Week 16 EXAM
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
92
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Course Description:
The study of basic mathematical logic such as propositional logic and predicate logic is
considered an important theoretical underpinning to any undergraduate computer science course.
The aim of logic in computer science is to develop languages to model the situations we
encounter as computer science professionals, in such a way that we can reason about them
formally. Reasoning about situations means constructing arguments about them; we want to do
this formally, so that the arguments are valid and can be defended rigorously, or executed on a
machine.
This course covers topics such as propositional logic, syntax and semantics of propositional
logic, logical connectives, Truth tables, Tautologies and Contradictions, Valid propositions. The
normal forms: Disjunctive normal form (DNF) and Conjunctive normal form (CNF) will be
discussed. Limitations on propositional logic are also discussed.
The other major to be discussed is predicate logic. In this topic, subtopics such as the need for
predicate logic, Quantifiers: Universal and Existential quantifiers; predicate well-formed
formulas (wffs), valid arguments, and limitations on predicate logic is covered. The course also
covers other topics like Logic programming, some introductory topics on modal logic and other
logics such as Intuitionistic, Lukasiewicz, Probabilistic, and Possibility and Fuzzy logic.
Course Goals or Learning Outcome
By the end of this course, students will be able to:
Identify a proposition from other sentences
Understand logical connectives and finding truth values of compound propositions formed using
logical connectives
Understand the syntax and semantics of propositional and predicate logic.
Prove the validity of propositional well-formed formula, predicate well-formed formula using
rules which are stated and proved and also by applying hypothesis developed through the
argumentation
Know how to represent a given proposition in symbolic form and propositional wff, which
simplifies checking whether the argument is valid or invalid
Understand how to represent a given verbal argument (predicate) in symbolic form and predicate
wff, which simplifies checking whether the argument is valid or invalid
Prerequisites:
None
Required Texts:
Text book:
Huth, Mickael (2004) Logic in computer science 2nd Cambridge university press USA
Judith L. Gersting. Mathematical Structures for Computer Science, W.H. Freeman and Company
New York, 5th ed. (2004) (Required text)
Reference book
S. Burris. Logic for Mathematics and Computer Science, Prentice-Hall, 1998 (Optional)
http://en.wikibooks.org/wiki/Logic_for_Computer_Science (Optional)
http://www.math.uwaterloo.ca/~snburris/htdocs/FALL00/slides.html (Optional)
http://en.wikibooks.org/w/index.php?
title=File:ComputerScienceLogic.png&filetimestamp=20050119053602 (Optional)
http://en.wikipedia.org/wiki/Modal_logic
http://www.mcs.vuw.ac.nz/~rob/papers/modalhist.pdf
Fuzzy Logic Tutorial, http://www.seattlerobotics.org/encoder/mar98/fuz/flindex.html
93
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assignments:
First assignment is an individual paper work and it is from propositional logic which carries total
weight of 10% and
This assignment tests the students’ ability of
constructing truth tables
checking whether a given proposition is a tautology or not
translating verbal arguments to propositional wff and checking validity of the argument
Second assignment is a group work from predicate logic which carries total weight of 10%
This assignment tests the students’ ability of
translating English statements (verbal arguments) to predicate wff and
checking validity of arguments
Third assignment is a group presentation on Prolog which weighs 5%
It tests the students’ ability:
To construct Prolog database
Inserting appropriate facts and rules to the Prolog database
Applying recursive rules
Finding response for queries from the database
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Logic in computer science 4*27hr=108 hrs the split up is as shown
below:-:
Lecture 16
Lab 48
Home studies 44
10. Polices:
94
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
95
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
96
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
5th - Normal Forms At this time the 1st assignment will be given to the
6th Literal, Term, Clause students
Normal Forms Guiding questions:
Disjunctive Normal Form Given a propositional wff, categorize as :
(DNF) DNF
Conjunctive Normal Form CNF
(CNF) Required readings:
Chapter 1 [Michael Huth, Mark Ryan]
Chapter 2 [S. Burris]
97
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
98
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
99
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Lab project work
Assignment
Final examination
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.
15th
week Topics: Required reading:
Introduction to other logics: From the reference list [7], [8], [9], [10]
Modal logic
Syntax of modal logic
Fuzzy logic
16th Topics: Final examination will be given after the topics
week Intuitionistic logic Required reading:
Lukasiewicz logic [10] from the reference list
Probabilistic logic [http://en.wikipedia.org/wiki/Intuitionistic_logic]
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 10
Course Tile: Introduction to Artificial Course Code: CoSc 4142
intelligence
Instructor Name: Course ECTS: 5
103
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Phone: Semester: IV
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:
Course Description:
The purpose of this course is to give students an understanding of Artificial Intelligence
methodologies, techniques, tools and results. Students will use at least one AI-language [Lisp,
Prolog]. Students will learn the theoretical and conceptual components of this discipline and firm
up their understanding by using AI and Expert System tools in laboratory sessions, projects and
home assignments
Course Goals or Learning Outcomes:
At the end of this course the students will be able to:
Understand reasoning, knowledge representation and learning techniques of artificial intelligence
Evaluate the strengths and weaknesses of these techniques and their applicability to different
tasks
Assess the role of AI in gaining insight into intelligence and perception
know classical examples of artificial intelligence
know characteristics of programs that can be considered "intelligent"
understand the use of heuristics in search problems and games
know a variety of ways to represent and retrieve knowledge and information
know the fundamentals of artificial intelligence programming techniques in a modern
programming language
consider ideas and issues associated with social technical, and ethical uses of machines that
involve artificial intelligence
Prerequisites:
Logic in computer science
Required Texts:
Text Book;
Russell, S. and P. Norvig (1995) Artificial Intelligence: A Modern Approach Prentice-Hall.
Reference
Luger, G. (2002) Artificial Intelligence, 4th ed. Addison-Wesley.
Bratko, Ivan (1990) PROLOG Programming for Artificial Intelligence, 2nd ed. Addison-Wesley,
1990
Winston, P.H. (1992) Artificial Intelligence Addison-Wesley.
Ginsberg, M.L. (1993) Essentials of Artificial Intelligence. Morgan Kaufman.
104
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
Lecture 32
Lab 48
Home studies 55
. Polices:
105
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
106
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Lab
Project
Final examination
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 10
Course Tile: Fundamental of Software Course Code: CoSc 3091
Engineering
Instructor Name: Course ECTS: 5
Course Description:
This course provides an introduction to the problems of software development and maintenance
and the processes and methods used to address them. All phases in the software development life
cycle will be introduced. The course also deals with software project planning, cost estimation,
tracking and control, staffing, risk management, and software configuration plan.
Course Goals or Learning Outcomes:
At the end of the course, the student should be able to do the following:
Understand the basic principles of Software Engineering
Write requirements specification documents
107
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
References
A. Behforooz and F. J. Hudson (1996), Software Engineering Fundamentals, Oxford University
Press.
Schach, Stephen R. (2002), Classical and Object-Oriented Software Engineering, 5th ed. IRWIK
Hoffer, Jeffrey A.; Joey F. George; and Joseph S. Valacicli (1999), Modern Systems Analysis
and Design. Massachusetts: Addison-Weslev.
N.E. Fenton and S.L. Pfleeger (2001), Software Metrics: a regorous & practical approach, 2nd
Edition.
E. Manassis (2004), Practical Software Engineering: analysis and design for .NET plattform,
Addison-Wesley
C. Courage and K. Baxter(2005). A Practical Guide to User Requirements Methods, Tools, and
Techniques, Elsevier Inc
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Tutorials,
Reading assignments and Group Discussions
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes , Reading
assessments, Assignments, Project, Mid exam and Final exam
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further
detail as to content, process and timing will be provided in due course. Your grade will be based
on satisfactory completion of each of the assignments in a timely manner, and the quality of
work represented by those assignments. A checklist is provided for each assignment.
Assignments must be submitted on the due date given for a particular assignment If not the
student will be penalized 10% of the total mark of the assignment. Assignments for the course
will be 2 main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
108
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
Lecture 48
Tutorials 32
Home studies 55
10. Polices:
109
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Project
Assignment
Final examination
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 10
Course Tile: Object oriented Software Course Code: CoSc 3092
Engineering
Instructor Name: Course ECTS: 5
110
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Meeting location:
Course Description:
Description
Covers O-O concepts, tools, development life cycle, problem solving, modeling, analysis, and
design, while utilizing UML (Unified Modeling Language) for O-O modeling. UML has become
the standard notation for modeling O-O systems and is being embraced by major software
developers like Microsoft and Oracle.
Course Goals or Learning Outcomes:
On successful completion of this module the learner will be able to
Describe in detail the theory, concepts and methods pertaining to the Unified Modeling
Language (UML).
Create requirements using use case modeling concepts.
Demonstrate conceptual and technical skills in the analysis, design and implementation of a
software system using Object Oriented Concepts.
Employ tools and techniques for Object Oriented Software Engineering,
Demonstrate an ability to adapt and solve problems in software development activities from
specification to testing individually and as part of a team.
Prerequisites:
Fundamental of software engineering Cosc-
Required Texts:
Brahmin, Ali(1999), Object oriented System development , McGraw Hill, USA.
References
Scott, Kendall (2004) Fast Track UML 2.0 Apress USA
Booch, Grady Rumbaugh, James Jacobson, Ivar (2005) The Unified Modeling Language User
Guide SECOND EDITION Addison Wesley Professional USA
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, the course Fundamental of Software Engineering has 5*25hr=125 hrs the
split up is as shown below:-:
111
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Lecture 48
Tutorials 32
Home studies 55
10. Polices:
112
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
113
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Quiz
Test
Assignment
Project
Final examination
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
A distributed system is a computer system consisting of several independent computers,
connected by a network, that can work together to perform a task or provide a service. Typical
examples include: the World Wide Web, networked file systems, DNS, and massive
multiprocessor supercomputers.
In this course we aim to provide students with a deeper understanding of distributed systems. In
particular we focus on the principles, techniques, and practices relevant to the design and
implementation of such systems. The course takes a systems-oriented view of distributed
systems, concentrating on infrastructure software and providing hands-on experience
implementing distributed systems.
114
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Reference books:
B. A. Forouzan, Data Communications and Networking, McGraw Hill, 3rd edition, 2003
S. Mullender, Distributed Systems, 2nd edition, Addison-Wesley, 1993
K. Birman, Building Secure and Reliable Network Applications, Manning Publications Co.,
1996
Summary of Teaching- Learning Methods:
The teaching- learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, Lab work
Tutorials, Reading assignments and Group Discussions
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and answer questions posed by the instructor and/or other
students.
Lab Works – Students will have lab practices on most of the topics covered.
Projects – Students will be required to work on a design/implementation of a small to medium
level networks for different organizations.
115
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Two assignments will be given, while the course is being offered, which will be scrutinized
meticulously and weighted. Further detail as to content, process and timing will be provided in
due course. Your grade will be based on satisfactory completion of each of the assignments in a
timely manner, and the quality of work represented by those assignments. A checklist is provided
for each assignment. Assignments must be submitted on the due date given for a particular
assignment If not the student will be penalized 10% of the total mark of the assignment.
7. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, this course has 6*27hr=162 hrs the split up is as shown below:-:
Lecture 48
Discussion 10
Tutorials 16
Project 10
Lab work 48
Private study 20
Assessment 10
Total 162
8. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
First class with
[85, 90) 4.0 A Excellent
[80, 85) 3.75 -
A Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction
116
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Fail
Lowest Class
[<30) 0 F
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for
the topics other than the
Week/Date TOPIC TO BE DISCUSSED
text book cited above
117
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 5%
Test # 2 5%
Final examination 40%
Assignments (two) 20%
Lab Examination 10%
Project 20%
118
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment results.
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 11
Course Title: Formal Language Theory Course Code: CoSc3111
Course Description:
This course aims to develop the theoretical foundations of computer science through study
of mathematical and abstract models of computers and the theory of formal languages. It
also, introduces some fundamental concepts in automata theory and formal languages
including grammar, finite automaton, regular expression, formal language, pushdown
automaton, and Turing machine. Not only do they form basic models of computation, they
are also the foundation of many branches of computer science, e.g. compilers, software
engineering, concurrent systems, etc.
Course Goals or Learning Outcomes:
On completion of this course students should be able to:
Introduce concepts in automata theory and theory of computation
Study the central concepts of automata theory
Acquire insights into the relationship among formal languages, formal grammars, and automata.
Identify different formal language classes and their relationships
Design grammars and recognizers for different formal languages
Prove or disprove theorems in automata theory using its properties
Familiar with thinking analytically and intuitively for problem solving situations in related areas
of theory in computer science.
119
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Prerequisites:
Required Texts:
References
An Introduction to Formal Languages and Automata, Third Edition, Peter Linz, 2001
An Introduction to Formal Language Theory that Integrates Experimentation and Proof Allen
Stoughton, 2004.
Policies
Attendance: It is compulsory to come to class on time and every time. If you are going to miss
more than a couple of classes during the term, you should not take this course.
Assignments: You should submit individual and group assignment son due date, late
assignments won’t entertain.
Tests/Quizzes: You should take all quizzes and assignments as scheduled. If you miss quiz or
assignment without any reason, no makeup will be arranged for you.
Cheating/plagiarism: you must do your own work and not copy and get answers from someone
else.
Assignments:
Weather individual assignment or group assignment should be submitted on time. If a
copied assignment is submitted both the cheaters are going to score 0. If their cheating is
that much visible they may score negative marks.
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Internet Programming has 5*27hr=135 hrs the split up is as shown below:-:
Work load Hour
Lectures 48
Laboratory 0
Tutorials 0
Home Study 87
Total 135
120
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Student grade and performance will be evaluated as the whole activities (tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
The final score will be converted to a letter grade using the following scale:
Week 2 and 3 Finite automata (FA) -its behavior; The Same Text Books
DFA -Formal definition
Simplified notations (state transition
diagram, transition table), Language of a
DFA.
NFA Equivalence of DFAs and NFAs
Week 4 and 5 Regular expression and regular language -The Same Text Books
and 6 Regular expressions (RE),
RE to FA, FA to RE,
applications of REs.Regular grammars and
FA
FA for regular grammar,
Connection Between Regular Expressions and
Regular Languages
Regular grammar
Pumping lemma and non-regular language
121
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
grammars
Week 7 and 8 Context free languages -The Same Text Books
Context free languages
Parsing and ambiguity
sentential forms
Leftmost and right most derivation
Derivation tree or Parse tree
Definition, Relationship between parse trees
and derivations.
Week 9 and 10 Simplification of context free grammar -The Same Text Books
and 11 Methods for Transforming Grammars
Normal for grammars and parsing
Chomsky’s hierarchy of grammars
Pushdown automata
Non deterministic Pushdown Automata
Pushdown Automata and Context-Free
Languages
Deterministic push down automata and
Deterministic context free language
Properties of context free languages
Week 12 and Turing Machine -The Same Text Books
13 The standard Turing machine
Turing machine as machine accepters
Turing machine as Transducers
Universal Turing Machines
Week 14 and Context sensitive grammars and languages -The Same Text Books
15 Context sensitive languages and Linear
bounded automata
Relation between recursive and context
sensitive languages
Week 16
Final exam
9. Assessment Arrangements:
List the assessment methods along with weight distribution. (quiz’s (quiz I and quiz II)
(20%) +presentation (10%) +assignments(assignment 1 and assignment 2)(20%) +final exam
(50%)) =total (100%).
Item Type Points Weight in %
Quiz I 10 10%
Presentation 10 10%
Assignment I 10 10%
Quiz II 10 10%
122
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assignment II 10 10%
Final Exam 50 50%
Total 100 100%
COURSE HANDBOOK
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
The course builds on the student's core knowledge of languages, grammars and programming
and provides an opportunity to see how these core areas can come together to form an
application area.
Also it imparts the knowledge about the following
To learn basic techniques used in compiler construction such as lexical analysis, top-down and
bottom-up parsing, context-sensitive analysis, and intermediate code generation.
To learn basic data structures used in compiler construction such as abstract syntax trees, symbol
tables, three-address code, and stack machines.
To learn software tools used in compiler construction such as lexical analyzer generators, and
parser generators.
Course Goals or Learning Outcome
By the end of this course, students will be able to:
Implementing a small compiler using modern compiler writing tools.
Providing the student with skills and knowledge (such as lexical analysis and parsing) which are
applicable to a broad range of computer science application areas (such as text editors,
information retrieval, etc...).
123
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Prerequisites:
Formal Language and Automata Theory
Required Texts:
Text book:
Text Books:
T1: Alfred Aho, Ravi Sethi, V.Jeffery Ullman D. “COMPILERS PRINCIPLES, TECHINQUES
AND TOOLS “, Addison- Wesley, 1988.
Reference Books:
R1: Allen Holub l. “Compiler Design in C”, Prentice Hall of India. 1990.
R2: Charles N.Fischer Richard J.Leblanc, “Crafting a compiler with C”, Benjamin Cummings,
1991
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, and Tutorials,
Reading assignments, Group Discussions and Lab work.
Summary of Assessment Methods:
Evaluation will carry out based on relevant continuous assessments (class assessments,
assignments and laboratory works) and significantly scheduled and designed final examination.
Assignments:
Date Assessments Description
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Logic in computer science6*27hr=162 hrs the split up is as shown below:-:
Lecture 48
Lab 48
Home studies 66
10. Polices:
Any act of dishonesty in any work constitutes academic misconduct in general.
Particularly, student is strongly encouraged to collaborate with one another in studying the
textbook, the lecture material and laboratory activities while they are not permitted to
collaborate on exams, which results in serious penalty. Laboratory materials (hardware,
software and other accessories) must be handled with exceptional care, severe penalty
124
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
otherwise. Lab attendance is mandatory, and lab attendance will be taken. You must
attend a lab in order to get credit for it.
125
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
SLR
Canonical & LALR
Error recovery
Parser generator
Syntax Directed
Translation: Syntax-
Chapter – 5
directed definitions,
9,10
construction of syntax trees
Type Checking: Type
Chapter – 6
systems, type conversions
Intermediate languages –
Three Address Code rules
Quadruples
Declarations
11,12 Chapter – 8
Declarations in procedures
Flow control statements
Back patching
Procedure calls
Symbol table
Hash Tables
13 Chapter – 7
Representing Scope
Information
Introduction to code
Chapter – 10
optimization
Code generation –
Simple Code generator
14,15
Register Allocation
Chapter – 9
DAG representation
Peephole Optimization
Techniques
16 Revision
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 5
Course Tile: Analysis of Algorithms Course Code: CoSc3131
126
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Course Description:
The course focuses on the design and analysis of algorithms. Topics Include: Review of the basic
data structures; Design techniques: divide-and-conquer, dynamic programming, greedy
algorithms, And graph algorithms: Elementary graph algorithms, Breadth-first search (BFS),
Depth-first search (DFS), Strongly-connected components, Minimum spanning tree, Shortest
paths.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
perform algorithm analysis using the different techniques;
demonstrate the use of algorithm design techniques; and
describe the basics of computational complexity.
apply advanced searching and sorting algorithms
develop, and reason about the correctness and performance of algorithms, in particular for string
searching and graph manipulation
Prerequisites:
Data Structure & Algorithms
Required Texts:
Text book: Horowitz, E. and S. Sahni, Fundamentals of Computer Algorithms.
Computer
Science Press.
Reference books:
Cormen, T.H. et al. (1990) Introduction to Algorithms. MIT Press and McGraw-Hill
Book Company.
Manna, Z. (1974) Mathematical Theory of Computation McGraw-Hill.
Baase, S. (1988) Computer Algorithms: Introduction to Design and Analysis, 2nd ed.
Addison-Wesley Publishing Company..
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Assignment and Tutorials.
Summary of Assessment Methods:
The course will be assessed using the different assessment methods like: Quizzes, Reading
assessments, Assignments, project and Final exam
127
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assignments:
There will be two assignments which will be scrutinized meticulously and graded. Further detail
as to content, process and timing will be provided in due course. Your grade will be based on
satisfactory completion of each of the assignments in a timely manner, and the quality of work
represented by those assignments. A checklist is provided for each assignment. Assignments
must be submitted on the due date given for a particular assignment If not the student will be
penalized 10% of the total mark of the assignment. Assignments for the course will be 2 main
types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course COMPUTER SECURITY has 5*27hr=135 hrs the split up is as shown
below:-:
Lecture 48
Discussion 0
Tutorials 16
Project 15
Lab work 0
Private study 41
Assessment 15
Total 125
Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+project(%)
+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
[Grade scale to be referred....]
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date TOPIC TO BE DISCUSSED Additional Reference for
the topics other than the
text book cited above
order notation
Analysis of algorithm
Week 2 Introduction and elementary data structures
Review of elementary data structures
head and Heap Sort
QUIZ-1
ASSIGNMENT -2
Week 10
Dynamic Programming and traversal techniques
Multistage graphs, all pairs shortest pattern
Optimal binary search trees
129
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
Final examination 30%
Assignments (two) 20%
Quizzes, reading assessment and tutorial contributions 15%
Project 15%
Total 100%
130
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Course Description:
Complexity Theory course is to make students to grasp the general and basic knowledge of
Turing Machine and construction of Turing Machine, the importance of time and space
complexities, various notations and theorems of Complexity theory
.Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Explain Models of Computation, resources (time and space), algorithms, computability, and
complexity.
Understand Complexity classes, P/NP/PSPACE, reductions, hardness, completeness, hierarchy,
relationships between complexity classes.
Learn Randomized computation and complexity; Logical characterizations, incompleteness and
approximately.
Understand Circuit complexity, lower bounds; Parallel computation and complexity; Counting
problems and Interactive proofs.
Learn probabilistically checkable proofs; Communication complexity and Quantum computation
Prerequisites:
Formal Language and Automata Theory
Required Texts:
Text Book:
Complexity Theory: A Modern Approach Sanjeev Arora and Boaz Barak
References:
131
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
9. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of student
work, the course Internet Programming has 5*27hr=135 hrs the split up is as shown below:-:
Work load Hour
Lectures 48
Tutorials 16
Home Study 71
Total 135
10. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests (quiz) (40%) +
Assignment (20%) +final exam (40%)) =total (100%).
The final score will be converted to a letter grade using the following scale:
132
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
[85,90) A 4.00
[80,85) A- 3.75
[75,80) B+ 3.50
[70,75) B 3.00
[65,70) B- 2.75
[60-65) C+ 2.50
[50,60) C 2.00
[45,50) C- 1.75
[40,45) D 1.00
[30,40) FX 0.00
[<30) F 0.00
Schedule:
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Week/Date Content Additional Reference
Week 1,2,3 CHAPTER I: Turing Machine (TM)
Standard TM
Construction of TMs
Week 4,5,6,7 CHAPTER II: Undecidability
Turing Decidable
Turing Acceptable
Undecidable Problems
9. Assessment Arrangements:
List the assessment methods along with weight distribution. (Tests (quiz) (20%) +lab
exam (20%) +project (20%) +final exam (40%)) =total (100%).
Tests, Quizzes, reading assessment and tutorial contributions 40%
133
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Assignment 20%
Final Examination 40%
Total 100%
10. Module and course evaluation:
Peer review, questionnaire-based opinion survey, analysis of assessment result
COURSE HANDBOOK
Name of Institute
[name of the University] [Department/college/school
[Logo]
UNIVERSITY Name]
Module ECTS: 5
Course Tile: Computer Security Course Code: CoSc4171
Course Description:
To familiarize students with the security issues and technologies involved in modern information
systems, including computer systems and networks and the various ways in which information
systems can be attacked and tradeoffs in protecting networks.
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Understand the basic concepts in information security, including security attacks/threats, security
vulnerabilities, security policies, security models, and security mechanisms
Understand the concepts, principles and practices related to elementary cryptography, including
plain-text, cipher-text, the four techniques for crypto-analysis, symmetric cryptography,
asymmetric cryptography, digital signature, message authentication code, hash functions, and
modes of encryption operations.
Understand issues related to program security and the common vulnerabilities in computer
programs; including buffer overflow vulnerabilities, time-of-check to time-of-use flaws,
incomplete mediation.
Explain and compare security mechanisms for conventional operating systems, including
memory, time, file, object protection requirements and techniques and protection in
contemporary operating systems.
134
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Understand the basic requirements for trusted operating systems, and describe the independent
evaluation, including evaluation criteria and evaluation process.
Describe security requirements for database security, and describe techniques for ensuring
database reliability and integrity, secrecy, inference control, and multi-level databases.
Describe threats to networks, and explain techniques for ensuring network security, including
encryption, authentication, firewalls, and intrusion detection.
Explain the requirements and techniques for security management, including security policies,
risk analysis, and physical threats and controls.
Prerequisites:
Data Communications and Computer Networks (CoSc2061)
Required Texts:
Text book: Security in Computing, Charles P. Pfleeger and Shari L. Pfleeger. (3rd
edition).Prentice-Hall. 2003. ISBN: 0-13-035548-8.
Reference books:
Computer Security, DicterGouman, John Wiley & Sons
Computer Security: Art and Science, Mathew Bishop, Addison-Wesley
Principles of Information Security, Whitman, Thomson.
Network security, Kaufman, Perl man and Speciner, Pearson Education
Cryptography and Network Security, 5th Edition William Stallings, Pearson Education
Introduction to Cryptography, Buchmann, Springer.
Summary of Teaching- Learning Methods:
The teaching-learning methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Tutorials, Reading
assignments,presentationand Group Discussions.
Lectures – Each chapter will be preceded by lectures to give the students a touch of the contents.
Tutorials – Tutorial classes on some difficult topics will be offered wherein students will have
the opportunity to ask questions and answer questions posed by the instructor and/or other
students.
Projects – Students will be required to work on designing security policy for small to medium
level networks of different organizations.
Summary of Assessment Methods:
The course will be assessed using different assessment methods like: Tests/Quizzes
Assignments, Project, Practical exam and Final exam
Two Quizzes/Tests – to be distributed evenly through the semester.
One project works – project work assessment will be similar to that of lab work assessment.
Final exam
Two assignments – to be distributed evenly through the semester.
Policies on incomplete grade and late assignments:
Two assignments will be given, while the course is being offered, which will be scrutinized
meticulously and weighted. Further detail as to content, process and timing will be provided in
due course. Students’ grade will be based on satisfactory completion of each of the assignments
in a timely manner, and the quality of work represented by those assignments. A checklist is
provided for each assignment. Assignments must be submitted on the due date given for a
particular assignment If not the student will be penalized 10% of the total mark of the
assignment.
Assignments for the course will be two main types:
Basic Concept Assignments - These may consist of handouts given by the instructor, discussion
forums, or selected questions out of your textbook.
135
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
Projects - These consist of activities for directly applying and integrating the concepts presented
in the course. In some cases, you will be given a case scenario to use in the development of the
project. These projects will require you to use critical thinking skills, logical analysis, and
creativity. They may be individual or group projects.
7. Student Workload: Taking into consideration that 1ECTS accounts for 27 hours of
student work, this course has 5*27hr=135hrs the split up is as shown below:-:
Lecture 48
Discussion 16
Project 20
Private study 36
Assessment 15
Total 135
8. Polices:
Grading policies
Student grade and performance will be evaluated as the whole activities (tests(%)+lab exam(%)
+project(%)+tests/final exam(%))=total(100%).
Considering activities grading:
The final score will be converted to a letter grade using the following scale:
Corresponding Corresponding
Raw Mark
Fixe d Number Status Description
Interval-[100 %] Class Description
Grade Letter Grade
[90,100] 4.0 +
A
First class with
[85, 90) 4.0 A Excellent
[80, 85) 3.75 -
A Great distinction
[75, 80) 3.5 +
B First class with
Very Good
[70, 75) 3.0 B
Distinction
136
COMPUTER SCIENCE PROGRAM CURRICULUM, July 2013
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.
Additional Reference for
the topics other than the
Week/Date TOPIC TO BE DISCUSSED
text book cited above
9. Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 10%
Test # 2 10%
139