Tuesday, 19 January 2016

CS 653 - Mobile Computing

Professor: Kameswari Chebrolu
Course Description :
The contents of the course are:
  1. Physical Layer : Modulation Techniques, Antenna, Channel models, Fading Mitigation techniques, Case-study of 802.11a PHY
  2. Link Layer: Single-hop MAC protocols, Case-study of WiFi and Cellular Networks, multi-hop MAC protocols
  3. Network Layer: Mobile IP, Distributed wireless routing algorithms, Routing metrics
  4. Transport Layer: TCP over wireless, Transport level mobility management, multihop transport protocols
  5. Application Layer: Mobile computing platforms (android), energy efficiency of applications

Course Pattern and Logistics :
Flipped Classroom Model
4 Quizes (5% each) + 1 Midsem (30%) + 1 Endsem (40%) + Class Room Participation (10%)
Comments on the Instructor :
Highly Approachable. Tutorials are conducted every week and doubt sessions are also conducted after watching the video lectures
Who will find it interesting :

People who found the Networks course interesting and want to know how things work in wireless domain.

CS 618 - Program Analysis

Professor: Uday Khedkar
Course Description :
The contents of the course are:
  1. Motivation and introduction to program and data flow analysis
  2. Bit vector data flow frameworks
  3. Mathematical Abstractions in data flow analysis
  4. General data flow frameworks
  5. Interprocedural data flow analysis
Course Pattern and Logistics :
2 Quizes (5% each) + 1 Midsem (30%) + 1 Endsem (30%) + 1 Course Project (20%) + Class Room Participation (10%)
Comments on the Instructor :
Highly Approachable and  motivating. Motivation is given before every topic being taught. Tutorials are conducted before every exam.
Who will find it interesting :
People who are interested in compilers and want to gain insight into static analysis of programs for compile time optimisations

CS 606 : Foundations of Parallel Computation

Motivation behind the course :
Importance of simultaneous use of multiple processing units to solve one computational problem. Understanding fundamental theoretical issues in designing parallel algorithms and architectures.

Instructor :
Prof. Abhiram Ranade

Course Content :
Parallel computers based on interconnection networks such as hypercubes, shuffle-exchanges, trees, meshes and butterfly networks. Parallel algorithms for arithmetic, linear algebra, sorting, Fourier Transform, recurrence evaluation, and dense graph problems. Use of graph embedding techniques to compare different networks. Shared memory based parallel computers. Algorithms for list ranking, maximal independent set, arithmetic expression evaluation, convex hull problems and others. Message routing on multidimensional meshes, Butterfly networks, Hypercubes, Shuffle Exchange networks, Fat-trees and others. Simulation of shared memory on networks. Routing on expander-based networks. Limits to parallelizability and P-completeness. Thompson grid model for VLSI. Layouts for standard interconnection networks. Lower bound techniques for area and area time-squared tradeoffs. Area-Universal networks.

Who will find it interesting :
Any one who likes designing algorithms and theorem proving.

Logistics

Prerequisites :
Design and Analysis of Algorithms

Difficulty level : ⅘. Moderately tough. Requires effort to be put in by students and self study.

Lectures :
The pace of lectures was moderate. Attending them at time of new topic introduction and problem solving will help. Sometimes you might get bored if you don’t like proofs.

References:
Just focus on the things taught in class and consolidated notes(detailed lecture slides).


CS 293 : Data Structures Lab


Motivation behind the course :
Finding ways of translating the general idea given as an algorithm into the more specific instructions of whichever programming language(C++ in general).

Instructor :
Prof. A. A. Diwan

Course Content :
Implementation of, and experiments with, basic data structures and algorithms learnt in CS 213. Operations on data for different algorithms and problem domains; comparison of asymptotic complexity with real behaviour of algorithms;

Who will find it interesting :
Coding Enthusiast. It’s really fun(frustrating!) to come up with working implementations of the Algos you design.
.

Logistics

10 best out of 15 labs. An additional assignment(same weightage as lab) with one week deadline.

Difficulty level : ⅘.
Initial labs will be tough. Implementing(practicing) standard algorithms and data structures will be helpful.

References :
Introduction to Algorithms(Thomas H. Cormen), spoj(Practice)











CS 213 : Data Structures and Algorithms

Motivation behind the course :
Data structures and algorithms are patterns for solving problems. The more of them you have in your utility belt, the greater variety of problems you'll be able to solve. You'll also be able to come up with more elegant solutions to new problems than you would otherwise be able to.

Instructor :
Prof. A. A. Diwan

Course Content :
Introduction to data structures, abstract data types, analysis of algorithms.
Creation and manipulation of data structures: arrays, lists, stacks, queues, trees, heaps, hash
tables, balanced trees, tries, graphs. Algorithms for sorting and searching, order statistics, depth-first and breadth-first search, shortest paths and minimum spanning tree.

Who will find it interesting :
Any one who likes solving problems.

Logistics

Difficulty level : 5/5.
The most difficult course of all the department courses.

Lectures :
Fast Paced. Requires good attention and referring back is must if you can't catch up with professor in the class.

Assignments and Exams :
One of a kind. Don't expect any trivial questions, need to have clear understanding of concepts to crack(!) the questions. If you are unlucky you might be facing an unsolved research problem.

References :
Introduction to Algorithms(Thomas H. Cormen)

CS344 – Artificial Intelligence

Course description – The course has been designed to give a brief introduction to Artificial Intelligence and the associated topics. Main concepts include – search techniques, formal logic, probability and bayesian networks, neural networks, etc

Course pattern and logistics – There are 4 quizzes, a midsem and an endsem. The weightages depend on the instructor.

Comments on the instructor – Professor Siva Kumar took the course in Fall 2015. He is a good professor, however, the course coverage could have been better if the time management during the lectures was taken care of. More topics could have been covered during the course of the semester.

Who will find it interesting – The course is compulsory for CSE students. Non-CSE students who are interested in Artificial Intelligence may also find the course interesting. However, some portions of the course demand an understanding of Logic for CS (CS228). So, those who are interested in taking this course must have a basic understanding of propositional and first order logic.

CS218 – Design and Analysis of Algorithms

Course description – The course is a successor to the data structures and algorithms course. Students are expected to have completed CS213 before taking this course. The course teaches the most important techniques of algorithm design – Dynamic Programming, Greedy Algorithms, and Divide and Conquer. These algorithm design techniques occur almost everywhere in Computer Science.

Course pattern and logistics – There are 3 quizzes and the best 2 of the 3 are taken for final grading. Besides, there is a midsem and an endsem and a couple of programming assignments. Weightages depend on the instructor.

Comments on the instructor – Professor Abhiram Ranade takes this course. He is an excellent instructor. The best thing about him is that he goes slow enough to ensure that even the slowest student of the class follows the topic. He tries his best to keep the course light. He has also introduced programming assignments in the course to make it more interesting and challenging.

Who will find it interesting – Of course the course is compulsory for all CSE students. Those non-CSE students who want a career in Computer Science must definitely take this course. The course will help them to do well in technical interviews. It will also help them to develop better foundations in the Computer Science domain.