Available courses

Course Description

The purpose of this course is to enable students to know how to build successful software
•Products using appropriate process models that are ready to meet the challenges of twenty-first century.
•Students can use their software engineering knowledge to develop a clear understanding of
•Requirements and lead to the specification of requirements and design representation for software to be built.

Course Objectives

•To understand the software process models and software engineering practice
•To understand measurement, planning and self-direction as key ingredients for successful software process
•To understand why agile methods are important for current modern economy
•To understand requirement engineering is a solid foundation for design and construction
•To understand the requirement modeling that describe what the customer requires, establish a basic for the creation of software design, valid requirements when the software is built

Learning Assessments

•Final exam         - 60%
•Tutorial              - 10%
•Quiz                   - 10%
•Project               - 20%

Course Assessment

  • Exam - 60%
  • Tutorial and Quiz - 15%
  • Project - 25% (to practice the SE disciplines)

  1. Software Requirement Specification (SRS) Report-8%
  2. Software Design Documentation (UML) Report-8%
  3. Developing Small Software Project-9%

  • The pass grade for this course is C (50)

Assessment Plan 

  • Exam – 60%
  • Quiz – 10% 
  • Tutorial – 10% 
  • Practical Lab – 20% (SQL, Triggers, store procedures)

Reference Text Books Images


Course Organization

The expected learning outcomes for the course will be assessed through six forms of activity:

1. Attending the lectures

2. Preparing for and participating in the recitations.

3. Assignments

4. Reading the text

5. Quiz

6. Exams

The Design and Analysis of Computer Algorithms

Assessment

Assignment 10%

Tutorial 10%

Quizzes / Moodle 15%

Class Participation 5%

Paper based Exam 60%

                     

Code: CS-4125

Course: Software Project Management

Text Books:

(1) Roger. S. Pressman, “Software Engineering, A Practitioner’s Approach”, 8th edition, 2015

(2) Iron Sommerville, “Software Engineering”, Global Edition, 10th edition, 2016

(3) Rajib Mall, “Fundamentals of Software Engineering”, Fourth Edition, 2014

                                                        Course Assessment

                                    This course should assess the student as follows:

                                                      Exam – 70%

                                                     Tutorial – 20%

                                                     Quiz – 10%

                                   The pass grade for this course is – C (50)

 


Course Objectives
The aim of this course is to help students the fundamental issues of designing and engineering distributed systems and parallel computing architectures. The Distributed systems concerns with reference to partial failure, heterogeneity, scalability, concurrency and asynchrony. This course deals with the major recent developments in distributed systems technology and parallel computing systems.

Learning Outcomes
 gain a clear understanding of the concepts that underlie distributed computing systems, along with design and implementation issues
 understand key mechanisms and models for distributed systems
 identify the core concepts of distributed systems: the way in which several machines orchestrate to correctly solve problems in an efficient, reliable and scalable way
 create an awareness of the fundamental technical challenges in advanced distributed systems design and implementation
 present the principles underlying the function of distributed systems and their extension to grid and cloud computing and virtualization techniques

Reference Book
 Distributed Systems Concepts and Design, 5th Edition, by George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair
http://www.cdk5.net/wp/
 The Design and Analysis of Parallel Algorithms by Selimm G. Akl
https://computing.llnl.gov/tutorials/parallel_comp/

Course Organization
1. Exam
2. Assignments
3. Tutorial
4. Moodle
5. Project

Assessment Plan for the Course
(Distributed Systems: 80% + Parallel Computing Architectures: 20%)
Paper Exam: (DS-50% + Parallel 15%)
Tutorial/Assignment: 10% (DS 10%)
Project (RMI & COBRA): 10% (DS 10%)
Quizzes: 15% (DS 10% + Parallel 5%)

Course Objectives

  • To provide the most fundamental concept of knowledge representation and reasoning in Artificial Intelligence.
  • To provide the ability to analyze and inference upon Uncertain Knowledge conditions
  • To understand the basic theory underlying machine learning.
  • To gain practical experience through coding exercises, projects, and assignments involving datasets.

 Course Description

This course is intended to introduce the basic principles, techniques, and applications of the field of artificial intelligence: Knowledge representation and Uncertain Knowledge and reasoning algorithms. This course provides an introduction to the fundamental concepts and techniques of machine learning. Machine learning is a critical field within artificial intelligence that enables computers to learn from data and make intelligent decisions. Through a combination of theoretical lectures and hands-on practical sessions, students will gain a strong understanding of the principles and methodologies that underlie various machine learning algorithms.

 Reference Book

  • Artificial Intelligence- A Modern Approach (Third Edition) by Stuart Russell & Peter Norvig
  • Ronald J. Brachman and Hector J. Levesque, Knowledge Representation and Reasoning, Elsevier/Morgan Kaufmann 2004. ISBN 1-55860-932-6.
  • Introduction to Machine Learning with Python: A Guide for Data Scientists by Andreas C. Müller and Sarah Guido

 Learning Outcomes

  • Have knowledge and understanding of the basic concepts of knowledge representation and reasoning.
  • Develop a solid understanding of the fundamental concepts, terminology, and principles of machine learning.
  • Grasp the difference between supervised, unsupervised, and reinforcement learning.

 Course Organization

  1. Attending the lectures & practical
  2. Preparing for and participating in the recitations
  3. Practical assignments
  4. Moodle (LMS) / Quiz 
  5. Exams

 Assessment plan for the course

  • Assignment 10%
  • Quiz/Moodle 10%
  • Tutorial 10%
  • Lab 10%
  • Exam 60%

Course Objectives

▪ To conceptualize the basics of organizational and architectural issues of a digital
computer.
▪ To study the different ways of communicating with I/O devices and standard I/O
interfaces.
▪ To study the hierarchical memory system including cache memories and virtual
memory.
▪ To study various classes of instruction: data movement, arithmetic, logical, and
flow control.
▪ To appreciate how conditional operations are implemented at the machine level.
▪ To understand the way in which subroutines are called and returns made.
▪ To understand parallelism both in terms of a single processor and multiple
processors.

Learning Outcomes

The major outcomes of this course can be listed as
▪ Ability to perform computer arithmetic operations and control unit operations.
▪ Interpret the difference between hardwired and micro-programmed design approaches in CPU control unit design.
▪ Ability to understand the concept of I/O organization.
▪ Ability to conceptualize instruction level parallelism.
▪ Demonstrate the organization of memory hierarchy.
▪ Understand parallelism both in terms of a single processor and multiple processors.
▪ Understand how computer hardware has evolved to meet the needs of multi-processing systems.