Software engineering curriculum model PDF Хэвлэх И-мэйл
There are no translations available.


Software Engineering is the discipline of creating high-quality software in a systematic, controlled and efficient manner, and maintaining it at the optimal costs. It requires an application of the concepts, techniques, and methods of engineering to the development of software systems. A software engineering (SE) program should concentrate on development of professionals who have an expertise level knowledge of software development principles, theory, practice, and process.

 

In general, engineering concentrated on application of things and concepts which is known already to create products, while science is more theoretical. According to Parnas, the goal of Computer Science is to learn and to expand the science. On the other hand SE aims to use the science and technology knowledge which is available already to create new and advanced products and tools for use.

 

Definition

Software Engineering is a discipline concerned with the development of software systems by applying engineering principles with the goal of developing cost-effective quality systems. IEEE defines software engineering in [IEEE-93] as

  1. The application of systematic, disciplined, quantifiable approach to development, operation, and maintenance of software; that is application of engineering to software.
  2. The study of approaches as in 1.

Vision

Software engineering is the discipline of creating high-quality software in a systematic, controlled and efficient manner, and maintaining it it at the optimal costs. It requires an application of the concepts, techniques, and methods of engineering to the development of software systems. A software engineering (SE) program should concentrate on the preparation of professionals who have an expertise level knowledge of software development principles, theory, practice, and process. Therefore we define the vision of our curriculum as follows:

The SE education will focus training students who have abilities to harmonize theory with practice, with problem solving abilities and skills. To do so it will concentrate on the preparation them to apply competently engineering principles, processes and practices to software components and systems, and their maintenance. Besides students’ professional growth the program will also focus on the development of their personal and interpersonal skills. It will help students to enhance their ability in oral and written communication, and their adaptability to group-work environments. The programme will inculcate among students a strong sense of civic, professional and ethical responsibility. The programme will strive to develop in the professionals a capacity for innovation and a passion for life- long learning.

SE curricula thus must reflect the aim to satisfy professional demands of the industry and academia. The graduates will be able to answer the challenges offered by the modern world.

 

Knowledge domain of SE curriculum

 

ABET Engineering Criteria 2000 notes:

The curriculum must provide both breadth and depth across the range of engineering and

computer science topics implied by the title and objective of the programme. The programme

must demonstrate that graduates have: the ability to analyze, design, verify, validate,

implement, apply, and maintain software systems; the ability to appropriately apply discrete

mathematics, probability and statistics, and relevant topics in computer and management

sciences to complex software systems.

 

The following major areas of relevant pedagogy have been identified to be appropriate for design of the software engineering curriculum:

1. Computing Foundation (CS/SE/CE)

2. Software Engineering (SE Major)

3. Software Engineering Application Domain

4. Supporting Areas (Mathematics and Natural Sciences)

5. General Education (Management, Humanities, Social Sciences)

 

The curriculum followed the concept that good curriculum should focus on building a solid foundation in the early stages of learning. It should gradually introduce and strengthen the core professional competencies and desired skill-sets. Software engineering concepts should be taken up as early as the start of 2nd year. The main technical SE content should be covered during the third and forth years. Lab component should inculcate among students practical approach and practice of problem solving. SE practices must be accompanied all along the education program. The practice of software engineering is often in the context of non-software application domains. The graduates, therefore, should be provided an opportunity of reasonably broad exposure of at least one application area in the senior years. It will help them learn and demonstrate the application of software engineering practices. A capstone design project should provide the opportunity to bring together all the knowledge gained in a wide variety of courses to solve realistic problems in a team-based environment.

 

Duration of Programmes

Following to the Higher Education Law in Mongolia, the team defined a credit hour as 15 or 16 lecturing hours in a course offered in a semester. Also 2 to 3 lab hours shall be treated as one credit hour for a course. In normal circumstances a semester comprises 15 (16 for some schools) teaching weeks followed by the final examination. The BS Software Engineering Degree would be a 4-year program consisting of

8 semesters.

 

Admission Criteria

