Вы находитесь на странице: 1из 3

Syllabus of Lecturer Computer Science

Programming and Data Structures


 Programming in C
 Recursion
 Arrays, stacks, queues, linked lists, trees, binary search trees, binary heaps,
graphs
Note included all type of trees ds e.g. like AVL, BST, Red Black Tree

And their complexities

Computer Organization and Architecture

Machine instructions and addressing modes. ALU, data‐path and control unit. Instruction
pipelining. Memory hierarchy: cache, main memory and secondary storage; I/O interface
(interrupt and DMA mode

 Algorithms

Searching, sorting, hashing. Asymptotic worst case time and space complexity. Algorithm
design techniques: greedy, dynamic programming and divide‐and‐conquer. Graph search,
minimum spanning trees, shortest paths.

Theory of Computation

Regular expressions and finite automata. Context-free grammars and push-down


automata. Regular and contex-free languages, pumping lemma. Turing machines and
undecidability.

Operating System

Processes, threads, inter‐process communication, concurrency and synchronization.


Deadlock. CPU scheduling. Memory management and virtual memory. File systems.

 Databases

ER‐model. Relational model: relational algebra, tuple calculus, SQL. Integrity constraints,
normal forms. File organization, indexing (e.g., B and B+ trees). Transactions and
concurrency control

Computer Networks

Concept of layering. LAN technologies (Ethernet). Flow and error control techniques,
switching. IPv4/IPv6, routers and routing algorithms (distance vector, link state). TCP/UDP
and sockets, congestion control. Application layer protocols (DNS, SMTP, POP, FTP, HTTP).
Basics of Wi-Fi. Network security: authentication, basics of public key and private key
cryptography, digital signatures and certificates, firewalls.

Software Engineering (Basic Concept)

Software Process

Process Concept

Process Implementation

Project Planning and Tracking

Software configuration management

Evolution Process and Activities

Requirement Analysis and Specification

Requirement fundamentals

Eliciting Requirements

Requirement validation

Object Orientation Programing

1 Genealogy of object oriented languages: structured programming, procedural


programming 1.2 Abstract data types, encapsulation, 1.3 Typed and untyped languages 1.4
Coupling and cohesion

Abstraction. Encapsulation. Data Hiding/Information Hiding. Abstract Data Types (ADTs).


Classes and Objects (Instances). 2.2 Inheritance (Single, Multilevel, Multiple, Hierarchical,
Hybrid). Super-classes (base classes) and sub-classes (derived classes). Specialisation vs.
Generalisation. Abstract and Concrete Classes and Methods. Inheritance for Specialisation
vs. Specification. Inter-class Relationships (isa, has-a, part-of, association, aggregation,
composition). 2.3 Class members: fields (data members, variables, attributes), and methods
(member functions, procedures). Messages. Object State. Constructors (parameterised,
copy, conversion, default) and destructors. Accessors (getters) and Mutators (setters).
Object and member scope. 2.4 Ad-hoc and Parametric Polymorphism. Substitutability
principle.

Unified Modelling Language (UML). Use case diagrams: actors, system boundary, <> and
<>. 3.2 Scenarios. Class diagrams: associations, aggregation, dependency, and inheritance.
Object interaction diagrams, object state transition diagrams. 3.3 Object constraint
language (OCL): invariants, preconditions, postconditions. 3.4 Design patterns. Pattern
documentation: motivation, prerequisites, structure, participants and consequences.
Examples of patterns: Adapter, Decorator, Iterator, Observer, Singleton

M.Nadeem

Master of computer science .

Вам также может понравиться