Iisc Bs Engg Curriculum-7 Jan
Iisc Bs Engg Curriculum-7 Jan
06-01-2014
Preamble
Why an Engineering Curriculum in a Science Degree? Engineering is concerned
with the application of the basic sciences and mathematics to solving real-world
problems. On the one hand a scientist is a consumer of engineering solutions, e.g.
scientific instrumentation, or computational algorithms. On the other hand the quest for
engineering solutions to human problems invariably leads to questions that would
interest a basic scientist: e.g., fundamentally new phenomena that could lead to compact,
sensitive and energy efficient sensors.
Outline of the Engineering Curriculum: The 18 credit engineering curriculum in this
four year BS program has been designed with the above two objectives in mind.
1. Hard Core: Engineering essentials for the scientist: Computing and electronic
instrumentation are essential tools of the modern scientist. Hence, a 6 credit hard
core curriculum comprising the following two engineering courses will be
required to be taken in the first three semeters.
Semester 1 - ESc 101 (2:1) : Algorithms and Programming
Semester 2 - ESc 102 (2:1) : Introduction to Electrical and Electronics
Engineering
In addition, given the increasing importance of materials to many areas of science
and engineering (such as in electronics, energy generation, biology, and
medicine), and the essentiality of the environment to our very existence, two new
hard core courses have been introduced.
Materials (2:0)
Environmental Science (2:0)
2. Electives: Broad exposure to other engineering fields: The remaining 8 credits
are viewed as elective courses, and have to be selected from a pool of existing
engineering courses, or courses specially designed for undergraduates, offered by
the faculty of the two engineering divisions in IISc. Some of these courses will
serve to expose the student to various engineering disciplines, while others are
more focused analysis and design courses which require the student to apply
scientific and mathematical knowledge to provide engineering solutions to
problems.
1
ESc 101 (Aug-Nov) 2:1 Semester I
Algorithms and Programming
28 contact hours plus weekly labs
1 Course Content
Notions of algorithm, data abstraction, data structures; Importance of data structures and
algorithms in programming; Notion of complexity of algorithms and the big Oh notation. (3
Hours)
Searching Algorithms: Hash tables, skip list, binary search trees, balanced search trees, pattern
search (6 Hours)
Graphs: Shortest path algorithms, minimal spanning tree algorithms, depth first and breadth first
search (6 Hours).
Algorithm design techniques including greedy, divide and conquer, dynamic programming, and
local search (3 Hours).
1.1 Books
Brian W. Kerninghan and Dennis M. Ritchie. C Programming Language. Prentice Hall of India,
New Delhi, 2009.
Robert L. Kruse. Data Structures and Program Design in C. Prentice Hall of India, New Delhi,
2006.
2 Laboratory Component
Sessions/Experiments to be designed for appreciating the following aspects.
1. Comprehend the following terms in the context of problem solving by a computer: Problem
specification, input-output analysis, algorithm, flowchart, pseudo-program, programming
language, assembly language, machine language, compiler, assembler, program correctness
2. Appreciate how computers can be used to solve "common" but subtle problems such as binary
search and Hanoi towers using iteration or recursion and the ability to write elegant, correct, and
efficient programs for solving such problems.
3. Comprehend the nature of problems that a computer can solve extremely well- be able to list 5
non-trivial, interesting problems (unique in their own way) which are difficult to solve for a human
being but can be solved easily by a computer.
4. Understand the difference between arrays and linked lists and create 2 examples where arrays are
better than linked lists and 2 examples where linked lists are better than arrays.
5. Understand the difference between iteration and recursion and create 2 examples where iteration is
better than recursion and 2 examples where recursion is better than iteration.
6. Design the flowchart and write efficient code for the following problems: (a) Recursive and
iterative programs for binary search (b) Recursive and iterative programs for Fibonacci numbers
(c) Recursive and iterative programs for finding the GCD of two numbers (d) Reverse a linked list
while traversing it only once
2
7. Understand the role of pointers in implementing singly linked lists, doubly linked lists, binary
trees, and general trees.
8. Comprehend the notion of time complexity and understand the asymptotic notions of "Big Oh"
with non-trivial examples; Understand the difference between worst case complexity and average
case complexity. The student should be able to give an example of one algorithm with each of the
complexities: O(n), O(n*2), O(n*3), O(2**n), O(n log n), O(n*2 log n), O(log n), O(log log n),
O(sqrt(n)).
9. Write down the recurrence relations for worst case complexity of (a) binary search (b) Hanoi
towers (c) bubble-sort (d) merge sort and (e) traveling salesman problem; analyze the complexities
and appreciate why some of these are more difficult than the others.
10. Assimilate all the trade-offs involved in choosing arrays versus linked lists with apt examples such
as: binary search, stack, queue, binary trees.
11. Understand why Dijkstras algorithm is a greedy algorithm and how greediness guarantees
optimality. Also, understand the trade-off between adjacency matrix and adjacency list
representations vis-a-vis this algorithm. How does the heap data structure reduce the
computational complexity of this algorithm?
12. Understand why Kruskals algorithm is a greedy algorithm and how greediness guarantees
optimality. Also, understand the trade-offs involved in using different data structures for this
problem.
13. In the context of binary trees, clearly understand the following concepts: (a) recursive definition of
a binary tree (b) preorder (c) post-order (d) in-order (e) level-by-level traversal (f) number of
binary trees of a particular size
14. In the context of graphs, clearly understand (a) breadth-first search (b) depth first search (c)
shortest path problem (d) minimal spanning trees problem
15. In the context of searching, understand the trade-offs involved in selecting any of the following
methods: hashing, binary search trees, AVL trees.
16. In the context of sorting, understand the trade-offs involved in selecting: (a) bubble-sort (b)
insertion sort (c) selection sort (d) quick-sort (e) merge-sort (f) heap-sort.
17. Understand the implication of the following statement: The lower bound on the worst case
complexity of any comparison based sorting method is O(n log n).
2. Implement a stack of integer valued numbers using a linked list so that the worst case complexity
is worst-case O(1) for both push and pop. Design an additional data structure so as to implement
not only "push" and "pop" but also "findmin" in worst-case O(1) time and implement the same.
Now enhance the data structure further to implement "findmin" also in worst-case O(1) time.
3. Write a naive program to solve the TSP problem with naive data structures. Understand why the
problem is hard; in particular, why it is NP-hard. Now use a heuristic based on Kruskals
algorithm to implement a solution to the TSP. Use an efficient data structure for implementing the
Kruskals algorithm. Now implement a branch and bound based algorithm to obtain an optimal
solution to the problem.
3
4. Write a program for generating a random graph model of a social network. The generated model is
to be used for computing simple metrics such as the most connected nodes, the most central nodes,
the most influential nodes, etc.
4
ESc 102 (Jan-Apr) 2:1 Semester II
Introduction to Electrical and Electronics Engineering
28 contact hours plus weekly labs
Text
Art of Electronics, Second Edition, by Horowitz and Hill.
Synopsis
The course will have four modules with 24 hours of instruction along with 12 lab sessions.
1. Basic Electrical Circuit Concepts (8 hours : 4 lab sessions).
2. Active devices and Operational Amplifier (6 hours : 3 Lab sessions).
Syllabus
1. Basic Electrical Circuit Concepts.
Ohms law, KVL, KCL, Resistors and their characteristics, Categories of resistors, series
parallel resistor networks.
LAB: Solder simple resistor networks and measure resistance.
Capacitors and their characteristics, Simple capacitor networks, Simple RC Circuit and
differential equation analysis, Frequency domain analysis and concepts of transfer
function, magnitude and phase response, poles.
LAB: RC network frequency response.
Inductors and their characteristics, a simple LR circuit and differential equation analysis,
frequency domain transfer function and time constant, LRC circuit and second order
differential equation, frequency domain analysis, resonance and Quality factor.
Introduction to Faradays and Lenzs laws, magnetic coupling and transformer action for
step up and step down.
LAB: Winding an inductor and make a transformer.
Steady State AC analysis and introduction to phasor concept, lead and lag of phases in
inductors and capacitors, Concept of single phase and three phase circuits.
Semiconductor concept, electrons & holes, PN junction concept, built-in potential, forward
and reverse current equations, diode operation and rectification, Zener diodes, Simple
Diode circuits like half wave rectifier and full-wave rectifier.
LAB: Simple rectifier and zener voltage regulator.
NPN and PNP bipolar transistor action, current equations, common emitter amplifier
design, biasing and theory of operation.
LAB: design of a single stage and dual stage transistor amplifier.
MOSFET as a switch, introduction to PMOS and NMOS.
LAB: MOSFET as switch to control relays for voltage stabilizer.
Introduction to Opamp concept, Characterisitics of an ideal opamp a simple realisation of
opamp using transistors, Various OPAMP based circuits for basic operations like
summing, a mplification, integration and differentiation, Introduction to feedback concept
LAB: Design of 3 transistor opamp and its characterisation. Simple OPAMP applications
using 741.
5
Design of a temperature indicator and controller, design of ON/OFF, proportional and PID
controllers.
LAB: same.
Design of a constant current source. Design of a 4-probe resistance measurement system.
LAB: same.
Design and use of lock-in amplifier. Techniques for noise shielding.
LAB: same.
Signal conditioning for capacitive and inductive transducers.
LAB: same.
4. Introduction to digital design and embedded systems.
6
UMT 200 (Jan-Apr) 2:0 Semester III
Introduction to Materials
28 contact hours
water conservation.
Air pollution: Standards, effect of air pollutants, origin and fate of air pollutants,
atmospheric dispersion, air pollution control at stationary and mobile sources, Noise
7
Elective courses
The remaining 8 credits are viewed as elective courses, and have to be selected from a
pool of existing engineering courses, or courses specially designed for undergraduates,
offered by the faculty of the two engineering divisions in IISc.
Scientific computing
Only one of CH 202/SE 288/ SE 289/UE 203 can be taken, as they are equivalent courses
Only one of MT 250, PD 205, or ME 228 can be taken, as they are equivalent courses
8
Pool of Elective Courses
MECHANICAL SCIENCES
9
Department of Aerospace Engineering
10
Centre for Product Design and Manufacturing
11
DIVISION of ELECTRICAL SCIENCES
Department of Computer Science and Automation
12
Department of Electrical Engineering
BioEngineering
13