Guidance for BSc(Eng) valued computer engineering academic qualification in Sri Lanka


To pass out as a BSc(Eng) degree in computer engineering, you have to cover following coursers.

Logic Networks

01           Introduction to Digital Logic:

Digital signals, Digital Logic, Computers and Digital Systems , Purpose and role of digital logic in computer engineering

02           Number Systems and Digital logic:

Binary number system, , Number Base Conversions,  Representation of Negative Numbers, Binary arithmetic, Levels of Description of Logic Networks, Basic logic gates, Positive and negative logic

03           Combinational logic circuits:

Boolean algebra, Boolean laws and theorems, Sum-of-products and Product-of-sums methods, Simplifications of Boolean expressions, Truth tables, Karnaugh Maps, Quine Mc-clusky method, Don’t care combinations, Elimination of timing Hazards

04           Modular design of combinational circuits:

Introduction of Levels of Integration, Multiplexers, De-multiplexers, Encoders, Decoders, read only memory (ROM); programmable logic arrays

05           Sequential logic circuits and Memory Elements:

SR flip flops, Gated, edge triggered and Master-slave operation, JK flip flop, D flip-flop, T flip-flop, Registers, Serial/Parallel conversion, Codes-Error correction and Detection

06           Design of Synchronous Seq. circuits:

Analysis of Synchronous circuits, Mealy -Moore Networks and Models, State diagrams and state tables State minimization, State assignment, Assignment Rules, Next state and output equation realization, Design of Counters, ROM utilization of Sequential circuits.

07           Analysis and Design of Asynchronous Seq. circuits:

Analysis of Asynchronous circuits, Design Procedure, Flow tables, Reduction of state and flow tables, Race free State assignment, Hazards in asynchronous circuits

Computer Programming

01          Programming Concepts:

Fundamental concepts and techniques, Problem solving, Structured programming, Algorithms, Pseudo-codes

02           Introduction to Programming:

Programming languages, basic syntax, compilers & interpreters

03           Storing and Naming Data:

Variables/Identifiers, Basic data types, Literals, Type conversions

04           Operators:

Operator action, Arithmetic, relational and logical operators

05           Controlling Program Flow:

Decisions constructs, Repetition in programming – loop constructs, Data inputand output, escape characters

06           Introducing Arrays:

Creating arrays and accessing array elements, Size of arrays, Multi-dimensional arrays

07           Program Building Blocks:

Methods/Functions, The elements of a method, Method calls and returns, Arguments and parameters, Passing by value and by reference, Problem solving with Divide-and-Conquer (recursion)

08           Introduction to Object Oriented Programming:

Classes and Objects, OO fundamentals, Encapsulation, Inheritance, Polymorphism and abstract classes

09           I/O Programming:

Obtaining and transmitting data, IO packages, Standard streams

10           Error Handling:

Program errors, Error types, Exceptions, Exception handling

11           Containers – Grow-able Data Structures:

Operations on collections of data. Characteristics of differing implementations.

Computer Architecture

01          Overview:

Difference between Computer Architecture and Computer Organization; Role of computer architecture in Computer Engineering

02           Fundamentals of Computer Architecture:

Von Neumann machine organization, Instruction types and addressing modes, Subroutine call and return mechanisms, Instruction decoding and execution; Registers and register files; I/O techniques and interrupts

03           Computer Arithmetic:

Integer arithmetic: Multiplication, Division, Significance of range, precision and accuracy; Floating-point arithmetic: Standard methods of representation, Addition, Subtraction, Multiplication, Division; Conversion between integer and floating-point numbers

04           CPU Organization:

Implementation of the von Neumann machine; Control and data paths, single vs. Multiple bus datapaths; Instruction set architecture, Implementing instructions; Register transfer notation, Conditional and unconditional transfers, ALU control; Control unit: hardwired vs. Micro-programmed realizations; Arithmetic units for multiplication and division;

05           Pipelining:

Introduction to instruction level parallelism, Overview of pipelining, Pipelined data paths and control, Pipeline hazards: structural, data and control hazards, forwarding, stalls; Reducing the effect of hazards

06           Memory hierarchies:

Memory systems hierarchy, Electronic, magnetic and optical technologies; Main memory organization, latency, cycle-time, bandwidth and interleaving; Cache memories: Address mapping, line size, replacement and write-back policies; Virtual memory, page faults, TLBs, protection

07           Interfacing and communication:

