BS (Software Engineering)
| Semester 1 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
| 1 |
|
- |
Introduction to Computing |
4 (3-3) |
| 1 |
CS |
- |
Programming Fundamentals |
3 (2, 1) |
| 11 |
MT |
- |
Calculus and Analytical Geometry |
3 (3, 0) |
| 14 |
EL |
- |
Basic Electronics |
3 (2, 1) |
| 18 |
EG |
- |
English-III (Communication Skills) |
3 (3, 0) |
| 19 |
PK |
- |
Islamiyat/Ethics |
3 (3, 0) |
|
|
|
Total Credit Hour |
19 |
| Semester 2 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
|
|
- |
Discrete Structures-I |
3 (3, 0) |
| 2 |
CS |
1 |
Object Oriented Programming |
3 (2, 1) |
| 12 |
MT |
- |
Probability and Statistics |
3 (3, 0) |
| 31 |
ST |
11 |
Differential Equations |
3 (3, 0) |
| 17 |
EG |
- |
English-II (Technical and Report Writing) |
3 (3, 0) |
| 65 |
HU |
- |
Urdu |
3 (3-0) |
|
|
|
Total Credit Hour |
18 |
| Semester 3 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
| 9 |
|
2 |
Introduction to Software Engineering 1 |
3 (3-0) |
| 3 |
CS |
2 |
Data Structure and Algorithms |
3 (2, 1) |
| 4 |
CS |
21 |
Digital Logic Design |
3 (2, 1) |
| 13 |
MT |
- |
Linear Algebra |
3 (3, 0) |
|
EL |
- |
Electronics (Physics II) |
3 (2, 1) |
| 19 |
PK |
- |
Pakistan Studies |
3 (3, 0) |
|
|
|
Total Credit Hour |
18 |
| Semester 4 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
| 5 |
CS |
- |
Operating Systems |
3 (2, 1) |
| 6 |
CS |
3 |
Introduction to Database Systems |
3 (2, 1) |
| 12. |
SE |
4 |
Software Construction |
3 (2-3) |
|
CS |
11 |
Numerical Computing |
3 (3,0) |
|
|
|
Supporting Elective II |
3 |
|
|
|
GE/University Elective II |
3 |
|
|
|
Total Credit Hour |
18 |
| Semester 5 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
| 12. |
SE |
7 |
Software Requirements Engineering |
3 (2-3) |
|
|
|
Theory of Automata & Formal Languages |
3 (3, 0) |
| 10 |
|
6 |
Computer Communications and Networks 1 |
3 (3-0) |
|
|
|
SE Elective I |
3 |
|
|
|
Supporting Elective III |
3 |
|
|
|
GE/University Elective III |
3 |
|
|
|
Total Credit Hour |
18 |
| Semester 6 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
| 11 |
|
8 |
Human Computer Interaction |
3 (3-0) |
| 12. |
SE |
13 |
Software Quality Engineering |
3 (2-3) |
| 12. |
SE |
13 |
Software Design and Architecture |
3 (2-3) |
| 12. |
SE |
7 |
Formal Methods in Software Engineering |
3 (3-0) |
|
|
|
SE Elective II |
3 |
|
|
|
SE Application Domain Elective –I |
3 |
|
|
|
Total Credit Hour |
18 |
| Semester 7 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
|
|
|
Senior Capstone Project I |
3 |
| 12. |
SE |
7 |
Software Project Management |
3 (3-0) |
| 20 |
SS |
-- |
Professional Practices |
3 (3, 0) |
|
|
|
SE Application Domain Elective –II |
3 |
|
|
|
GE/University Elective IV |
3 |
|
|
|
Total Credit Hour |
15 |
|
|
|
|
|
| Semester 8 |
|
|
|
|
| Course No. |
Course Code |
Pre. Requisite. |
Courses |
Credit Hour |
|
|
|
Senior Capstone Project II |
3 |
|
|
|
SE Elective III |
3 |
|
|
|
SE Elective IV |
3 |
|
|
|
SE Elective V |
3 |
|
|
|
Total Credit Hour |
12 |
|
|
|
|
|
|
|
|
Total (all semesters) = 133 |
|
COURSE CONTENTS - BS (SE) - Software Engineering
Course Name: Software Construction |
| Course Structure: Lectures: 2/ Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Data Structures and Algorithms |
Objectives:
Upon completion of this course, students will have the ability to:
- Apply a wide variety of software construction techniques and tools, including state-based and table-driven approaches to low-level design of software
- Design simple languages and protocols suitable for a variety of applications
- Generate code for simple languages and protocols using suitable tools
- Create simple formal specifications of low-level software modules, check the validity of these specifications, and generate code from the specifications using appropriate tools
- Design simple concurrent software
- Analyze software to improve its efficiency, reliability, and maintainability
Course Outline:
- Basics of formal languages; syntax and semantics; grammars; Backus Naur Form. Parsing; regular expressions and their relationship to state diagrams
- Lexical Analysis; tokens; more regular expressions and transition networks; principles of scanners
- Using tools to generate scanners; applications of scanners. Relation of scanners and compilers
- Parsing concepts; parse trees; context free grammars, LL Parsing
- Overview of principles of programming languages. Criteria for selecting programming languages and platforms
- Tools for automating software design and construction. Modelling system behaviour with extended finite state machines
- SDL
- Representing concurrency, and analyzing concurrent designs
Lab Work:
- Use of software engineering tools to create designs
- Use of parser generators to generate languages
|
Reference Material:
- Object-Oriented Software Construction, by Bertrand Meyer, Second Edition, Published by, Prentice Hall in 1997
- Formal Methods in Computing by M. Ferenczi, and Andras Pataricza , Sep 2005
- Code Complete 2nd edition: A practical handbook of software construction, published by Microsoft Press, 2004.
- Software Engineering by Ian Sommerville, 8th edition, Addison & Wesley. 2006
|
Course Name: Software Requirement Engineering |
| Course Structure: Lectures: 2 / Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Introduction to Software Engineering |
Objectives: To understand Issues in Requirements Engineering, to understand and apply Requirements Engineering Process, to understand and use Requirements Elicitation and Specification, to understand and use Formal Techniques, to understand modeling and analysis of Non-Functional Requirements. |
Course Outline: Definition of requirements engineering and role in system development, Fundamental concepts and activities of requirements engineering, Information elicitation techniques, Modeling scenarios
Fundamentals of goal-oriented requirements engineering, Modeling behavioral goals, Modeling quality goals, Goal modeling heuristics, Object modeling for requirements engineering, Object modeling notations, Object modeling heuristics, Identifying objects from goals, Modeling use cases and state machines, Deriving operational requirements from goals, Requirements Specification, Requirements verification and validation
Management of inconsistency and conflict, requirements engineering risks, the role of quality goals in the requirements selection process, Techniques for requirements evaluation, selection and prioritization; Requirements management; Requirements traceability and impact analysis. |
Lab Work
- The requirements are for the development of case applications.
- Outline of business requirements, the product vision and scope for applications.
- Use case elicitation using automated tools e.g. UML, Mobile Scenarios and PDA’s etc
- Development of Software Requirement Specification (SRS)
- Requirement Engineering Group Discussion activity and resource allocation etc
Reference Material:
- Hull, Jackson, and Dick, Requirements Engineering, 2004, Springer
- Karl E. Wiegers, Software Requirements, 2nd Edition, 2003, Microsoft Press
- Loucopoulos and Karakostas, System Requirements Engineering, McGraw-Hill , 1995
- Kotonya and Sommerville, Requirements Engineering: Processes and Techniques, John Wiley Sons, 1998.
|
Course Name: Software Design and Architecture |
| Course Structure: Lectures: 2 / Labs: 3 |
Credit Hours: 3 |
| Prerequisites: Software Requirement Engineering |
Objectives: An in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering.
Upon completion of this course, students will have the ability to:
- Apply a wide variety of design patterns, frameworks, and architectures in designing a wide variety of software
- Design and implement software using several different middleware technologies
- Use sound quality metrics as objectives for designs, and then measure and assess designs to ensure the objectives have been met
- Modify designs using sound change control approaches
- Use reverse engineering techniques to recapture the design of software
|
Course Outline:
Introduction: Putting Software Architecture in Context, Software Architecture as a Design Plan, Software Architecture as an Abstraction, Software Architecture Terminology, Four Views of Software Architecture, Loose coupling between Views, Engineering concerns addressed by different views, Using the four Views.
Global Analysis: Overview of Global Analysis Activities. Analyze Factors. Develop Strategies. Analyze Organizational Factors. Begin Developing Strategies. Analyze Technological Factors. Continue Developing Strategies. Analyze Product Factors. Continue Developing Strategies.
Conceptual Architecture View: Design Activities for the Conceptual Architecture View. Central Design Tasks: Components, Connectors, and Configuration. Final Design Task: Resource Budgeting, Traceability, Uses for the Conceptual Architecture View.
Module Architecture View: Design Activities for the Module Architecture View. Central Design Tasks: Modularization and Layering, Final Design Task: Interface Design, Traceability, Uses for the Module Architecture View.
Execution Architecture View: Design Activities for the Execution Architecture View. Central Design Tasks: Runtime Entities, Communication Paths, and Configuration, Final Design Task: Resource Allocation, Traceability, Uses for the Execution Architecture View.
Code Architecture View: Design Activities for the Code Architecture View. Central Design Tasks, Final Design Tasks, Traceability, Uses for the Code Architecture View.
Role of Architect: The Architect as a Key Technical Consultant, The Architect Makes Decisions, The Architect Coaches, The Architect Coordinates, The Architect Implements, The Architect Advocates, Software Architecture as a Career.
Lab Work
- Planning and Practice of existing software design methodologies.
- Outline of requirements, the existing design & architecture practices using up to date tools and technologies
- Applications of Software Development Life Cycle (SDLC), its phases and thus implementation of different process models
- Efficient use of different modeling and design tools e.g. UML (for code generation), open source code development etc.
- Writing of Software Design Specifications
|
Resources:
- Software Architecture Design - Methodology and Styles Stipes Publishing L.L.C.
Copyright © 2006 Lixin Tao, Xiang Fu and Kai Qian
- Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture, 1999, Pearson.
|
Course Name: Software Quality Engineering |
| Course Structure: Lectures: 2 /Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Software Requirement Engineering |
Objectives: The objective of this course is to make students have ability to understand and practice:
How to assure and verify Quality, and the need for a culture of quality. Avoidance of errors and other quality problems. Inspections and reviews. Testing, verification and validation techniques using variety of tools, incorporation of feedback loop to support quality promotion. Process assurance vs. Product assurance. Quality process standards. Product and process assurance. Problem analysis and reporting. Statistical approaches to quality control.
Course Outline: Introduction to software quality assurance, The Quality Challenge, Quality Control v/s Quality Assurance, Quality Assurance in Software Projects (Phases), Principles and Practices, Quality Management, Quality Assurance and Standards, Quality Planning and Quality Control, Verification and Validation, Planning Verification and Validation, Critical System Validation, Reliability Validation, Safety Assurance, Security assessment, Inspections and reviews, Principles of software validation, Software verification, Planning for Software Quality Assurance, Software Quality Assurance (SQA) Plans, SQA-Organizational Level Initiatives, SQA Planning (Observations, Numbers, Results), Software Testing, Specification based test construction techniques, White-box and grey-box testing, Others comprehensive software testing techniques for SDLC, Control flow oriented test construction techniques, Data flow oriented test construction techniques, Clean-room approach to quality assurance, Product Quality and Process Quality, Standards for process quality and standards for product quality, Walkthroughs and Inspections, Structure, Checklist, Audits, Roles and Responsibilities (Reviews, Inspections, etc), How to make Reviews and Inspections most effective
Lab Work:
- Planning and Development of test cases
- Planning and implementation of different Testing Techniques e.g. White Box Testing, Black Box Testing, Recursion Testing etc
- Collection and Generation of test data
- Practicing Testing methodologies using automated testing tool & technologies
- Analysis of Test results & Extreme testing
|
Resources:
- Software Quality Assurance: Principles and Practice (Hardcover). by Nina S. Godbole, published by Alpha Science, 2004
- Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement by Jeff Tian, published by John Wiley & sons, 2005
- Software Testing in the Real World: Improving the Process by Kit, Edward, Addison & Wesley, 1998.
- Perfect Software: And other illusions about testing by Gerald M. Weinberg, published Dorest House, 2008
|
Course Name: Software Project Management |
| Course Structure: Lectures: 3 /Labs: 0 |
Credit Hours: 3 |
| Prerequisites: Introduction to Software Engineering |
Objectives: To develop ability to plan and manage software development projects successfully, maximizing the return from each stage of the software development life cycle. |
Course Outline: Software Crisis and Software Engineering, Classic Mistakes, Overview of Project Management, PMI Process Groups, Software project Phases, Project charter, Statement of Work (SOW), Planning Phase: Development lifecycle models, matching lifecycles to projects, Project plans, Work Breakdown Structures (WBS), Estimation of effort and cost (Expert Judgment, FP and Use Case point methods), Scheduling: Project network diagram fundamentals, CPM, PERT, Gantt charts, Critical chain scheduling, Using MS-Project, Assigning Resources, Resource leveling, Team models, Managing conflict and motivating, Project Monitoring and Control: Status reporting, Project metrics, EVM, Communications Techniques, Risk management and Change control Project Recovery, Documentation, Cutover/Migration, Post Project Reviews, Closing. |
Resources
- Bob Hughes and Mike Cotterell , Software Project Management, 2005, McGraw Hill Higher Education
- Dwayne Phillips. The Software Project Manager's Handbook - Principles that work at work. 2nd Edition, IEEE Computer Society Press and Wiley Interscience, 2004. ISBN 0-471-67420-6
|
BS (SE) - Software Engineering Courses (Electives)
Course Name: Software Metrics |
| Course Structure: Lectures: 3 Lab:0 |
Credit Hours: 3 |
| Prerequisites: Software Quality Engineering (SQE) |
Objectives:
Upon completion of this course, students will have the ability to:
- Take account of the Metrics Program.
- Measurement theory (overview of software metrics, basics of measurement theory, goal-based framework for software measurement, empirical investigation in software engineering)
- Identify the internal and external metrics attributes
- Enhancing the software development process with respect to metrics
- Software product and process measurements (measuring internal product attributes: size and structure, measuring external product attributes: quality, measuring cost and effort, measuring software reliability, software test metrics, object-oriented metrics)
- Measurement management
Account of well known International metrics in software and system engineering
Course Outline:
- What are software metrics, Basic Measurement Theory
- Measurement quality, Measurement process, Measurement validation
- Software measure classification
- Goal-based paradigms: Goal-Question-Metrics (GQM), Goal-Question-Indicator-Metrics (GQIM) and Applications of GQM and GQIM
- Design Metrics, Measurements and Models, Measurements Scales
- Software engineering investigation, Investigation principles, Investigation techniques, Formal experiments: Planning, Formal experiments: Principles and Formal experiments: Selection
- Internal Metrics, Types of metrics, Software Size, Software Size: Length (code, specification, design), Software Size: Reuse, Software Size: Functionality (function point, feature point, object point, use-case point), Software Size: Complexity
- Representing concurrency, and analyzing concurrent designs
- Software structural measurement, Control-flow structure, Cyclomatic complexity, Data flow and data structure attributes, Architectural measurement
- Software cost model, COCOMO and COCOMO II, Constraint model, Software Lifecycle Management (SLIM), Cost models: advantages and drawbacks
- Software quality, Software quality models: Boehm's model, McCall's model, ISO 9126 model, Especially account of ISO/ IEC 9126 External Metrics suite etc., Basic software quality metrics, Quality management models, Measuring customer satisfaction
- Object-Oriented measurement concepts, Basic metrics for OO systems, CK metrics, OO analysis and design metrics, Metrics for productivity measurement, Metrics for OO software quality
- SQA, Test concepts, definitions and techniques, Estimating number of test case, Allocating test times , Decisions based on testing, Test coverage measurement, Software testability measurement, Remaining defects measurement
|
Lab Work:
- Use of software engineering tools to estimate attributes of existing well known metrics
- Estimate the attributes and sub-attributes of the SDLC depending upon the assigned data/project
- Applying ISO external metrics attributes to existing SDLC phases
|
Reference Material:
Additional Recommended Text and Reference Books:
- Metrics and Models in Software Quality Engineering, by Stephen H. Kan, 2nd ed. Addison-Wesley Professional (2002)
- Software Metrics: A Rigorous and Practical Approach, (2nd ed.), by N.E. Fenton and S.L. Pfleeger, PWS Publishing, 1998
- Software Engineer's Reference Book, by J. McDermid (Edt.), Butterworth Heinemann. Year of Publication
- Software Metrics: A Guide to Planning, Analysis, and Application, C. Ravindranath Pandian, Auerbach Publications, (2004).
- Applied Software Measurement: Assuring Productivity and Quality, C. Jones, McGraw-Hill. Year of Publication
- ISO/IEC 9126 External Metrics Reports I & II
- Guide to Advance Empirical Software Engineering by Forrest Shull, Janice Singer (Eds.), Springer-Verlag, 2007.
|
Course Name: Software Engineering Economics |
| Course Structure: Lectures: /Labs: |
Credit Hours: 3 |
| Prerequisites: |
Objectives: Determine how new software development technologies affect the economics and risks of software development. Understand and characterize how the paradigm shift affects or replaces our current methods of software cost, schedule and risk estimation. Identify best practices and lessons learned with Web-based developments. Identify acquisition and lifecycle risks |
Course Outline: Programming aspects, economic aspects, human relations aspects, software trends: cost, social impact, the plurality of SE Means, The GOALS Approach to Software Engineering, The Software Work Breakdown Structure (WBS), Software Maintenance, introduction to COCOMO, definitions and assumptions, development effort and schedule, phase distribution, The Raylaigh Distribution, interpolation, basic software maintenance effort estimation. Performance Models, Optimal Performance, Sensitivity Analysis, Cost-Effectiveness Models. |
Resources:
- Boehm, Software Engineering Economics, Prentice Hall, 1981.
- Boehm et al., Software Cost Estimation with COCOMO II , Prentice Hall, 2000.
- Reifer, Don. Making the Software Business Case: Improvement by the Numbers , Addison Wesley, 2001.
|
Course Name: Information System Audit |
| Course Structure: Lectures:3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: None |
Objectives: To provide basic concept of information system audit and control, policies and procedures as defined by ISACA. To review and evaluate or conduct IS audits of an organization |
Course Outline: IS Audit charter, Polices, Procedures, Audit computer networks and communication, Auditing software development, Acquisition, Maintenance, Auditing IT infrastructure, Auditing Management and Organization, Business process re engineering: IS audit proposal, report, evidence and follow-up, complaint to standard, Enterprise service agreement, IP pro count policies and process, Backup and procedures |
Resources:
- Auditing Information Systems, by Jack J. Champlain, published by john Wiley & Sons, 2003
- Control Objective for Information Technology (COBIT), 3rd Ed, by Information System Audit and Control Foundation.
- CISA Review Manual, 2004, by Information System Audit and Control Association, www.isaca.org.
|
Course Name: Business Process Automation |
| Course Structure: Lectures:3/Labs:0 |
Credit Hours: 3 |
| Prerequisites: Introduction to Software Engineering |
Objectives:
Upon completion of this course, students will have the ability to:
- Apply their knowledge of business processes in the development of applications for various industry verticals
- Analyze business processes in terms of rules, complexity, user interactions and bottlenecks
- understand the concepts, views and latest methodologies of business process modeling
- utilize software tools for business process designing
- understand key concepts in the design and utilization of best business practices embedded in large business applications (ERP)
- have an appreciation of issues pertaining to organizational design and organizational change management in the context of business process management
|
Course Outline:
- Business Process Definitions
- Business Process Analysis and Modelling
- Business Process Lifecycle
- Policies, Procedures and Rules (in terms of business processes)
- Role of People, Customers, Trading Partners and Suppliers in Business Processes
- Business Process Simulation
- Business Process Re-Engineering (objectives and techniques)
- Basic concepts of Six Sigma (in terms of business process improvement)
|
Reference Material:
- Business Process Automation ARIS in Practice by August Wilhelm Scheer, Springer-Verlag, 2004
- Business Process Automation, ‘ Performance and Capacity Planning with Bpel by Matthies Masour, Andy Scherzinger, VDM-Verlag 2007.
|
Course Name: Design Patterns |
| Course Structure: Lectures: 3 /Labs: 0 |
Credit Hours: 3 |
| Prerequisites: |
Objective: This course provides good knowledge about design patterns and how they are practically implemented in order to enhance existing systems and their design solutions.
After the course you will have a deep understanding regarding the thoughts behind design patterns. You will also have a knowledge database consisting of usable design patterns and related concepts, which will make you well-prepared for implementation in your daily work. |
Course Outline: The course focuses on studying a large number of general design patterns and their practical application.
Furthermore, some patterns and idioms (language specific techniques) meant for real-time systems will be provided.
The course may include following contents:
General design patterns, Specific patterns for technical real-time systems, Deep understanding of the thoughts behind design patterns, Classification of patterns, Orientation around other types of patterns. |
Resources:
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition
|
- by Craig Larman, published by Prentice hall, 2004
|
- Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/e by James Trott (Kindle Edition - Feb 24, 2009)
|
Course Name: Software Testing |
| Course Structure: Lectures: 2 / Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Software Construction |
Objectives: Testing techniques and principles: Defects vs. failures, equivalence classes, boundary testing.
Types of defects. Black-box Vs. Structural testing. Testing strategies: Unit testing, integration testing, profiling, test driven development. State based testing; configuration testing; compatibility testing; web site testing. Alpha, beta, and acceptance testing. Coverage criteria. Test instrumentation and tools. Developing test plans. Managing the testing process. Problem reporting, tracking, and analysis.
Learning objectives:
Upon completion of this course, students will have the ability to:
- Analyze requirements to determine appropriate testing strategies.
- Design and implement comprehensive test plans
- Apply a wide variety of testing techniques in an effective and efficient manner
- Compute test coverage and yield according to a variety of criteria
- Use statistical techniques to evaluate the defect density and the likelihood of faults.
- Conduct reviews and inspections.
Lab Work
Additional teaching considerations:
This course is intended to be 95% testing, with deep coverage of a wide variety of testing techniques.
The course should build skill and experience in the student, preferably with production code. |
Course Outline: Introduction and overview: Testing and inspection concepts, Testing categories, Inception process: Objective of formal inspection Organizing Test cases: Decision Tables, Black box and white box testing Unit testing, Integration testing, Regression testing, System testing, user acceptance testing, Metrics and complexity, State based testing, Syntax testing; Use of software testing tools. |
Resources:
- Introduction to Software Testing by Paul Ammann and Jeff Offutt Published February 2008. , Cambridge University Press, Cambridge, UK.
- Software Testing by Ron Patton, 2nd edition, SAMS publishing, 2005
- Software Testing in the Real World: Improving the Process by Kit, Edward. (1995)
|
Course Name: Formal Methods |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: None |
Objectives: In this course students learn how to represent computing systems with both state-based and process algebra models. They specify computing systems formally, reason about specifications, and verify their properties. They connect specifications to programmes through refinement and decomposition. They use theorem proving and model checking tools. |
Course Outline: Introduction to formal specification, Transformational development, Specification analysis and proof, Programme verification, Objects and types: Sets and set types, Tuples and Cartesian product types, Bindings and schema types, Relations and functions, Properties and schemas, Generic constructions, The Z Language, Syntactic conventions, Schema references, Schema texts, Predicates, Schema expressions, Generics, Sequential Systems. |
Resources:
- System Development using VDM by Jones, C. B. (Year of Publication)
- Z – Specification Language by Spiveny (Year of Publication)
- Modern Formal Methods and Applications by Hossam A. Gabbar, Springer-Verlag 2006.
|
Course Name: Distributed Computing |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: Introduction to Software Development |
Objectives: This course is intended to provide a sound background for net centric software development. The course will concentrate an overview of major technologies like CORBA, RMI, .NET and will highlight the interfacing of middle layer with the upper layers and system layer |
Course Outline: Introduction to distributed systems, Distributed data, Distributed processing system, Multithreading, Thread synchronization, Resource brokerage, Resource monitoring, Load balancing, Storage elements, Batch processing models, Middle layer architecture, Resource clustering, RMI, CORBA, Net, MPI. |
Resources:
- Distributed Systems: Principles and Paradigms by Tanen Baum. 2nd Edition
- Distributed Systems: Concepts and Design (International Computer Science Series) by Jean Dollimore, Tim Kindberg, and George Coulouris (Hardcover - 14 Jun 2005)
|
Course Name: Introduction to Soft Computing |
| Course Structure: Lectures: 3/ Labs: 0 |
Credit Hours: 3 |
| Prerequisites: Artificial Intelligence |
Objectives: The course provides an in-depth overview of the theoretical and the practical aspects of the soft computing paradigm. The main focus is on the theory and application of probabilistic graphical models (commonly known as Bayesian networks in the Artificial Intelligence community) and related topics, such as, knowledge elicitation issues, belief updating in singly and multiply connected networks, simulation schemes for belief updating, parameter and structure learning of Bayesian networks, and integration of time and uncertainty. Alternative models of uncertain reasoning (including belief function theory and fuzzy logic) and biologically inspired computational models (neural networks and evolutionary algorithms) are also presented.
Introduction: Introduction to soft computing; introduction to biological and artificial neural network; introduction to fuzzy sets and fuzzy logic systems.
Biological neural networks: generalization of single neuron; neural dynamics; additive and shunting neural networks; short term and long-term memory. (Week 2-4)
Artificial neural networks and applications: artificial neural network models; learning in artificial neural networks; neural network applications in control systems. (Week 5-8)
Fuzzy systems and applications: fuzzy sets; fuzzy reasoning; fuzzy inference systems; fuzzy control; applications of fuzzy systems. (Week 9-11) |
Course Outline:
- Neural Networks
- Classification Tree
- Naïve Bayes
- Applications of Predictive Models
- Probabilistic Reasoning using Bayesian Networks
- Knowledge Acquistion
- Belief Updating
- Exact and Simulation-based Propagation Algorithms
- Parameter and Structure Learning
- Influence Nets
- Dempster-Shafter Theory of Belief Functions
- Fuzzy Logic
|
Resources:
- Kevin Korb and Ann Nicholson, Bayesian Artificial Intelligence, 2003.
- Ben Coppin, Artificial Intelligence Illuminated, 2004.
- Soft Computing & Intelligent Systems Design, by Karray & De Silva, Addison-Wesley, 2005.
|
Course Name: Data Warehousing and Data Mining |
| Course Structure: Lectures: 3 Lab: 0 Credit Hours: 3 |
Course Outline: Concepts of Data mining and Data Warehousing, Data Preparation Techniques: outlier and missing data analysis, Data Reduction Techniques, learning methods in Data mining, Statistical Methods in Data Mining, Cluster Analysis, hierarchal, agglomerative and Naïve Bayesian methods, Decision Trees and Decision Rules, Association Rules, Other Soft Computing Approaches in Data Mining, Artificial Neural Networks, Fuzzy Logic and Fuzzy Set Theory, Genetic Algorithm, evolutionary algorithms. |
Text Books/ References Books
- Mehmed Kantatardzic, Data Mning: Concepts, Models, Methods, and Algorithms, 2003, John Wiley and Sons.
- Margaret H. Dunham and S. Sridhar, Data Mining, Introductory and Advanced Topics, 2006, Pearson Education,
- David Hand, Heikki MAnnila and Padhraic Smyth, Principles of Data Mining, 2001, The MIT Press.
- Daniel T. Larose, Data Mining Methods and Models, 2006, John Wiley and Sons.
- Max Bramer, Principles of Data Mining, 2007, Springer-Verlag.
- Paulraj Ponniah, Data Warehousing Fundamentals, 2005, John Wiley and Sons.
- Chuck Ballard Dirk Herreman Don Schau Rhonda Bell, Eunsaeng Kim Ann Valencic, Data Modeling Techniques for Data Warehousing, 1999, IBM Corporation, International Technical Support Organization.
|
Course Name: Artificial Intelligence |
| Course Structure: Lectures: 2 / Labs: 3 |
Credit Hours: 3 |
| Prerequisites: Data Structures |
Objectives: This course focuses on the set of computational tools and techniques, which mimic the human decision-making process and capability. |
Course Outline: Introduction to Common Lisp. AI classical systems: General Problem Solver, rules, simple search, means-ends analysis. ELIZA, pattern matching, rule based translators, OPS-5. Knowledge Representation: Natural language, rules, productions, predicate logic, semantic networks, frames, objects, scripts. Search: Depth first search, breadth first search, best first search, hill climbing, min-max search, A* search. Symbolic Mathematics: student, solving algebra problems, translating English equations, solving algebraic equations, simplification rules, re-write rules, meta-rules, Macsyma, PRESS, ATLAS. Logic Programming: Resolution, unification, horn-clause logic, Prolog, Prolog programming. Sample case studies of shells and Knowledge Based Systems. A brief appreciation of state of the art computational techniques like neural networks, genetic algorithm, fuzzy sets. |
Reference Material:
- Artificial Intelligence by Luger, 4th edition Pearson Education.
- Russell and Norvig, Artificial Intelligence: A Modern Aproach, 2nd ed, Pearson Education.
|
Course Name: Data Security and Encryption |
| Course Structure: Lectures: 3/Labs: 0 |
Credit Hours: 3 |
| Prerequisites: |
Objectives: This is an introductory course on the methods, algorithms, techniques, and tools of data security and cryptography. After studying the theoretical aspects of cryptographic algorithms and protocols, we show how these techniques can be integrated to solve particular data and communication security problems. This course material is of use to computer and communication engineers who are interested in embedding security into an information system, and thus, providing integrity, confidentiality, and authenticity of the documents and the communicating parties. |
Course Outline: The course consists of three parts: mathematical background, cryptography, and network security. The first part (mathematical background) introduces the principle of number theory and some results from probability theory, including Primes, random numbers, modular arithmetic and discrete logarithms. The second part (cryptography) covers cryptographic algorithms and design principles, including conventional and symmetric encryption (DES, IDEA, Blowfish, Rijndael, RC-4, RC-5), public key or asymmetric encryption (RSA, Diffie-Hellman), key management, hash functions (MD5, SHA-1, RIPEMD-160, HMAC), digital signatures, and certificates. The third part (network security) deals with practical applications that have been implemented and are in use to provide network security, including authentication protocols (X.509, Kerberos), electronic mail security (S/MIME, PGP), web security and protocols for secure electronic commerce (IPSec, SSL, TLS, SET). |
Resources:
- William Stallings, Cryptography and Network Security: Principles and Practice, 4th edition, Prentice Hall, 2005
|
Course Name: Discrete Structures–II |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: None |
Objectives: Continues the discussion of discrete mathematics introduced in CS105. Topics in the second course include predicate logic, recurrence relations, graphs, trees, matrices, computational complexity, elementary computability, and discrete probability. |
Course Outline:
- Review of previous course
- Predicate logic: Universal and existential quantification; modus ponens and modus tollens; limitations of predicate logic
- Recurrence relations: Basic formulae; elementary solution techniques
- Graphs and trees: Fundamental definitions; simple algorithms; traversal strategies; proof techniques; spanning trees; applications
- Matrices: Basic properties; applications
- Computational complexity: Order analysis; standard complexity classes
- Elementary computability: Countability and uncountability; diagonalization proof to show uncountability of the reals; definition of the P and NP classes; simple demonstration of the halting problem
- Discrete probability: Finite probability spaces; conditional probability, independence
- Methods of Proof, Mathematical Induction and Recursion, loop invariants, Pigeon whole principle, Trees and Graphs, Optimization and matching.
|
Resources:
- Discrete Mathematical Structures by Rosen 2006.
- Discrete Mathematics by Richard Johnsonbaugh 1996.
|
Course Name: Theory of Automata and Formal Languages |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: Discrete Structures |
Objectives: The course aims to develop an appreciation of the theoretical foundations of computer science through study of mathematical & abstract models of computers and the theory of formal languages. Theory of formal languages and use of various abstract machines as ‘recognizers’ and parsing will be studied for identifying/validating the synthetic characteristics of programming languages. Some of the abstract machines shall also study as “Transducers”. |
Course Outline: Finite State Models: Language definitions preliminaries, Regular expressions/Regular languages, Finite automata (Fas), Transition graphs (TGs), NFAs, kleene’s theorem, Transducers (automata with output), Pumping lemma and non regular language Grammars and PDA: Context free grammars, Derivations, derivation trees and ambiguity, Simplifying CFLs, Normal form grammars and parsing, Push-down Automata, Pumping lemma and non-context free languages, Decidability, Chomsky’s hierarchy of grammars Turing Machines Theory: Turing machines, Post machine, Variations on TM, TM encoding, Universal Turing Machine, Context sensitive Grammars, Defining Computers by TMs. |
Resources:
- Automata Theory by Martin
- Introduction to Computer Theory, by Denial Cohen, John Wiley & Sons, Inc., 1996
- Introduction to Automata Theory, Languages and Computation, by J Hopcraft, D. Ullman, 2006.
- Languages and Machines, An Into to the Theory of Comp. Sc., by Thomas A. Sudkamp.
|
Course Name: Analysis of Algorithms |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: Discrete Structures, Data Structures |
Objectives: Detailed study of the basic notions of the design of algorithms and the underlying data structures. Several measures of complexity are introduced. Emphasis on the structure, complexity, and efficiency of algorithms. |
Course Outline: Introduction; Asymptotic notations; Recursion and recurrence relations; Divide-and-conquer approach; Sorting; Search trees; Heaps; Hashing; Greedy approach; Dynamic programming; Graph algorithms; Shortest paths; Network flow; Disjoint Sets; Polynomial and matrix calculations; String matching; NP complete problems; Approximation algorithms. |
Resources:
- Introduction to Algorithms, Second Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, MIT press, 2001
|
Course Name: Computer Graphics |
| Course Structure: Lectures: 2 / Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Object Oriented Programming |
Objectives: Study of various algorithms in computer graphics and their implementation in any programming language. |
Course Outline: Graphics hardware. Fundamental algorithms. Applications of graphics. Interactive graphics programming - graph plotting, windows and clipping, and segmentation. Programming raster display systems, panning and zooming. Raster algorithms and software - Scan-Converting lines, characters and circles. Region filling and clipping. Two and three dimensional imaging geometry and transformations. Curve and surface design, rendering, shading, colour, and animation. |
Resources:
- Computer Graphics Using Open GL, 2/E, Francis S. Hill, Jr., Prentice Hall, 2001
- Fundamentals of Computer Graphics: 2nd Edition by Peter Shirley A.K. Peters, 2005
|
Course Name: Artificial Neural Networks |
| Course Structure: Lectures:3/ Labs: |
Credit Hours: 3 |
| Prerequisites: Artificial Intelligence |
Objectives: This course presents an overview of the theory and applications of artificial neural network and fuzzy systems to engineering applications with emphasis on signal processing and control. The objective of this course is on the understanding of various neural network and fuzzy systems models and the applications of these models to solve engineering problems. |
Course Outline: Introduction Contexts for and Motivation Neural Networks: Artificial Intelligence | Biological | Physics, Artificial Neural Network overview.
Supervised Learning: Single-Layer Networks , Perceptrons , Adalines Supervised Learning: Multi-Layer Networks.
Multi-Layer Perceptrons (MLPs) , Backpropagation , Conjugate Gradient method , Levenberg-Marquardt (LM) method , Madalines , Radial-Basis Networks , Cascade-Correlation Networks , Polynomial Networks , Recurrent Networks (Time series , Backpropagation through time , Finite Impulse Response (FIR) MLP ), Temporal Differences method (TD).
Unsupervised Learning
Simple Competitive Networks: Winner-take-all | Hamming network , Learning Vector Quantization (LVQ), Counterpropagation Networks (CPN) , Adaptive Resonance Theory (ART) , Kohonen Self-Organizing Maps (SOMs) , Principal Component Analysis networks (PCA)
Associative Models
Linear Associative Memory (LAM) , Hopfield Networks , Brain-State-in-a-Box , BSB) , Boltzmann Machines and Simulated Annealing , Bi-Directional Associative Memory (BAM)
Optimization Problems
Neural Network Approaches, Evolutionary Programming , Fuzzy logic and its connection to NNs |
Resources:
- Neural Networks: A Comprehensive Foundation, Simon Haykin, Prentice Hall, Upper Saddle River, NJ, SECOND EDITION, 1999
- Artificial neural networks: an introduction, by Kevin L. Priddy, Paul E. Keller-Technology & Engineering-2005
- Neural networks: methodology and applications, by G. Dreyfus-computers-, 2005
|
Course Name: Bioinformatics |
| Course Structure: Lectures: 3/ Labs: 0 |
Credit Hours: 3 |
| Prerequisites: |
Objectives: This course introduces the scientist to Bioinformatics, which uses computer databases to store, retrieve and assist in understanding biological information. Genome-scale sequencing projects have led to an explosion of genetic sequences available for automated analysis. These gene sequences are the codes, which direct the production of proteins that in turn regulate all life processes. The student will be shown how these sequences can lead to a much fuller understanding of many biological processes allowing pharmaceutical and biotechnology companies to determine for example new drug targets or to predict if particular drugs are applicable to all patients. Students will be introduced to the basic concepts behind Bioinformatics. Hands-on sessions will familiarize students with the details and use of the most commonly used online tools and resources. |
Course Outline: This interdisciplinary course provides a hands-on approach to students in the topics of bioinformatics. Lectures and labs should cover sequence analysis, microarray expression analysis, Bayesian methods, control theory, scale-free networks, and biotechnology applications. Contents are designed for should include for those with a computational and/or engineering background, it will include current real-world examples, actual implementations, and engineering design issues. Where applicable, engineering issues from signal processing, network theory, machine learning, robotics and other domains will be expounded upon. The use of NCBI's Entrez, BLAST, PSI-BLAST, ClustalW, Pfam, PRINTS, BLOCKS, Prosite and the PDB. |
Resources:
- Jean-Michel, Claverie, Cedric Notredame, Jean-Michel Claverie, “ Bioinformatics for Dummies”, John Wiley & Sons, Incorporated, 2007
- Pierre Baldi, Søren Brunak (2001),“Bioinformatics: the machine learning approach”, MIT Press.
- Arthur M. Lesk (2002),“Introduction to Bioinformatics”, Oxford University Press.
- David R. Westhead, John Howard Parish, Richard M. Twyman (2002), “Bioinformatics”, Published by BIOS.
|
Elective Supporting Courses
Course Name: Computational Linear Algebra |
| Course Structure: Lectures: 2 / Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Linear Algebra, Calculus |
Objectives: Students will gain familiarity with and facility in the use of standard techniques for the numerical solution of a variety of problems in linear algebra, including solutions of linear systems, various matrix operations, evaluation of determinants and permanents, calculation of eigenvalues and determination of eigenvectors. Students will be introduced to various discrete transforms and apply some specific transforms to the solution of simple problems. In all cases, students will be introduced to possible sources of error and techniques for estimating the magnitude. |
Course Outline: Background matrix algebra, measuring vectors, matrices, subspaces, and linear system sensitivity, numerical matrix algebra, Gaussian elimination, special linear systems, orthogonalization and least squares methods, the unsymmetrical eigenvalues problem, the symmetric eignevalues problem, Lanczos methods, iterative methods for linear systems, functions of matrices.
Introduction of discrete transforms, discrete Fourier and cosine transforms and simple applications. Error analysis and estimation for all techniques studied.
Sample labs and assignments:
- Implementation and testing of algorithms for typical linear algebra problems, including an analysis of errors.
|
Resources:
1. Golub, G., and C. Van Loan, Matrix Computations (3/e), 1996
2. Sewell, G., Computational Methods of Linear Algebra (2/e), 2005
3. Nievergelt, Y., Wavelets Made Easy, 1999. |
Course Name: Mathematical Tools for Software Engineering |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: Linear Algebra, Calculus, Discrete Mathematics |
Objectives: Students will gain familiarity with and facility in the use of a variety of mathematical concepts and tools with significant applications in software engineering, including mathematical models of machines and computations, various discrete and continuous optimization techniques, tools for the analysis of efficiency, formal methods for program verification |
Course Outline:
Sample labs and assignments:
- Building a significant project using one or more well known middleware architectures.
|
Resources:
1. Graham, R. L., D. E. Knuth and O. Patashnik, Concrete Mathematics: A Foundation for Computer Science (2/e), 1994
2. Greene, D. H., and D. E. Knuth, Mathematics for the Analysis of Algorithms, 1990. |
Course Name: Operations Research |
| Course Structure: Lectures: 2 / Labs: 1 |
Credit Hours: 3 |
| Prerequisites: Linear Algebra, Calculus, Discrete Mathematics, Probability and Statistics |
Objectives: Students will become familiar with techniques of modeling real world problems. They will gain facility in working with a number of the most common models and modeling patterns. They will understand and be able to apply the notions of sensitivity analysis. They will be able to select appropriate deterministic or stochastic models in a wide variety of common situations. |
Course Outline: Introduction to mathematical modeling. Linear program models, simplex method for solving LP models, sensitivity analysis, other solution techniques for LP models, specialized LP models (transport, assignment, etc.). Network based models, shortest path, min weight spanning tree, max flow, PERT/CPM. Decision models, dynamic programming, games theory. Probabilistic models, expected return models, Markov chains, stochastic processes, queueing models, stochastic inventory models.
Sample labs and assignments:
- Given a scenario, select and develop an appropriate model, solve it for the given parameters, and analyze the sensitivity of he solution to changes in the problem parameters.
|
Resources:
1. Hamdi A. Taha, Operations Research: An Introduction (8/e), 2006
2. Hillier, F. S., and G. J. Leibermann, Introduction to Operations Research (8/e), 2005 |
Course Name: Simulation and Modeling |
| Course Structure: Lectures: 2 / Labs: 3 |
Credit Hours: 3 |
| Prerequisites: Probability and Statistics, Calculus |
Objectives: This course emphasizes the development of modeling and simulation concepts and analysis skills necessary to design, program, implement, and use computers to solve complex systems/products analysis problems regarding software engineering discipline. The key emphasis is on problem formulation, model building, data analysis, solution techniques, and evaluation of alternative designs/processes in complex systems/products. Overview of modeling techniques and methods used in decision analysis, including Monte Carlo simulation and systems dynamics modeling are presented.
- To apply modern software packages to conduct analysis of real world data.
- To understand the technical underpinning of modern computer simulation software.
- The ability to apply the appropriate analytical technique to a wide variety of real world problems and data sets.
- To summarize and present the analysis results in a clear and coherent manner.
|
Course Outline: Introduction to Simulation and Modeling, Discrete-Event Simulation, Simulation of a Single-Server Queueing System, Alternative Approaches to Modeling and Simulations; Review of Basic Probability and Statistics; Estimation of Means, Variances, and Correlations, Confidence Intervals and Hypothesis Tests for the Mean, The Laws of Large Numbers; Random number generators; Simulation of discrete, continuous probability distributions and empirical distributions; tests on simulated distributions, rejection method, simulation of multivariate distributions, correlations, and stochastic processes, simulation of models of arrival processes, Poisson Processes, Nonstationary Poisson Processes, Batch Arrivals, tests on generators, Markov- Chain Monte-Carlo simulations; Variance-Reduction Techniques. |
Resources:
- A.M. Law and W.D. Kelton, “Simulation Modeling and Analysis”, McGraw Hill, 2000.
- J. Banks, J.S. Carson and B.L. Nelson, “Discrete-event System Simulation”, Prentice Hall International, 1994.
- Mitrani, “Probabilistic Modeling”, Cambridge University Press, 1998.
- Sheldon M. Ross, “Simulation and Modeling”, 2002.
- Brian Ripley, “Stochastic Simulations”.
|
Course Name: Ethics and Professional Practices for Computing Professionals |
| Course Structure: Lectures: 3 / Labs: 0 |
Credit Hours: 3 |
| Prerequisites: None |
Objectives: A Computing graduate as professional has some responsibilities with respect to the society. This course develops student understanding about historical, social, economic, ethical, and professional issues related to the discipline of Computing. It identifies key sources for information and opinion about professionalism and ethics. Students analyze, evaluate, and assess ethical and professional computing case studies. |
Course Outline: Introduction, Computing Ethics, Philosophy of Ethics, Ethics and the Internet.
Intellectual Copy Right, Accountability and Auditing, Social Application of Ethics.
|
Resources:
- Deborah G. Johnson, “Computer Ethics”, Pearson Education (2001) 3rd edition.
- Professional Issues in Software Engineering, M.F. Bott et. al.
|
|