The eligibility criteria for Software Engineering admission was agreed to be intermediate with mathematics and English language qualifications, however, universities may define their own admission criteria.

 

Curriculum Objective

The objective of the curriculum is to prepare students for professional careers and graduate studies with a balance between computing theory and practical application of software engineering concepts, methodology and tools in the modern software development environments. Graduates of such programmes will be able to function as proficient software developers and effective team members. They will have grounding in communication, mathematics and science, and the cultural, historical, and social issues that influence and effect or relate to software development. They will have knowledge of and experience with software product engineering and engineering management and an understating of professional issues and practices. Graduates will be able to understand and assess their own software engineering capabilities and performance. The curriculum is designed to ensure breadth across allied disciplines and supporting subjects; and depth in most areas of software engineering body of knowledge. Various components have been included in the curriculum to ensure that the graduates will:

  • understand and be able to apply mathematics, physical science, computer science and related disciplines.
  • understand and be able to apply principles of software engineering practice and process, subject to realistic constraints.
  • be able to model, analyze, document and track system requirements.
  • be able to design, implement and maintain software systems.
  • be able to verify and validate the software systems.
  • have the awareness of current industry standards and practices.
  • be able to work in one or more application domains.
  • understand and apply principles of team process.
  • be able to understand and apply software project management skills: estimation, costing, planning, deployment and tracking of resources.
  • have strong communication skills.
  • be capable of independent learning.
  • understand professional responsibility and application of ethical principles.
  • have knowledge of economics, humanities and social sciences.

Curriculum Model

The curriculum is designed to systematically achieve the objectives set above for the programme. It has been structured to suit the needs of the students, the demands of the market, and the trends of the industry. During the first two years of the programme the students will be given an underpinning into computer science with special emphasis on software engineering — concepts, processes, and practices. The students will be exposed to the discipline in a systematic, gradual and sure way. Students will also be imparted the skills and techniques which derive essence from basic sciences like mathematics and physics. These areas will be taken care of in the supporting courses which have been allocated reasonably sufficient space. Students’ personal traits and personality polishing will be cared for by the general education courses including communication and writing skills. A host of slots for elective courses have also been proposed to give to the students an opportunity to move towards their areas of interest.

 

During the senior years the students will be given exposure to the more specialized aspects of the discipline. They will also be given training in at least one application domain which will help institutions to prepare human resource well suited to the needs of different segments of the job market. In order to inculcate among them a scientific attitude they will go through a substantial lab work, which will prepare them for the industry and for further research oriented studies. The final year design project will mark the crystallisation and culmination of the students’ four-year learning process.






Major Areas Core/

Required

Electives

Credit Hours

Computing

Foundation

 

37

15

76

(56%)

Software engineering

18

Software engineering (Application domain)

 

06

Supporting Studies (Math/Science)

12

9

21

(16%)

General education

15

18

33

(25%)

Total

82

(63%)

48

(37%)

130

 

Програм хангамжийн инженерийн бакалавр BS(SE)

Компьютерийн цөм                                                                                             37 кредит цаг

 

Required Software Engineering Courses(18/130)

#

Code

Pre-req

Course Title

Credit hours

Semester

12

SE

10

Software Construction

3 (3-0)

4

13

SE

10

Human Computer Interaction (An SE Approach)

3 (3-0)

4

14

SE

12

Software Design and Architecture

3 (3-0)

5

15

SE

10

Software Quality Assurance

3 (3-0)

6

16

SE

10

Software Requirements Engineering

3 (3-0)

6

17

SE

15,16

Software Project Management

3 (3-0)

7

 

 

Elective Computing & Software Engineering Courses (15/130) (The list below is by no means exhaustive. Institutions may add new course)

#

Code

Pre-req

Course Title

Credit hours

Semester

18

CS

-

Discrete Structures – II

3 (3-0)

2,3

19

CS

5

Automata Theory and Formal Languages

3 (3-0)

5, 6

20

SE

5 or 6

Formal Methods

3 (3-0)

6-7

21

SE

10

Software Development Technologies

3 (2-3)

6,7

22

SE

10

PSP and TSP

3 (3-0)

7-8