I/O fundamentals: Types and characteristics of I/O devices, handshaking, buffering; Buses: types of buses, synchronous and asynchronous buses, bus masters and slaves, bus arbitration, bus standards; programmed I/O, interrupt driven I/O, Interrupt structures: vectored and prioritized, interrupt overhead; Direct memory access

08           Performance issues:

Metrics for computer performance, clock rate, MIPS, Cycles per instruction, benchmarks, limitations of performance metrics

09           Trends in computer architecture:


Data structures and Algorithms

01          Introduction

Programs = Algorithms + Data Structures, Abstract Data Types (ADT)

02           Correctness and Complexity analysis

Asymptotic Notations and Standard Efficiency Classes, Complexity of recursive algorithms, Time-space tradeoffs, Empirical measurements of performance, Using preconditions, post-conditions and invariants to verify correctness

03           Simple Search & Sort

Sequential and binary search algorithms, Quadratic time sorting algorithms (Selection, Insertion) as instances of Brute-force strategy

04           Efficient Sorting

Review of recursion. Quick-sort, merge-sort as instances of Divide-and-conquer strategy, Radix / bin sorting

05           Basic Data Structures:

Linked lists, Stacks and queues , Priority queues (Heaps), Heap-sort

06           Hashing and Sets

Hash functions and codes, Collision handling, The Set ADT, Implementing Sets using hash tables

07           Trees

The Tree ADT. Binary search trees, Tree traversals, Tries and B-Trees.

08           Graph Algorithms

Representations of graphs (adjacency list, adjacency matrix), Depth and breadth-first traversals, The Greedy algorithmic strategy: Dijkstra’s shortest path, Dynamic programming: Floyd’s Transitive closure, Prim’s minimum spanning tree

Computer and Data Networks

01          Principles of  networking

Purpose and role of networks in computer engineering, Network architectures and protocols, Types of networks  LAN, WAN, MAN, and wireless, Contrasts between network architectures and protocols

02           Networking models and protocols

Layered network architecture; OSI model, TCP/IP model, Hybrid models

03           Physical Layer

Characteristics of media, Copper, Optical Fiber, wireless media, dialup networking, leased lines, Comparison of media, Circuit switching Vs. Packet switching, ISDN, ATM, ADSL, Delay models

04           Data Link layer

Services & Functions, connection-oriented and connectionless services, Framing, Error Detection and Control, Flow Control, PPP Protocol

05           Medium Access Sub-layer:

Channel allocation, Aloha, Slotted Aloha, CSMA, CSMA/CD, Ethernet, IEEE 802.3 Standards

06           Network Layer

Services and Functions, connection-oriented and connectionless services, Routing, Distance vector and Link-state routing, IP packet format, ICMP, ARP and RARP protocols

07           Transport Layer

Services & Functions, TCP and UDP protocols, , TCP message format, Congestion control, Sockets

08           Application Layer

Introduction to services such as email, DNS and Web services  related protocols

Database Systems

01          Introduction to Database Systems:

Information models and Systems, database system evolution, file based systems, DBMS approach, Database environment and components, DBMS functions, DBMS architecture, data independence

02           Data Modelling:

Motivation, roll in system development, levels of abstraction and practice, Conceptual models; ER and UML, Logical models; Relational and OO Models

03           RDBMS Concepts:

Relational algebra and relational calculus, Relational integrity, Normalization, object oriented extensions

04           Database Query Languages:

4GL environments, SQL; DDL, DML and DCL, query optimization; rule based and cost based approaches, embedded SQL

05           Transaction Processing:

Transactions, concurrency control, serialization, failure and recovery

06           Distributed Databases:

Data fragmentation, replication and allocation, distributed query processing, distributed transaction model, concurrency control, homogeneous and heterogeneous environments

07           Physical Database Design:

Storage and file structures, indexed, hashed and signature files, B-trees, sparse and dense indexes, variable length records, database tuning

Operating Systems

01          Overview of Operating Systems

Role and purpose of OS, History of OS development –batch to time-sharing to network-centric evolution, Review of computer organisation: I/O, Interrupts, DMA, Storage hierarchy.

02           Design Principles

Functionality of a typical OS, Design issues (efficiency, robustness, flexibility, portability, security, compatibility). Abstractions: Processes and files. Multiprogramming: dispatching and context switch, User/system state and protection, System calls and APIs, Kernel structuring models (monolithic, layered, modular, micro-kernel), Policy/mechanism separation.

