Description of relevant courses taken during undergraduate program
Course numbers
Each course is identified by a 6 digit course number. The first digit identifies the level of the course (1 = undergrad freshman level, 2 = undergrad sophomore level, 3 = undergrad junior level, 4 = undergrad senior level). The next two digits identify the department that offers the course. The last three digits identify the course uniquely.
Course list
Theory
Discrete Structures and Graph Theory
Numerical Computation and Programming lab
Data Structures and Files
Theory of Computer Science
Design and Analysis of Algorithms
Systems
Data Communication
Systems Programming
Computer Networks
Operating Systems
Programming Languages
Principles of Programming Languages
Compiler Construction
Databases
Data Processing lab
Database Management Systems
Software
Software Engineering
Object Oriented Modeling and Design
Project Planning and Management
Computer Architecture
Microprocessor Techniques
Microprocessor Based Systems
Computer Organization
Advanced Computer Architecture and Computing
Mathematics
Engineering Math III : Advanced calculus for electrical engineers
Miscellaneous
Digital Electronics and Logic Design
Computer Algorithms in Signal Processing
Computer Graphics
Multimedia Techniques
Application Development Tools lab
|
210241 |
Discrete Structures and Graph Theory |
Introduction to Discrete Structures & graph theory.
Sets, propositional calculus, permutations, combinations and discrete probabilities.
Relations and functions
Graphs and planar graphs
Trees and cut sets
Algebraic systems (group theory), vector space.
Text : Elements of discrete mathematics – C.L. Liu
|
210243 |
Digital Electronics and Logic Design |
Algebra of logical variables
Design of combinational logic circuits
Design of flip-flips, registers, counters, memories, sequential circuits, algorithmic state machines, programmable logic devices (PLA, PLE, FPGA)
Digital signal transmission and associated problems.
Text : Digital circuits and systems – Douglas Hall
|
210246 |
Numerical Computations and Programming Laboratory |
Representation of numbers and errors.
Solution of transcendental equations (bisection method, false-position method, Newton-Raphson method, secant method)
Numerical differentiation and integration (trapezoidal rule, Simpson’s 1/3 and 3/8 rule, errors)
Numerical solution of simultaneous differential equations (matrix inversion, Gauss elimination, Gauss Seidal method)
Solution of ordinary differential equations (Taylor’s method, Runge Kutta method).
Interpolation (Lagrange’s interpolation, forward/backward/central differences, Newton’s formula, Sterling’s formula, Curve fitting)
Text : Computer oriented numerical methods – V. Rajaraman
|
210247 |
Electronics Laboratory |
Experiments based on 210242 (Analog Circuits), 210243 (Digital Electronics and Logic Design) and 210244 (Linear Circuit Analysis).
|
210248 |
Engineering Mathematics III |
Linear differential equations (Cauchy’s equation, Lengendre’s equation, simultaneous diff equations, applications to electrical circuits)
Application of partial diff equations (heat flow equation, wave equation, Laplace equation)
Fourier transform, Laplace transform, Z-Transform
Vector analysis (gradient, divergence, curl, Gauss and Stoke’s theorem, Green’s Lemma, applications to electromagnetic fields).
Text : Advanced Engineering Mathematics – Erwin Kreyszig; Engineering Mathematics II – Dr. M.Y. Gokhale
|
210249 |
Microprocessor Techniques [Intel 8085/8086] |
Review of tri-state logic, buffers
Introduction to 8-bit processor architecture [Intel 8085], associated latches, buffers, memory interfacing, addressing modes and instruction set, assembly language, timing diagrams.
I/O programming [PPI 8255], 8085 Interrupt structure [PIC 8259] interfacing and programming, [Timer 8253/8254], [Keyboard and display controller 8279] interfacing and programming, HOLD state and DMA, [DMAC 8257/37], Serial I/O, SID and SOD, [USART 8251].
Introduction to 16-bit processor [Intel 8086/88], architecture, supporting chips, programming model, assembly programming, encoding, DOS, BIOS programming.
Text : Microprocessor Architecture, Programming and Application – Gaonkar
|
210251 |
Data Structures and Files |
Introduction to Data Structures.
Algorithm Analysis, Algorithmic strategies (divide and conquer, greedy, backtracking, dynamic programming).
Linear data structures using sequential organization, linear data structures using linked organization, stacks and queues.
Trees, binary trees, tree traversals, AVL tee, graphs DFS, BFS, shortest path, minimum spanning trees.
Searching and sorting, symbol tables, hashing, files.
Text : Data structures – Horowitz and Sahni; Data structures and algorithms – Aho, Hopcroft and Ullman
|
210253 |
Data Processing Laboratory |
Introduction to business data processing.
COBOL, structured COBOL, coding sheets, divisions, data, procedure, computations, table handling, file organization, MIS (Management Information Systems) and decision support systems.
Databases.
Financial accounting, project planning, spread sheets.
Assignments in COBOL. Mini-project based on topics studied.
|
210254 |
Microprocessor Laboratory |
Experiments and programming based on 210249 (Microprocessor Techniques). Interfacing, assembly programming with 8085. DOS and BIOS programming with 8086.
|
210255 |
Data Structures and Files Laboratory |
C/C++ programming based on 210251 (Data structures and files).
|
310241 |
Theory of Computer Science |
Introduction to theoretical computer science, finite state machine.
Regular expressions, grammars, Chomsky hierarchy
CFG, CFL, CNF, GNF
Push down stack memory machine, post machine, production system.
Turing machine, Church’s Turing hypothesis, incompleteness, decidability, solvability, applications.
Text : Introduction to automata theory and languages – Hopcroft and Ullman
|
310242 |
Computer Organization |
Von Neumann architecture.
Classification of data types, central proc. unit, pipelining, control unit, RTL, micro-program control.
C U design, ALU and sequencer, memory org. (DRAM, SDRAM, Cache, Rambus DRAM, disks, RAID).
I/o system, DMA channel, interrupts, multiprocessor configuration, multi bus using 8288, 8289, OS support, RISC architecture.
Text : Computer organization and architecture – William Stallings; Computer organization – Hamacher and Zaky
|
310243 |
Computer Graphics |
Graphic devices, graphic file formats, line and circle generation, polygons, segments, 3D geometry.
Transformations, viewing transformations
Windowing and clipping, hidden surface removal and lines (Z-buffer), light, color and shading, curves and fractals, interactive graphics.
GUI, OpenGL, X-windows, applications..
Text : Computer graphics: A programming approach – Steven Harrington
|
310244 |
Computer Algorithms in Signal Processing |
Introduction to digital signal processing (DSP), signals and systems, LSI systems.
Analysis of signals (DFT, FFT algorithms, Goertzel, IDFT).
Analysis of LSI systems (Z-transformations, ROC, pole-zero plots, digital filters (cascade and parallel forms, FIR and IIR filters, windowing functions).
D SP processors (ADSP-210xxx series), Applications of DSP.
Text : Discrete time signal processing – A.V. Oppenheim; Digital signal processing – Proakis and Manolakis
|
310245 |
Principles of Programming Languages |
Introduction to programming languages
Implementation of basic blocks (variables, binding times, data structures, control flow).
Procedures (referencing, parameter passing, activation records C and Pascal, storage management).
Object oriented programming (C++, Smalltalk).
Functional programming (LISP)
Other programming language paradigms (concurrent programming), case study of Pascal, Smalltalk, LISP, PROLOG, C, C++
Text : Programming languages – T.W. Pratt; Programming languages – Ravi Sethi
|
310246 |
Software Laboratory I |
Assignments based on 310243 (Computer Graphics), 310245 (Principles of Programming Languages) and 310241 (Theory of Computer Science).
|
310247 |
Signal Processing Laboratory |
Based on 310244 (Computer Algorithms in Signal Processing). Assignments on LSI systems, generation of waveforms, convolution, FFT, Z-transform, pole zero analysis, FIR filters, IIR filters, ADSP processor.
|
310248 |
Computer Organization Laboratory |
Based on 310242 (Computer Organization). Assignments on DOS programming in assembly for writing TSRs, FAT file systems, device drivers, mouse. Study of Windows VxD device drivers.
|
310249 |
Microprocessor Based Systems |
80386 architecture, programmingers model of 80386, register model, addressing mode, bus cycles, timing and state diagrams, 80386 real mode, protected mode and VM86 modes in detail.
Memory management through segmentation and paging, protection mechanism and privilege levels, multitasking, exceptions, faults, traps, co-processor interface, 16 and 32 bit memory interfacing.
Pentium family architecture, I/O interfacing, Microcontroller 8051 in detail.
Text : 80386 advanced programmers manual – Turley; 80386/486/Pentium hardware and software – Triebel
|
310250 |
Data Communication |
Signals and spectral analysis (Fourier series and transform), amplitude and angle modulation, pulse modulation, source coding techniques (PCM-TDM, Delta modulation, linear predictive modulation).
Gaussian noise, error control and line coding techniques (entropy, information rate, RZ, NRZ, AMI).
Modems, network protocols (OSI model), data link layer protocols, telephone networks, satellite communication, fiber optic communication.
Text : Digital, analog and data communication – William Sinnema
|
310251 |
Database Management Systems |
Introduction, data modeling (E-R, object oriented, relational, network, hierarchical models), relational model (relational algebra and relational calculus)
SQL in detail, relational database design (normalization using functional dependency) join dependency, database administration issues, transaction management (concurrency control and recovery system).
Object oriented DBMS (persistent classes), database systems architecture, new applications (data mining, spatial and geographical databases)
Text : Database system concepts – Henry F. Korth, Abraham Silberschatz and S. Sudarshan
|
310252 |
Systems Programming |
Introduction to IBM 360 architecture.
Assemblers (design of single and two pass assembler), macro-processor, linkers and loaders, compilers, software tools (editors, debug monitors).
OS structure (file management, memory management, device management, process management, system calls), dynamic linking in windows.
Text : Systems programming – John Donovan; Systems programming and operating systems – D.M. Dhamdere
|
310253 |
Software Engineering |
What is and why software engineering? Planning and management of software projects, systems engineering, requirement analysis.
Design fundamentals & design methods.
Software testing and testing strategies.
Object oriented software engineering (HCI)
Unified modeling language (UML)
Software quality assurance. CASE
Text : Software engineering: A practitioner’s approach – Roger Pressman
|
310254 |
Hardware Laboratory |
Assembly language programming for 80386 (32-bit calculator, protected mode).
Study of 386, 486 and Pentium motherboards.
Mouse interfacing
Diagnostics and troubleshooting
PC-PC communication, modems, Codec, study of ASK, FSK techniques, 8051 interfacing and programming.
|
310255 |
Application Development Tools Laboratory |
Windows SDK programming (dialog boxes, menus, GUI components, DLL)
Front end tools (VC++, CB, database access)
Internet programming tools (HTML, SGML, CGI programming, Java)
|
310256 |
Software Laboratory II |
Based on 310251 (Database management systems), 310252 (Systems Programming) and 310253 (Software Engineering).
Development of two pass assembler for 8086 with all addressing modes and entire instruction set.
Mini-project for development of database application with Oracle 8i backend and VB front-end.
|
410241 |
Computer Networks |
Introduction, types of networks, OSI reference model, TCP/IP reference model, Novell Netware, ARPANET.
Network analysis and modeling, loss and delay, queuing theory, M/M/I queue, modeling network as graph.
Data link layer, medium access sub layer, network layer, transport layer, network security, network management, Internet and applications
Laboratory Work: Assignments based on implementation of data link later, TCP/IP socket programming in UNIX and Java, ping, IPX/SPX programming, application layer, configuration of router, DNS, mail server, web-server; case study of existing network
Text books: Computer networks – A.S. Tanenbaum
|
410242 |
Operating Systems |
Types of OS, processes and process management (scheduling algorithms, deadlocks and synchronization, inter-process communication, problems in concurrent programming)
Memory management (paging, virtual memory), I/O management (buffer register).
File management (directory structure, file space allocation, inodes, superblocks, system calls)
Distributed OS (all topics include general aspects as well as implementation details in UNIX).
Text books: Operating system concepts and design – Milenkovic; Design of UNIX OS – Bach
|
410243 |
Object Oriented Modeling and Design |
Review of object modeling, OMT by Ram Baugh, Booch, Jacobson.
Overview of CRC card method of Cunningham, overview of UML, UML diagrams.
Introduction to component technology (COM, DCOM, CORBA, Object databases).
Text books: UML User Guide – Booch/Rambaugh
|
410244 |
Compiler Construction |
Introduction to compiler, bootstrapping, lexical analysis (regex to DFA), LEX tool.
Syntax analysis (grammars, CFG, parsing left most derivation, rightmost derivation).
Parsing techniques (top-down RD parse, predictive LL(k) parser, bottom-up shift reduce parser, LALR parser), YACC tool.
Static semantics and intermediate code generation (declaration processing, type analysis-unification algorithm, polymorphic algorithm, limitation of CFG, symbol table management, L-attributes and S-attributes, intermediate code format).
Code generation (target description, partial result handling, register description, allocation and assignment, dynamic programming, peephole optimization, Sethi-Ullman algorithm).
Code optimization (local optimization using DAG, global optimization using data flow analysis), run-time storage organization.
Text books: Compiler principles, techniques and tools – Aho, Sethi and Ullman
|
410245 |
Design and Analysis of Algorithms (Elective I) |
Algorithmic analysis and complexity issues.
Divide and conquer method (quick sort, merge sort, Strassen’s matrix multiplication), greedy method (knapsack problem, job sequencing, optimal merge patterns, minimal spanning trees).
Dynamic programming (multistage graphs, OBST, 01 knapsack, traveling salesperson problem).
Back tracking (n-queens problem, graph coloring problem, Hamiltonian cycles, knapsack, maze).
Branch and bound (0/1 knapsack, traveling salesperson problem, sorting and searching).
NP-hard and NP-complete problems (algorithms complexity, intractability, NP, P, Cook’s theorem, NP-Complete problems, satisfiability problem, vertex cover problem, NP hard problems in graphs, scheduling, code generation, simplified NP-hard problems, approximation algorithms for NP-hard problems).
Laboratory work: Two programming assignments on each algorithmic strategy with performance analysis
Text books: Introduction to algorithms – Cormen, Leiserson and Rivest; Fundamentals of computer algorithms – Horowitz and Sahni
|
410246 |
Computer Laboratory I |
Assignments based on 410244 (Compiler Construction), 410242 (Operating Systems) with UNIX shell programming, 410243 (Object Oriented Analysis and Design).
|
410247 |
Seminar and Technical Communication |
Each student will select a topic in the area of computer engineering and technology in consultation with the institute guide and present a seminar of 20 minutes (+10 minutes for Q/A). A report of 30 pages must be submitted.
|
410248 |
Project Work (Bachelor’s final project) |
The student will undertake a final year project over the entire academic year (i.e. two semesters) which will involve design of a system or subsystem in the area of computer engineering.
|
410249 |
Advanced Computer Architecture and Computing |
Introduction to parallel processing, architectural classifications.
Pipelining processing (design, hazards, resolving techniques, loop unrolling, VLIW processor).
Vector processors (architecture, performance modeling, vectorizers, optimizers).
Array processor (SIMD, masking, cube hypercube network).
Parallel algorithms for array processor (matrix multiplications, FFT).
Multiprocessor architecture, multithreaded architecture, parallel software issue (compilers, algorithms, OS).
Case study of UltraSPARK V-9 architecture, introduction to neuro-computing.
Text books: Advanced computer architecture – Kai Hwang; High performance computer architecture – Harold Stone
|
410250 |
Project Planning and Management |
Introduction, scope, task and responsibility of a manager and team.
Requirement engineering, problem definition, risk management, detailed project definition, estimation, resource planning and scheduling (PER/CPM), critical path theory, software quality assurance.
Introduction to advanced topics (reuse, business process engineering, re-engg, reverse engg), SEI_CMM, CASE tools.
Text books: Software Engineering – Pressman
|
410251 |
Advanced Unix Programming (Elective II) |
UNIX Internals, shells, multi-threaded and multi-process programming.
Text books: Advanced programming in UNIX environments – Stevens;
|
410252 |
Multimedia Techniques |
Introduction, multimedia configuration, multimedia OS, audio, audio file formats, graphics, 2D/3D animation, AVI file formats.
Image compression (LZW, DCT, JPEG, MPEG), augmented and virtual reality, multimedia devices.
Windows support to multimedia, Case study of UNIX, virtual coffee house application
Text books: Multimedia: computing, communication and applications – Ralf Steinmetz
|
410253 |
Computer Laboratory II |
Based on 410252 (Multimedia Techniques). Assignments on image, audio and video files, ActiveX, compression, 3D studio, animation, HTML, VRML, etc
Page