23

SE

10

Distributed Computing

3 (3-0)

7-8

24

CE

8

Microprocessor Interfacing

3 (3-0)

7

25

CS

4, 5

Analysis of Algorithms

3 (3-0)

6

26

CS

2

Artificial Intelligence

3 (3-0)

6

27

CE

8

Advance Computer Architecture

3 (3-0)

4, 5

28

CS

2, 3

Principles of Programming Languages

3 (3-0)

7

29

CS

41

Computer Graphics

3 (3-0)

6

30

CS

26

Artificial Neural Networks

3 (3-0)

8

31

CS

9

Advanced Database Management Systems

3 (3-0)

8

32

CS

8

Data Security and Encryption

3 (3-0)

6

33

CS

8

Real-time systems

3 (3-0)

6-7

34

CS

49

Bio-Informatics

3 (3-0)

5-8

35

CS

9

Data Warehousing and Data Mining

3 (3,0)

6, 7

 

 

Domain Specific Elective Courses (6/130)

In-depth treatment of one of the following SE Application Domains should be offered in the form of set of two to three courses of 3 credits each in the selected domain. The list below is by no means exhaustive. Institutions may add new domains. Each domain treatment should be organized as domain introduction, computing concept of the domains and the domain specific computing examples with general sprit of implementation using SE principles. Common domains may include banking, insurance, oil exploration; textile and garments; agriculture, medicine, defence, etc.

 

 

Domains

Topics /Component

Cr

 

1

IS

Enterprise

Systems

Engineering

ERP Systems, SCM Systems, CRM

Systems

6

5-8

2

NS

Net-Centric

Systems

Knowledge and skills in Web-based

Technologies Depth in networking, Depth in security

6

5-8

3

IS

Enterprise

Security

Architecture

Business issues related to security, Security weaknesses and risk analysis, Cryptography, cryptanalysis,

steganography, etc., Depth in networks

6

5-8

4

IS

Information

Systems and Data

Processing

Data warehousing, Depth in databases

Depth in business administration

6

5-8

5

IS

Financial and

E-commerce Systems

Accounting; Finance

Depth in security

6

5-8

6

CE

Fault Tolerant

and

Survivable

Systems

Knowledge and skills in

heterogeneous, distributed systems;

Depth in security, Intrusion detection

Failure analysis and recovery

6

5-8

7

CE

Safety Critical

Systems

Depth in formal methods, Proof of

correctness, etc. Knowledge of control systems

6

5-8

8

CE

Embedded &

Real time

Systems

Hardware for embedded systems

Languages and tools for development  Depth in timing issues; Hardware verification

6

5-8

9

BI

Bio-medical

Systems

Biology and related sciences

Related safety critical systems knowledge

6

5-8

10

SS

Scientific Systems

Depth in related sciences; Depth in statistics Visualization and graphics

6

5-8

11

TE

Telecommuni cation

Systems

Depth in signals, information theory, etc.

Telephony and telecommunication protocols

6

5-8

12

AS

Avionic & Vehicular Systems

Mechanical engineering concepts Related safety critical systems knowledge Related embedded and real-time

systems knowledge

6

5-8

13

IE

Industrial Process Systems

Control systems Industrial engineering and other relevant areas Related embedded and real-time

systems knowledge

6

5-8

14

ES

Multimedia, game, and entertainment Systems

Visualization, haptics, and graphics Depth in human computer interface design Depth in networks

6

5-8

15

WN

System for Small & mobile Platforms

Depth in human computer interfaces for small and mobile platforms, Wireless technology Related embedded and real-time

systems knowledge Related telecom systems knowledge

6

5-8

16

AI

Agent based Systems

Machine learning, Fuzzy logic Knowledge engineering

6

5-8










 

Computing Requirements-Supporting Sciences 12 Credit Hours (Refer to Computing part)

 

Elective Supporting Courses (9/130) (The list below is by no means exhaustive. Institutions may add new course)

 

5

MT

1

Multivariate Calculus

3 (3-0)

2

6

MT

1

Differential Equations

3 (3-0)

4-5