03           Scheduling and Dispatching

States and state diagrams, Structures (ready list, process control blocks, and so forth), Pre-emptive and non-pre-emptive scheduling, Schedulers and policies, Multiprocessor & real-time issues.

04           Threads

Threads vs. processes, User vs. kernel threads, Mapping user threads to kernel threads: many-to-one, one-to-one, many-to-many, Threading APIs.

05           Synchronization & Deadlock

Inter-process communication: shared memory vs. message passing, The “mutual exclusion” problem and some solutions, Synchronization mechanisms (semaphores, monitors, condition variables), Producer-consumer and other classical IPC problems, Deadlock: causes and conditions, avoidance.

06           Memory management

Contiguous allocation, Paging vs. segmentation, Placement and replacement policies, Hardware support for memory management, Working sets and thrashing.

07           File Systems

Files: data, metadata, File operations, access methods, organization & buffering, Directories: contents and structure, File systems: partitioning, mount/un-mount, virtual file systems, Implementation techniques.

Computer Interfacing

01          Introduction to PC and Microprocessor based interfacing

03           Hardware Components for Interfacing

Counters, Interval timers, Real time clocks, DAC, ADC, flash memory devices, non volatile memory, Digital I/O, Programmable Peripheral Interfaces (PPI)

04           Parallel Interfacing

Parallel port, Enhanced Parallel port, GPIB

05           Serial Interfacing

Asynchronous and Synchronous serial data transfer, Universal Asynchronous Receiver Transmitter (UART)

Serial Interfacing Standards; RS232, RS422, RS485, USB, I2C, Ethernet

06           Interfacing via PC/AT, PCI, ISA buses

Design issues, frequency and noise considerations

07           Data Acquisition and Control System

I/O Cards

08           Introduction to Device Drivers

09           Basic I/O controllers Keyboard, Mouse, Video control

Software Engineering

01          Introduction:

Challenges of engineering software

02           Software Processes:

Software life-cycle and process models. Waterfall vs. evolutionary models. The SEI capability maturity model

03           The Unified Process and The UML:

The UP as an example of incremental software development. Basic UML diagram types and notation. Object-oriented analysis and design with the UP and the UML

04           Software Requirements Specification:

System Vision Statement and Business Case. Writing functional requirements using Use Cases. Supplementary Specification for documenting quality attributes

05           Transitioning from Requirements to Design:

Building a domain model. Object-oriented analysis patterns

06           Object-Oriented Design:

Low coupling and high cohesion with Responsibility-driven design. Modelling object interactions using sequence/collaboration diagrams and CRC cards. Common design patters: Observer, Decorator, Factory

07           Software Testing:

Design-by-contract. Specifying correct behaviour using Pre-conditions, Post-conditions and Invariants. Using automated unit testing frameworks ( e.g. JUnit)

08           Project Management:

Team organization and decision-making, Roles and responsibilities in a software team, Project scheduling and tracking, Software measurement and estimation techniques, Risk analysis, Software quality assurance, Project management tools

09           Selected Topics:

Component frameworks: EJB/.NET, Agile languages for rapid prototyping: Python/Ruby, Configuration management and automated build integration, Model-View-Controller Web frameworks and Representational State Transfer, Formal methods: Introduction to Algebraic Specification and Model Checking

Computer and Network Security

01              Introduction to the subject, The need and the purpose of security, Difference of being obscure and being secure

02           The meaning of Cryptography, basic operations, terminology, what cryptography offers other than security – authentication, integrity, and non-repudiation, cryptanalysis

03           Transposition ciphers, Cryptanalysis of transposition ciphers

04           The concept of secret key cryptography, block and stream ciphers, security of symmetric key cryptosystems, study of Data Encryption Standard algorithm, Linear Feedback Shift Registers as stream ciphers, algorithm types and modes, design of a new algorithm combining block ciphers and stream ciphers

05           Introduction to mathematic used in asymmetric key cryptography

06           The concept of asymmetric key cryptography, Knapsack algorithms, RSA, elliptic curve algorithms, security, Digital Signatures

07           The function of protocols, authentication protocols, secret sharing protocols, Kerberos, wide mouthed frog protocol

08           Securing Web-based Systems, Wireless Security, Access Control & Trusted Computing, Biometrics, Firewalls, Secure Protocols

09           Laws pertaining to Electronic Information, Penetration Testing and Ethical Hacking, User Privacy


reference :