FOURTH SEMESTER (DETAILED SYLLABUS)
BCS401H Operating system
Course Outcome ( CO) Bloom’s Knowledge Level (KL)
At the end of course , the student will be able to understand
CO 1 Understand the structure and functions of OS K1, K2
CO 2 Learn about Processes, Threads and Scheduling algorithms. K1, K2
CO 3 Understand the principles of concurrency and Deadlocks K2
CO 4 Learn various memory management scheme K2
CO 5 Study I/O management and File systems. K2,K4
DETAILED SYLLABUS 3-0-0
Unit Topic Proposed
Lecture
Introduction : Operating system and functions, Classification of Operating systems- Batch,
Interactive, Time sharing, Real Time System, Multiprocessor Systems, Multiuser Systems,
I 08
Multiprocess Systems, Multithreaded Systems, Operating System Structure- Layered structure,
System Components, Operating System services, Reentrant Kernels, Monolithic and Microkernel
Systems.
Concurrent Processes: Process Concept, Principle of Concurrency, Producer / Consumer Problem,
II Mutual Exclusion, Critical Section Problem, Dekker’s solution, Peterson’s solution, Semaphores, 08
Test and Set operation; Classical Problem in Concurrency- Dining Philosopher Problem, Sleeping
Barber Problem; Inter Process Communication models and Schemes, Process generation.
CPU Scheduling: Scheduling Concepts, Performance Criteria, Process States, Process Transition
Diagram, Schedulers, Process Control Block (PCB), Process address space, Process identification
III
information, Threads and their management, Scheduling Algorithms, Multiprocessor Scheduling. 08
Deadlock: System model, Deadlock characterization, Prevention, Avoidance and detection,
Recovery from deadlock.
Memory Management: Basic bare machine, Resident monitor, Multiprogramming with fixed
IV partitions, Multiprogramming with variable partitions, Protection schemes, Paging, Segmentation, 08
Paged segmentation, Virtual memory concepts, Demand paging, Performance of demand paging,
Page replacement algorithms, Thrashing, Cache memory organization, Locality of reference.
I/O Management and Disk Scheduling: I/O devices, and I/O subsystems, I/O buffering, Disk
V storage and disk scheduling, RAID. File System: File concept, File organization and access 08
mechanism, File directories, and File sharing, File system implementation issues, File system
protection and security.
Text books:
1. Silberschatz, Galvin and Gagne, “Operating Systems Concepts”, Wiley
2. Sibsankar Halder and Alex A Aravind, “Operating Systems”, Pearson Education
3. Harvey M Dietel, “ An Introduction to Operating System”, Pearson Education
4. D M Dhamdhere, “Operating Systems : A Concept based Approach”, 2nd Edition,
BCS402H Theory of Automata and Formal Languages
Course Outcome ( CO) Bloom’s Knowledge Level (KL)
At the end of course , the student will be able to understand
Analyse and design finite automata, pushdown automata, Turing machines, formal languages,
CO 1 K4, K6
and grammars
CO 2 Analyse and design, Turing machines, formal languages, and grammars K K
4, 6
Demonstrate the understanding of key notions, such as algorithm, computability, decidability,
CO 3 K1, K5
and complexity through problem solving
CO 4 Prove the basic results of the Theory of Computation. K2,K3
CO 5 State and explain the relevance of the Church-Turing thesis. K1, K5
DETAILED SYLLABUS 3-1-0
Unit Topic Proposed
Lecture
Basic Concepts and Automata Theory: Introduction to Theory of Computation- Automata,
Computability and Complexity, Alphabet, Symbol, String, Formal Languages, Deterministic Finite
Automaton (DFA)- Definition, Representation, Acceptability of a String and Language, Non
I 08
Deterministic Finite Automaton (NFA), Equivalence of DFA and NFA, NFA with ε-Transition,
Equivalence of NFA’s with and without ε-Transition, Finite Automata with output- Moore
Machine, Mealy Machine, Equivalence of Moore and Mealy Machine, Minimization of Finite
Automata.
Regular Expressions and Languages: Regular Expressions, Transition Graph, Kleen’s Theorem,
II Finite Automata and Regular Expression- Arden’s theorem, Algebraic Method Using Arden’s
Theorem, Regular and Non-Regular Languages- Closure properties of Regular Languages, 08
Pigeonhole Principle, Pumping Lemma, Application of Pumping Lemma, Decidability- Decision
properties, Finite Automata and Regular Languages
Regular and Non-Regular Grammars: Context Free Grammar(CFG)-Definition, Derivations,
Languages, Derivation Trees and Ambiguity, Regular Grammars-Right Linear and Left Linear
III grammars, Conversion of FA into CFG and Regular grammar into FA, Simplification of CFG, Normal 08
Forms- Chomsky Normal Form(CNF), Greibach Normal Form (GNF), Chomsky Hierarchy,
Programming problems based on the properties of CFGs.
Push Down Automata and Properties of Context Free Languages: Nondeterministic Pushdown
Automata (NPDA)- Definition, Moves, A Language Accepted by NPDA, Deterministic Pushdown
IV Automata(DPDA) and Deterministic Context free Languages(DCFL), Pushdown Automata for 08
Context Free Languages, Context Free grammars for Pushdown Automata, Two stack Pushdown
Automata, Pumping Lemma for CFL, Closure properties of CFL, Decision Problems of CFL,
Programming problems based on the properties of CFLs.
Turing Machines and Recursive Function Theory : Basic Turing Machine Model, Representation of
V Turing Machines, Language Acceptability of Turing Machines, Techniques for Turing Machine
Construction, Modifications of Turing Machine, Turing Machine as Computer of Integer Functions, 08
Universal Turing machine, Linear Bounded Automata, Church’s Thesis, Recursive and Recursively
Enumerable language, Halting Problem, Post’s Correspondance Problem, Introduction to
Recursive Function Theory.
Text books:
1. Introduction to Automata theory, Languages and Computation, [Link], [Link], and Ullman. 2nd
edition, Pearson Education Asia
2. Introduction to languages and the theory of computation, J Martin, 3rd Edition, Tata McGraw Hill
3. Elements and Theory of Computation, C Papadimitrou and C. L. Lewis, PHI
4. Mathematical Foundation of Computer Science, [Link], New Age Internationa
BCS403H Object Oriented Programming with Java
Course Outcome ( CO) Bloom’s Knowledge Level (KL)
At the end of course , the student will be able to understand
CO 1
Develop the object-oriented programming concepts using Java K3, K4
CO 2
Implement exception handling, file handling, and multi-threading in Java K2,K4
CO 3
Apply new java features to build java programs. K3
CO 4
Analyse java programs with Collection Framework K4
Test web and RESTful Web Services with Spring Boot using Spring Framework
CO 5 concepts K5
DETAILED SYLLABUS 3-1-0
Unit Topic Proposed
Lecture
Introduction: Why Java, History of Java, JVM, JRE, Java Environment, Java Source File Structure,
and Compilation. Fundamental,
Programming Structures in Java: Defining Classes in Java, Constructors, Methods, Access
Specifies, Static Members, Final Members, Comments, Data types, Variables, Operators, Control
Flow, Arrays & String.
I 08
Object Oriented Programming: Class, Object, Inheritance Super Class, Sub Class, Overriding,
Overloading, Encapsulation, Polymorphism, Abstraction, Interfaces, and Abstract Class.
Packages: Defining Package, CLASSPATH Setting for Packages, Making JAR Files for Library
Packages, Import and Static Import Naming Convention For Packagesprocessor evolution and
types, microprocessor architecture and operation of its components, addressing modes,
interrupts, data transfer schemes, instruction and data flow, timer and timing diagram, Interfacing
devices.
Exception Handling: The Idea behind Exception, Exceptions & Errors, Types of Exception, Control
Flow in Exceptions, JVM Reaction to Exceptions, Use of try, catch, finally, throw, throws in
Exception Handling, In-built and User Defined Exceptions, Checked and Un-Checked Exceptions.
II
Input /Output Basics: Byte Streams and Character Streams, Reading and Writing File in Java. 08
Multithreading: Thread, Thread Life Cycle, Creating Threads, Thread Priorities, Synchronizing
Threads, Inter-thread Communication.
Java New Features: Functional Interfaces, Lambda Expression, Method References, Stream API,
III Default Methods, Static Method, Base64 Encode and Decode, ForEach Method, Try-with- 08
resources, Type Annotations, Repeating Annotations, Java Module System, Diamond Syntax with
Inner Anonymous Class, Local Variable Type Inference, Switch Expressions, Yield Keyword, Text
Blocks, Records, Sealed Classes
Java Collections Framework: Collection in Java, Collection Framework in Java, Hierarchy of
Collection Framework, Iterator Interface, Collection Interface, List Interface, ArrayList, LinkedList,
IV Vector, Stack, Queue Interface, Set Interface, HashSet, LinkedHashSet, SortedSet Interface, 08
TreeSet, Map Interface, HashMap Class, LinkedHashMap Class, TreeMap Class, Hashtable Class,
Sorting, Comparable Interface, Comparator Interface, Properties Class in Java.
Spring Framework: Spring Core Basics-Spring Dependency Injection concepts, Spring Inversion of
Control, AOP, Bean Scopes- Singleton, Prototype, Request, Session, Application, Web Socket, Auto
wiring, Annotations, Life Cycle Call backs, Bean Configuration styles
V
08
Spring Boot: Spring Boot Build Systems, Spring Boot Code Structure, Spring Boot Runners, Logger,
BUILDING RESTFUL WEB SERVICES, Rest Controller, Request Mapping, Request Body, Path
Variable, Request Parameter, GET, POST, PUT, DELETE APIs, Build Web Applications
Text Books
1. Herbert Schildt, "Java The complete reference", McGraw Hill Education
2. Craig Walls, “Spring Boot in Action” Manning Publication
1. Steven Holzner, “Java Black Book”, Dreamtech.
2. Balagurusamy E, “Programming in Java”, McGraw Hill
3. Java: A Beginner’s Guide by Herbert Schildt, Oracle Press
4. Greg L. Turnquist “Learning Spring Boot 2.0 - Second Edition”, Packt Publication
5. AJ Henley Jr (Author), Dave Wolf, “Introduction to Java Spring Boot: Learning by Coding”,
Independently Published
BCS451H- Operating System Lab
List of Experiments (Indicative & not limited to)
1. Study of hardware and software requirements of different operating systems (UNIX,LINUX,WINDOWS XP,
WINDOWS7/8
2. Execute various UNIX system calls for
i. Process management
ii. File management
iii. Input/output Systems calls
3. Implement CPU Scheduling Policies:
i. SJF
ii. Priority
iii. FCFS
iv. Multi-level Queue
4. Implement file storage allocation technique:
i. Contiguous(using array)