7

MT

3

Numerical and Symbolic Computing

3 (3-0)

5-6

8

MT

3

Stochastic Processes

3 (3-0)

6-7

9

Sc

-

Physics-II (Mechanics)

3(3-0)

2

10

Sc

-

Bio-Chemistry

3 (3-0)

4

11

Sc

-

Biology

3 (3-0)

4

12

EE

4

Digital Electronics

4 (3-3)

3-4

13

Sc

--

Software Engineering Economics

3(3,3)

3-4








 

 

Elective General Education Courses (18/130) (The list below is by no means exhaustive. Institutions may add new course)

60

SS

-

English Literature

3 (3-0)

5

61

SS

-

Economics

3 (3-0)

7

62

SS

-

Sociology

3 (3-0)

2-6

63

SS

-

Psychology

3 (3-0)

6

64

SS

-

International Relations

3 (3-0)

7

65

HU

-

Foreign Language (Arabic, French,

3 (3-0)

7-8

 

 

 

German, etc.)

 

 

66

MG

-

Information System Audit

3 (3-0)

7

67

MG

-

Principles of Management

3 (3-0)

4

68

MG

-

Human Resource Management

3 (3-0)

5

69

MG

-

Marketing

3 (3-0)

6-7

70

MG

-

Accounting and Finance

3 (3-0)

5-7

 

Software Engineering Courses (Required)

Course Name: Software Construction

Course Structure: Lectures: 3 / Labs: 3 Credit Hours: 4

Prerequisites: Data Structures

Objectives:

Upon completion of this course, students will have the ability to:

  • Apply a wide variety of software construction techniques and tools, includingstate-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

Sample labs and assignments:

- Use of software engineering tools to create designs

- Use of parser generators to generate languages

Reference Material:

Software Engineering by Roger S. Pressman.

Course Name: Human Computer Interaction (An SE Approach)

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Introduction to Software Construction

Objectives: Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centred design, and prototyping. Conceptual models and metaphors. Software design rationale. Design of windows, menus, and commands. Voice and natural language I/O. Response time and feedback. Colour, icons, and sound. Internationalization and localization. User interface architectures and APIs. Case studies and project.

Learning objectives:

  • Upon completion of this course, students will have the ability to:
  • Evaluate software user interfaces using heuristic evaluation and user observation techniques
  • Conduct simple formal experiments to evaluate usability hypotheses.
  • Apply user centred design and usability engineering principles as they design a wide variety of software user interfaces

Outline:

  • Background to human-computer interaction. Underpinnings from psychology and cognitive science
  • More background. Evaluation techniques: Heuristic evaluation
  • More evaluation techniques: Videotaped user testing; cognitive walkthroughs
  • Task analysis. User-centred design
  • Usability engineering processes; conducting experiments
  • Conceptual models and metaphors
  • Designing interfaces: Coding techniques using colour, fonts, sound, animation, etc.
  • Designing interfaces: Screen layout, response time, feedback, error messages, etc.
  • Designing interfaces for special devices. Use of voice I/O
  • Designing interfaces: Internationalization, help systems, etc. User interface software architectures
  • Expressing design rationale for user interface design

Sample labs and assignments:

- Evaluation of user interfaces using heuristic evaluation

- Evaluation of user interfaces using videotaped observation of users

- Paper prototyping of user interfaces, then discussing design options to arrive at a consensus design

- Writers-workshop for style critiquing of prototypes presented by others

- Implementation of a system with a significant user interface component

using a rapid prototyping environment

Resources:

HCI Models, Theories, and Frameworks: Toward a Multidisciplinary Science by John

Carroll.

Usability Engineering: Scenario-Based Development of Human Computer Interaction by

Mary Rosson, John Carroll, Mary Beth Rosson.

 

Course Name: Software Design and Architecture

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Introduction to Software 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

Outline:

  • In-depth study of design patterns, building on material learned previously.
  • Application of design patterns to several example applications
  • In-depth study of middleware architectures including COM, Corba, and .Net
  • Extensive case studies of real designs.
  • Basics of software metrics; measuring software qualities
  • Reengineering and reverse engineering techniques.

