Internal data representation; Abstract data types; elementary data structures: arrays, linked lists, stacks, queues, trees and graphs; basic data structures operations: traversal, insertion, deletion, searching, merging, sorting, tree; tree traversal and graph traversal; recursion and recursive algorithm, pattern matching; advanced data structures: heaps, Fibonacci heaps; search trees: binary search trees, AVL trees, multi-way search trees, sorting, hashing.
Course Catalogue
Based on Theory course.
C++ as an object oriented language. Introduction to C+ + , Comparison of C and C+ + , Declaration and constants, expression and statements, data type:;, operator, Functions, Objects: Properties, events, methods, messages, data members, member functions, constructor & distracter functions, friend functions. Classes: Base, Derived and virtual class, inheritance, encapsulation. Operator and function, over-loading (Run time and compile time polymorphism) Template, streams, files, C-M- Library functions; Introduction to JAVA programming language.
Study of architectural concepts in computer systems. Computer arithmetic and arithmetic logic unit design. Memories, memory hierarchies and dynamic address translation. CPU characteristics, performance factors. Control unit design: hardware and micro-program, microprogramming. Interrupt mechanism. DMA. Pipelining. The course includes lab works based on theory taught.
Introduction evolution goals and components of OS: types of OS. Process management, process states and state transition, process control blocks, job and process scheduling, scheduling levels, objective and criteria. CPU scheduling algorithms, process coordination, critical section problems, semaphores, language constructs classical problems of process coordination. Interposes communication, message and mailbox etc..
I/O programming: Device management techniques. Interrupt processing. Parallel processing. Deadlock, deadlock prevention, avoidance detection and recovery. Memory management, memory avocation schemes, paging and segmentation , virtual memory, page replacement strategies, working sets, demand paging. Secondary storage management, disk-scheduling algorithms. File management: file system functions, Hie organization, logical and physical file maps, tree structured file systems, space allocation, file catalogs, file access control mechanism, operating systems security. Time-sharing and virtual machines. Main Features of Windows NT, UNIX, VMS and VSE.
Systems programming concepts: general machine structures, machine and assembly language, concepts of translation oriented system programs; Assemblers: design procedure of assembler; Table processing: searching and sorting; macro processors, preprocessors; Compilers: features of high level languages data types and data structures, storage allocation, functional modularity, programming language grammar; Loaders ft Linkers; Loaders: Loader scheme; Linkers. Design of linkage- editor.
Mathematical logic: propositional calculus, predicate calculus. Permutations, Combinations and Discrete Probability. Set theory: sets, relations, partial ordered sets, functions. Graph theory: graphs, paths, trees. Recurrence Relations and Recursive Algorithms. Algebraic structures: binary operations, semi groups, groups, permutation groups, rings and fields, lattices.
Data structures: Concept of data types, abstract data types
Arrays: Maximization ordered lists, sparse matrix representation of arrays.
Stacks, Queues and Recursion: Fundamentals, Different types of Stack and Queues, Recursion: Direct and indirect recursion; simulation of recursion; depth of recursion; removal of recursion;
Linked lists: Different types of Linked list and their operations.
Trees: Basic terminology, binary trees, binary tree representation, binary tree traversal; Extended binary trees: 2-trees, internal and external path lengths, Huffman codes; algorithm; threaded binary trees, binary tree representation of trees; Application of Trees: Set representation, decision trees, game trees; counting binary trees.
Graphs: Introduction, definitions and terminology, graph representations, traversals, connected components and spanning trees, shortest path and transitive closure, activity networks, topological sort and critical path, enumerating nil path.
Internal Sorting: Searching, bubble sort, shell sort, insertion sort, selection sort, quick sort, heap sort, 2-way merge sort. How fast can we sort? Sorting on several keys, practical considerations for internal sorting.
External Sorting: General idea: Sorting with disks: K-way merging, buffer handling (or parallel operation, run generation, Sorting with Tapes: Balanced merge sorts, polyphase merge, sorting with fewer than 3 tapes.
Symbol Tables: Static tree tables, dynamic tree tables; Hash Tables: Hashing functions, overflow handling, theoretical evaluation of overflow techniques.
Files: File, queries and sequential organizations; Indexing Technique: Cylinder-surface indexing, hashed indexes, tree indexing- B- trees; Tree indexing.
Course conduction on Digital logic, Boolean algebra, De-Morgan’s law, logic gates and their truth tables, canonical forms, Combinational logic circuits, minimization techniques, Arithmetic and data handling logic circuits, decoders and encoders, Multiplexers and demultiplexers, Combinational Circuit design, Flip-flops, race around problems, Counters and their applications, PLA design, Synchronous and asynchronous logic design: state diagram, Mealy and Moore machines, State minimizations and assignments, Pulse mode logic, Fundamental mode design.
Based on Theory course.
Object-Oriented Fundamentals, Encapsulation, Polymorphism, Inheritance, Class, Object, Java Language Introduction, Variable Types and operators, Casting, Arrays, Introducing classes, Adding methods to class, constructor, String Handling, Garbage collection, Inheritance, Inner Class, Abstract Classes, Interfaces and Packages, Exception Handling, Java Input / Output, Multithreaded Programming and Synchronization, Applet, Event Handling, Networking with Java, Introducing the Swing, Utility Classes, Java Generics.