1 | CourseCode | CourseName | Credits | Semester | Syllabus | References | ||
---|---|---|---|---|---|---|---|---|
2 | CS1000 | Introduction to Computing | 1 | Odd | What Computer Science is all about History basics: hardware, software, mathematics and applications Exciting things happening these days Future Horizons. Hands on demonstrations on various aspects | |||
3 | ID1063 | Introduction to Programming | 3 | Odd | Introduction to C programming. Problem solving and algorithms. Input and output operations, decision control structure, loop control structure, arrays, strings, etc. pointers, arrays, structures, functions, file operations. Lab is also included in this course. | The C Programming Language, B.W. Kernighan, Dennis M.Ritchie, PHI/Pearson Education. C How to Program-Deitel & Deitel. Computer science, A structured programming approach using C, B.A. Forouzan and R.F. Gilberg, Third edition, Thomson | ||
4 | CS1010 | Discrete Mathematics for Computer Science | 3 | Odd | Concept of Mathematical Proof, Logic, Proof by contradiction, Mathematical Induction, Constructive Proofs, Sets, Relations. Illustration of Proof Techniques in various mathematical topics. Combinatorics: Basic Counting Principles, Inclusion-Exclusion Principle, Binomial/Multinomial Coefficients, Bijections, Double Counting, Pigeon-Hole Principle, Recurrence Relations. Introduction to Graphs: Basic terminology/Definitions, Isomorphism, Connectivity, Trees, Planarity, Optional: Matchings, Colorings. Introduction to abstract algebra: Basics of Groups, Optional: Rings, Fields, Polynomial Rings. Introduction to number theory, modular arithmetic, prime factorization, Optional: Chinese Remainder theorem. | 1. Discrete Mathematics and its applications by Kenneth Rosen 2. Discrete Mathematics with applications by Susanna S Epp | ||
5 | CS1023 | Software Development Fundamentals | 3 | Even | Course topics: Introduction to Object Oriented programming, Software Design patterns, Techniques for Software quality assurance (includes testing, blackbox, whitebox, coverage criteria, precondition, postcondition, invariants), Best practices of software development (debugging tools and practices, automated build, automated test, automated deployment, version control, issue management etc). Introduction to concurrent programming. Labs: The course has a substantial lab component for hands-on experience in working with the above. | Various web resources, eg: 1. C++ http://cplusplus.com/ 2. For design patterns: https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612, https://sourcemaking.com/design_patterns 3. Version control: https://git-scm.com/book/en/v2 4. CI : https://help.github.com/en/actions 5. Build : https://www.gnu.org/software/make/manual/make.html, https://cmake.org/, https://ninja-build.org/ 6. For precondition/post condition : https://www.boost.org/doc/libs/develop/libs/contract/doc/html/index.html | ||
6 | CS2233 | Data Structures | 5 | Odd | Big-Oh notation, Basic data types - Lists, Stacks, Queues, Trees, Abstract data types. Advanced data types: Dictionaries. Binary search trees, Balanced search trees (such as AVL trees or Red-black trees), B Trees, Hash tables -- Chaining and Open Addressing, Heaps, Priority queues. Graphs: Basic Representation of Graphs, Breadth First Search, Disjoint Set (Union Find) Data Structure and application to Minimum Spanning Tree. Optional Topics: Analysis of Randomly generated BST, Binomial Heaps, Fibonacci Heaps, Amortized Analysis. Lab: Implementation of some of the above data structures. Applications of data structures in solving computational problems. | Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein | ||
7 | ID2230 | Data Structures and Applications | 3 | Odd | Big-Oh notation, Basic data types - Lists, Stacks, Queues, Trees, Abstract data types. Advanced data types: Dictionaries. Binary search trees, Balanced search trees (such as AVL trees or Red-black trees), B Trees, Hash tables -- Chaining and Open Addressing, Heaps, Priority queues. Graphs: Basic Representation of Graphs, Breadth First Search, Disjoint Set (Union Find) Data Structure and application to Minimum Spanning Tree. | Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein | ||
8 | CS2323 | Computer Architecture | 2 (pre 2022) / 3 (2022 onwards) | Odd | Instruction set architecture Micro architecture Architecture and performance Arithmetic operations in processors Enhancing performance with pipelining Memory subsystem - cache and virtual memory Input/output organization | 1. Computer Organization and Design: The Hardware/ Software Interface, Fifth Edition. By John L. Hennessy and David Patterson. (2013) 2. Digital Design and Computer Architecture, Second Edition. By David Harris and Sarah Harris (2012) 3. Basic Computer Architecture (also available as Computer organization and architecture), version 2.1. By Smruti Ranjan Sarangi. (2021) | ||
9 | CS3510 | Operating Systems 1 | 1 | Odd | History of OSs, Concurrency vs parallelism, Overview of Process management, Memory management, File systems | Operating System Concepts, 9th edition by Silberschatz, Galvin and Gagne | ||
10 | CS3550 | Database Management Systems 1 | 1 | Odd | Purpose and evolution of database management systems, Relational model of data, Formal relational languages (relational algebra/calculus), SQL, Introduction to database design | Database Systems Concepts, A. Silberschatz, H. Korth and S. Sudarshan, McGraw Hill, 6th edition, ISBN 0-07-352332-1 • An Introduction to Database Systems, R. Ramakrishnan and J. Gehrke, 3rd edition • Fundamentals of Database Systems, R. Elmasri and S. B. Navathe, Addison Wesley, 6th edition | ||
11 | CS2030 | Theory of Computation | 3 | Even | Alphabets, languages, finite state machines. Deterministic and non-deterministic finite automata, regular languages, regular expressions, pumping lemma for regular languages, Myhill-Nerode theorem. Context Free Grammars, Context Free Languages, Parse trees, Chomsky Normal Form, Push Down Automata, Pumping lemma for CFLs and applications. Turing machines, Variants, Decidable and Recognizable languages, Undecidability theory, Undecidability of the Halting Problem, Many-one reductions, Rice’s Theorem. Time and Space bounded computation. The class P, Theory of NP completeness, polynomial time reductions, introduction to space complexity, classes L, NL, PSPACE. | Introduction to the Theory of Computation” (third edition), by Michael Sipser, with some modification based on the instructor and time. | ||
12 | CS3523 | Operating Systems 2 | 3 | Even | Process management: process states, process vs thread, scheduling algorithms, system calls, IPC. Process synchronization: Semaphores, Monitors, Deadlocks, Main memory: Paging system, File system; Virtual memory: demand paging and page replacement algorithms, File system implementation, Disk management, and I/O management; Case studies on Windows/Linux OSs. Programming assignments related to OS features and their implementation. Further, students enhance functionalities of open-source toy OS named Minix3 by Andrew S. Tanenbaurm as part of the group projects. | Operating System Concepts, 9th edition by Silberschatz, Galvin and Gagne (John Wiley) Modern Operating Systems by Andrew S. Tanenbaum and H. Bos, 4rd Edition, Prentice Hall, Inc, 2014. | ||
13 | CS2443 | Algorithms | 3 | Even | Algorithmic Design Paradigms, Divide and Conquer, Analysis for Divide and Conquer, Sorting, Greedy Algorithms. Dynamic Programming, Graph Algorithms (DFS, BFS, Topological Sort, Single Source Shortest Path, Spanning Trees, All Pair Shortest Path, Matching, Max Flow), FFT. | 1. Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein. 2. Algorithm Design by Kleinberg & Tardos. | ||
14 | CS3320 | Compilers 1 | 1 | Even | Syntax directed translators, Finite automata, Regular Expressions, Lexical analysis, Context free languages and grammars, Syntactic analysis, Bottom-up and Top-down Parsing, Syntax directed translation, Lex and yacc as tools for lexical analysis and parsing. | 1. Compilers: Principles, Techniques, and Tools ("Dragon book") by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, 2006. 2. Compiler Design "Syntactic and Semantic Analysis" by Reinhard Wilhelm, Helmut Seidl and Sebastian Hack, 2013 | ||
15 | CS3563 | Database Management Systems 2 | 3 | Even | Advanced SQL (procedures/functions/triggers), Database design and normal forms, Database application development, Storage structures and indexing/hashing, Query processing and optimization, Transactions, Lock-based concurrency control. | 1. Database Systems Concepts, A. Silberschatz, H. Korth and S. Sudarshan, McGraw Hill, 6th edition, ISBN 0-07-352332-1 2. An Introduction to Database Systems, R. Ramakrishnan and J. Gehrke, 3rd edition 3. Fundamentals of Database Systems, R. Elmasri and S. B. Navathe, Addison Wesley, 6th edition | ||
16 | CS3530 | Computer Networks | 4 | Odd | Basics and History of Computer Networks, TCP/IP protocol stack, Application layer (WWW, Email, DNS), Protocols at Transport layer, Network layer and Data link layer. Network congestion, TCP vs UDP, IPv4 vs IPv6, Routing algorithms, Routing in Internet, ARQ protocols, Local Area Networks (Ethernet, Wi-Fi), Multimedia Networking, and Network Security Lab: Client-Server Design using Socket programming in C/C++, Implementation of multi-threaded Web Sever/Web Proxy with Caching/Filtering features, Sliding Window protocol implementation, performance study of various TCP variants, Wireshark assignments on DNS, HTTP, DHCP, SMTP, TCP, UDP, IP, Ethernet, Wi-Fi, ARP, etc. Hands-on with Cisco routers. | 1. Computer Networking: A Top-Down Approach by James F. Kurose and Keith W. Ross, 6th Edition, 2012, Pearson. 2. Computer Networks: A Systems Approach by Larry L. Peterson and Bruce Davie, 4th Edition, 2007, Morgan Kaufmann 3. UNIX Network Programming, Volume I: The Sockets Networking API by W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, 3rd Edition, 2003, Addison-Wesley 4. TCP/IP Illustrated Vol. 1 Protocols by W. Richard Stevens and G. Gabrani, 2001, Addison-Wesley | ||
17 | CS3423 | Compilers-2 | 3 | Odd | Compilers II Review of compilation process, semantic analysis, intermediate code generation, runtime, code generation, introduction to simple machine independent optimizations. | 1. Compilers: Principles, Techniques, and Tools ("Dragon book") by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, 2006. 2. Compiler Design "Syntactic and Semantic Analysis" by Reinhard Wilhelm, Helmut Seidl and Sebastian Hack, 2013 | ||
18 | CS3390 | Foundations of Machine Learning | 3 | Odd | 1. Generative, Discriminative, Loss composed Linear Models and parameter estimation 2. Exponential models, Kernel methods 3. Model selection, 4. Parametric and Non-parametric models 5. Supervised and Unsupervised Learning 6. Representation Learning, 7. Batch and Online Learning 8. Boosting, Bagging, trees, 9. Learning with Sequential Data | Bishop, Christopher M. Pattern Recognition and Machine Learning. Springer, 2006. Murphy, K. P. (2013). Machine learning : a probabilistic perspective. Cambridge, Mass. [u.a.]: MIT Press. Hastie, T., R. Tibshirani, and J. H. Friedman. The Elements of Statistical Learning: Data Mining, Inference and Prediction. New York, NY: Springer, 2001. | ||
19 | CS4443 | Software Engineering | 3 | Even | Introduction to Software Engineering: Importance, challenges, approaches. Software Processes. Requirements Engineering, Software Architecture, Planning, Design, Coding, Testing, Software Project Management, Advanced topics like Formal Methods in Software Engineering | 1. Software Engineering: A practitioner’s approach, 7th ed., Roger Pressman, McGraw Hill 2. An Integrated Approach to Software Engineering, Pankaj Jalote, Narosa |