Sample labs and assignments:

- Building a significant project using one or more well known middleware

architectures.

Resources:

Software Architecture in Practice by Len Bass, Paul Clements, Rick Kazman

Evaluating Software Architectures by Paul Clements, Rick Kazman, Mark Klein

Course Name: Software Quality Assurance

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Introduction to Software Construction

Objectives: Quality: how to assure it and verify it, and the need for a culture of

quality. Avoidance of errors and other quality problems. Inspections and

reviews. Testing, verification and validation techniques. Process assurance vs.

Product assurance. Quality process standards. Product and process assurance.

Problem analysis and reporting. Statistical approaches to quality control.

Learning objectives:

  • Upon completion of this course, students will have the ability to:
  • Conduct effective and efficient inspections
  • 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
  • Assess a software process to evaluate how effective it is at promoting quality

Outline:

  • Introduction to software quality assurance
  • Inspections and reviews
  • Principles of software validation
  • Software verification
  • Software testing
  • Specification based test construction techniques
  • White-box and grey-box testing
  • Control flow oriented test construction techniques
  • Data flow oriented test construction techniques
  • Cleanroom approach to quality assurance
  • Software process certification

Sample labs and assignments:

  • Use of automated testing tools
  • Testing of a wide variety of software
  • Application of a wide variety of testing techniques
  • Inspecting of software in teams; comparison and analysis of results

Resources:

Software Testing in the Real World: Improving the Process by Kit, Edward

Course Name: Software Requirements Engineering

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Introduction to Software Construction

Objectives: Understand the role of requirements engineering within the software life cycle. Compare and contrast, and evaluate structured, objectoriented, data-oriented, and formal approaches to requirements modelling. Gather the requirements necessary to develop the specifications, given a “customer” who wants a software system to be developed. Develop an informal requirements specification, given a set of requirements. Model, prototype, and specify requirements for a software system.

Outline: Software life-cycle models; requirements modelling and analysis; Software requirements specification; Software requirements elicitation and analysis; Structured methods; object-oriented methods; formal methods in requirements (formal and executable specifications); requirements verification and validation; requirements elicitation (e.g., scripting, development of use cases and interface); software requirements metrics; prototyping user interfaces; customer acceptance of requirements.

Resources:

Davis, A. Software Requirements: Objects, Functions and States, Prentice Hall.

Dorfman, M. Thayer, R & Davis, A. Eds. Software Requirements Engineering, IEEE

–CS

Course Name: Software Project Management

Course Structure: Lectures:3 / Labs: 0 Credit Hours: 3

Prerequisites: Introduction to Software Development

Objectives: To develop ability to plan and manage software development projects successfully, maximizing the return from each stage of the software development life cycle.

Outline: Software development process and phases. Project Management processes and phases. Project initiating, planning, execution, control, monitoring, and closing. Identification of resource, scheduling, PERT, CPM, estimation, FPA, COCOMO. Managing people, resource management, project selection, budgeting, risk management, software processes and standards, process improvement framework.

Resources:

Walker Royce, Software Project Management - A Unified Framework.

Mike Cotterell and Bob Hughes, Software Project Management (Second

Edition), McGraw Hill, 1999.

Software Engineering Courses (Electives)

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.

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.

Z – Specification Language by Spiveny

 

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

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:

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: Design and Architecture of Large Software Systems

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Software Analysis and Design

Objectives: Modelling and design of flexible software at the architectural level. Basics of model-driven architecture. Architectural styles and patterns. Middleware and application frameworks. Configurations and configuration management. Product lines. Design using Commercial Off-The-Shelf (COTS) software.

Outline: Upon completion of this course, students will have the ability to:

  • Take requirements for simple systems and develop software architectures and high- level designs
  • Use configuration management tools effectively, and apply change management processes properly
  • Design simple distributed software
  • Design software using COTS components
  • Apply a wide variety of frameworks and architectures in designing a wide variety of software
  • Design and implement software using several different middleware technologies

Resources:

Development and Maintenance of Large Scale Software Systems By Anonio Pizzarello

 

 

Course Name: Distributed Computing (3)

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

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

Course Name: Software Development Technologies

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Software Analysis and Design

Objectives: Comparative study of different tools and technologies to be used in each phase of SDLC.

Outline: It includes CASE as well as other development tools and formalisms.

Resources: Various available URLS

Course Name: Software Testing

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Introduction to 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.

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:

Software Testing in the Real World: Improving the Process by Kit, Edward

Computing Courses (Elective)

Course Name: Discrete Structures

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: None

Objectives: Topics in this 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.

Reference Material:

Discrete Mathematical Structures by Rosen.

Discrete Mathematics by Richard Johnsonbaugh.

 

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.

Reference Material:

Introduction to Computer Theory, by Denial Cohen, John Wiley & Sons, Inc.

Introduction to Automata Theory, Languages and Computation, by J Hopcraft, D.

Ullman.

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.

Reference Material:

Introduction to Algorithms by Thomas H Carmen.

 

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.

Course Name: Computer Graphics

Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3

Prerequisites: Object Oriented Programming , Visual 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.

Reference Material: Computer Graphics by F.S. Hill.

Course Name: Distributed Database Systems

Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3

Prerequisites: Databases

Objectives: The student will learn the design, algorithms and techniques involved in distributed database system and their implementation.

Course Outline: Advanced data models. Conceptual Database design. Concurrency control techniques. Recovery techniques. Query processing and optimization. Integrity and security. Client-Server architecture. Distributed database systems. Current trends in database systems. Database machines.

Reference Material:

Distributed Databases by Ceri and Pelagatti.

Course Name: Visual Programming

Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3

Prerequisites: Data Structures, Data and Network Security

Objectives: To development applications using various tools and APIs in visual programming.

Course Outline: Introduction to Windows programming, Use of Windows API, MFC Class hierarchy, Class Wizard, Application Wizard and Application Studio, Graphics Device Interface, Menus, document view architecture, Multiple Views, files and archiving mechanisms, converting Windows programmes to MFC, Sub-classing controls.

Reference Material:

MFC from the Ground Up.

Windows 98 API Programming.

VC++ A complete References.

Course Name: System Programming

Course Structure: Lectures: 2 / Labs: 3 Credit Hours: 3

Prerequisites: Operating Systems

Objectives: Demonstrate mastery of the internal operation of Unix system software including assemblers, loaders, macro-processors, command language interpreters, inter-process communication.

Course Outline: System Programming overview: Application Vs System Programming, System Software, Operating system, Device Drivers, OS Calls. Window System Programming for Intel386 Architecture: 16-bit Vs 32-bit, Programming, 32-bit Flat memory model, Windows Architecture. Virtual Machine (VM) Basics, System Virtual Machine, Portable Executable Format, Ring O Computer, Linear Executable format, Virtual Device Driver (V + D), New Executable format, Module Management, COFF obj format 16-bit. (Unix) other 32-bit O.S Programming for I 386; Unix Binaryble format (ELF), Dynamic shared objects, Unix Kernel Programming (Ring O), Unix Device Architecture (Character & Block Devices), Device Driver Development, Enhancing Unix Kernel.

Reference Material:

The UNIX Programming Environment by B. Kernighan & R. Pike.

System Software by Leland L. Beck.

 

Course Name: Web Engineering

Course Structure: Lectures: Labs: (2-3) Credit Hours: 3

Prerequisites: Data Warehousing

Objectives: Design and implementation of web based applications.

Course Outline: Overview of Protocols: TCP/IP, HTTP, Overview of 3-tier Architecture, Web Based Applications Architecture. Developing Front End Applications: Front End Development Tools, HTML, DHTML, Scripting (Java Script, Jscript, VB script), Java Applets, ActiveX.

Reference Material:

Web enabled Commercial Application Development Using… HTML, DHTML,

JavaScript, Perl, CGI by Ivan Bayross.

 

 

BS (SE) − Supporting Courses (Elective)

Course Name: Multivariable Calculus

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Calculus

Course Outline: Functions of Several Variables and Partial Differentiation. Multiple Integrals, Line and Surface Integrals. Green’s and Stoke’s Theorem. Fourier Series: periodic functions, Functions of any period P-2L, Even & odd functions, Half Range expansions, Fourier Transform. Laplace Transform, ZTransform, Difference Equations

Reference Material: Calculus and Analytical Geometry by Swokowski, Olinick and Pence.

Course Name: Differential Equations

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: Multivariable Calculus

Course Outline: Ordinary Differential Equations of the First Order: Geometrical Considerations, Isoclines, Separable Equations, Equations Reducible to Separable Form, Exact Differential Equations, Integrating Factors, Linear First-Order Differential Equations, Variation of Parameters. Ordinary Linear Differential Equations; Homogeneous Linear Equations of the Second Order, Homogeneous Second-Order Equations with Constant Coefficients, General Solution, Real Roots, Complex Roots, Double Root of the Characteristic Equation, Differential Operators, Cauchy Equation, Homogeneous Linear Equations of Arbitrary Order, Homogeneous Linear Equations of Arbitrary Order with Constant Coefficients, Non-homogeneous Linear Equations. Modelling of Electrical Circuits. Systems of Differential Equations. Series Solutions of Differential Equations. Partial Differential Equations: Method of Separation of variables, Wave, Heat & Laplace equations and their solutions by Fourier series method.

Reference Material:

Advanced Engineering Mathematics by Kreyzig.

Course Name: Numerical Computing

Course Structure: Lectures: 3/ Labs: 0 Credit Hours: 3

Prerequisites: Calculus and Analytical Geometry

Objectives: On completion of this unit, students will be able to implement numerical solutions to problems using computer-based techniques.

Course Outline: Mathematical Preliminaries, Solution of Equations in one variable, Interpolation and Polynomial Approximation, Numerical Differentiation and Integration, Initial Value Problems for Ordinary Differential Equations, Direct Methods for Solving Linear Systems, Iterative Techniques in Matrix Algebra, Solution of non-linear equations. Approximation Theory. Eigenvalues and Eigenvector computation. Optimization procedures.

Reference Material:

Elements of Numerical Analysis by Dr. Faiz, M. Afzal.

107

Course Name: Physics (Mechanics)

Course Structure: Lectures: 3 / Labs: 0 Credit Hours: 3

Prerequisites: None

Course Outline: Review of Motion: position, velocity, and acceleration vectors. Applications of laws of motion: Projectile Motion, motion in resistive media, rocket motion, motion of charged particles in electrical and magnetic fields, Rotational motion: constant angular acceleration, uniform circular motion, torque, linear and angular momentum and their conservation, System of Particles: centre of mass, two-body collisions in two-dimensions, moment of inertia of objects, Wave Motion: mathematical concepts of simple and damped harmonic motion, analytical treatments of superposition of waves, concepts and applications of diffraction and polarization of light and sound waves. Concepts of thermodynamics

Reference Material:

University Physics by Freedman and Young (10 th and higher editions).

College Physics by Resnick, Halliday and Krane (6th and higher edition).

Course Name: Basic Electronics

Course Structure: Lectures: 3 Labs: 3 Credit Hours: 4(3+3)

Prerequisites: Electric Circuits

Objectives: Introduction of Electronics

Course Outline: Fundamentals of Semiconductor physics: Band theory, semiconductors (intrinsic and extrinsic), pn junction, pn junctions as a rectifier, clipper and clamper circuits, zener diode and voltage regulator, LED and LCD etc., Transistors: Bipolar Junction transistors, BJT biasing circuits, Q-point, BJT as a switch, BJT amplifiers, classes of amplifiers, power amplifiers, Metal oxide transistors, nMOS, pMOS and CMOS inverters circuits. Introduction to A/D and D/A conversion circuits.

Reference Material:

University Physics by Freedman and Young (10 th and higher editions).

College Physics by Resnick, Halliday and Krane (6th and higher edition).

Сэтгэгдэл (0)

Сэтгэгдлээ бичнэ үү

жижиг | том

busy