Tuesday, 19 January 2016

CS 416: Computer and Network Security

Credits: 6
Instructor: Bernard L. Menezes

The course gives the participant a basic introduction to the world of cryptography and network security. Some mathematical preliminaries are needed but the professor gives a basic introduction to them.

Topics covered:
  • Preliminary number theory: Modular arithmetic, chinese remainder theorem, group theory, extended Euclid’s algorithm
  • Encryption: RSA, AES(AES-128 in particular), Discrete log problem, Baby steps-giant steps algorithm, El Gamal Encryption
  • Key exchange protocols: Diffie-Hellman, El Gamal
  • Hashing algorithms: SHA-1, HMAC, Birthday attack
  • Digital signatures, Digital certificates, Public key infrastructure
  • Network security: SQL Injection, XSS attack
  • Network protocols: Secret sharing protocols, Kerberos, HTTPS
  • Basic network attacks: Parallel session attack, Mitnick attack, TCP SYN attack, DDoS Attack
  • Intrusion detection systems
  • System security: Buffer overflow attack, viruses, malwares

Grading policy:
  • 3 Quizzes (15% x 3)
  • Endsem (40%)
  • 3 Homework assignments to be done in groups (5% x 3)

The course was covered at a decent pace keeping in mind everyone’s comfort level. The instructor was concerned about the students’ learning and answered questions in detail. The professor kept the class interactive as well. The assignments gave more insight into the topics covered in class. Demonstrations by TAs on various tools and attacks were also really helpful.

The prescribed textbook was Network Security and Cryptography authored by the same professor.

The course was good in general, but a bit slow. Anyone interested in learning the subject should definitely take take this course.

Attendance was optional.

CS 207 (Discrete Structures)


Instructor : Prof S Akshay ( https://www.cse.iitb.ac.in/~akshayss/ )
Logistics :
  • 4~5 quizzes : 30%, midsem - 25%, endsem - 40%, tutorial/class participation - 5%.
  • Topics covered : Mathematical proofs and structures, counting and combinatorics, intro to graph theory, elements of number theory, elements of group theory and abstract algebra.
  • Core course for CS department students. Those who wanted to take it as elective were asked to drop this course by the instructor.
Comments on course :
  • Discrete Structures is a very useful and fundamental course for those who like the theoretical side of computer science.
  • Much emphasis is given to proving the correctness of solutions rather than just finding the answer in exams.
  • Concise and clear lecture slides are provided which makes the preparation for exams a bit easier.
  • The key to doing well in this course is practice.
Comments on instructor :
  • Very friendly, energetic and easily approachable. Gives good problem sets for tutorials and practice. Classes are interactive and worth attending.
  • Sets lengthy question papers and expects complete and clear proof for full credit. Time management during examinations for this course is a must to score well.

References :
  • Discrete.Mathematics.and.Its.Applications by Kenneth Rosen
  • Introduction to Graph Theory by Douglas West


SI 417 (Probability Theory)


Instructor : Prof. Kaushik Saha
Course Description :
  • A prerequisite for all the statistic minor courses.
  • Quiz 1: 10%; Quiz 2: 10%; Midsem: 30% and Endsem: 50%
  • Manual attendance taken during class ( runs in minor slot ). Tutorial is conducted every week.
  • Syllabus : Sample spaces, events, sigma algebra, probability space, properties of probabilities, conditional probability, independence, Bayes formula, Polya’s urn model, some combinatorial problems, Discrete random variables, probability mass function, independent random variable, sum of random variables, random vector, expectation of discrete random variable, properties of expectation and variance, Continuous random variable, distribution function, density of a continuous random variable, expectation, change of variable formula, random vector, joint distribution of random variables, joint density, distribution of sums and products of random variables, conditional density, conditional expectation, order statistics, moment generating function, characteristic function, Inequalities: Markov, Chebyshev, one sided chebyshev, Schwarz and Chernoff bound, Almost sure convergence, strong law large number (SLLN), convergence in probability, weak law of large number (WLLN), convergence in distribution, central limit theorem(CLT). Relation between three mode of convergence

References :
  • Introduction to probability models, by Sheldon Ross.
  • Introduction to probability theory, by Hoel, Port and Stone.

Comments on Instructor :
  • Instructor is friendly and is interested in students learning and understanding of the course content.
Comments on course :

  • It is very important to maintain good lecture notes ( no slides are provided). This will be of great help during exams for this course.
  • Typically the lecture notes are complete and understanding them is enough to perform well in this course with a bit of practice before the exams.

CS 251 (Software Systems Lab)


Instructor : Prof. Sharat Chandran ( https://www.cse.iitb.ac.in/~sharat/)
Previous year course website : https://www.cse.iitb.ac.in/~sharat/current/cs251/ - Course logistics, course content, references can be found  in detail on this page.
Course Description :
  • Every lab typically has two components : inlab and outlab. Inlab’s are easy and carry less weightage and are to be submitted by the end of the lab(unless deadline is extended in which case by the end of the day). Viva’s for previous week labs are conducted during the lab session itself. Outlabs are take-home labs and need to be submitted before the next lab session.
  • 1st week - basic html, css
  • 2nd week - javascript, inkscape
  • 3rd week - Reading of codebase of a standard box2d application ( useful for project work )
  • 4th week - makefiles (in depth)
  • 5th week - shell scripting, submission of design of box2d rube goldberg machine, initial report on the same.
  • 6th week - sed, awk
  • 7th week - gnuplot + shell scripting
  • 8th week - latex, bibtex
  • 9th week - git, doxyfile, progress in box2d project.
  • lab 10 - Java programming ( Implement merit order admission algorithm for seat allotment in IITs)
  • lab 11 - Python programming, using tkinter module to build a simple GUI ( The goal is to create a python GUI interface that allows a high school senior graduate engineering college aspirant to fill his/her college preferences)
  • project submission - box2d rube goldberg machine or lab10,11 pro part.

Reference -
  • Useful links to online tutorials are given on the course web page.( Can also be found easily by searching online)

Logistics :
  • Three hours of labs + 1.5 hr tutorial every week.
  • Grading - 1 quiz, midsem, inlabs, outlabs, project, viva(for each lab (conducted by TA’s ) and also for the project which is taken by Professor himself)
  • Labs - 40 % ( best 6 out of 7 ), inlab viva - 15%, project -30%, midsem + quiz - 15%
  • Closed notes/book examinations. Multiple choice with multiple correct answers and brief description type questions.
  • Difficulty - 3 out of 5
  • Submission to be done in teams of 3 students for all the assignments, project. Every group is required to submit a readme.txt for every lab(& project) which contains the honor code and the individual contributions of team members towards that lab.
  • 3 late days available for each team which can be used for any lab/project.

Plagiarism:
  • Very strict on cases of plagiarism. Copy check run on all the submissions(labs+project) of all the students and also on standard codes easily available on the internet at the end of the course. Heavy penalty awarded (proportional to the amount of code match) if the source is not explicitly and clearly mentioned in the readme.txt in submission folder. 0 marks awarded for the plagiarised assignments and in addition marks deducted from the net course total from each of the team member as a penalty.

Comments on Instructor :
  • Instructor is very concerned on students doing things the correct/proper way and not just any way that gives the desired result.
  • Highly enthusiastic towards students participating in the class discussions ( “class points“ are awarded to students who actively ask and answer questions on piazza. These points help if one is on a borderline grade).
  • Low tolerance towards late comers to tutorial session.

Course load :
  • Since the course is an 8 credit lab course, the course load outside class room is quite heavy.
  • Typically significant amount of free time in the weekends goes in learning the software system from online tutorials and in doing the assignment.

Pros of doing this course :

  • This course gives a brief fastrack introduction to the software systems that every one of us would find useful at some point in our future ( example : bash scripting, git, python/java, latex, html/css, makefile …)
  • Learning the syntax and usage of various software systems and then immediately implementing them to solve an assignment problem will make it much less boring and much more interesting.
  • Overall even though the course load is a bit heavy, it remains one of the most liked course by students.

CS 416 - Computer and Network Security



Instructor: Bernard Menezes

Course Description: This course covers the basics of cryptography and network security. Major topics include public key cryptography, secret key cryptography, digital signatures, authentication, web security (XSS, SQL injection), software security (Buffer overflow).  It is a good course to get an introduction to the world of network security.

Logistics:
  • 2 quizzes, 4 assignments, 1 endsem examination.
  • Three hours of lectures per week.
  • Difficulty Level: ⅗.
  • Attendance was optional.

Comments on the Instructor: The instructor keeps gives a lot of demos in the class which helps in understanding the content better. Overall, a good instructor.
Who will find it interesting: Those of you who wanted to hack somebody’s computer from childhood should give this course a try. This course teaches introduction to  cryptography which mathematics loving people will like. People who like systems should also enjoy this course.

SC 631- Games and Information


Instructor: Ankur Kulkarni

Course Description: This course covers the basics of game theory and mainly stays in the domain of Non-cooperative games. Some of the major topics covered are Nash equilibrium, Zero sum games, dynamic games, Stackelberg equilibrium . Just attending lectures regularly is good enough to perform well in this course.

Logistics:
  • 5 Assignments (11% each), Lecture notes scribe (15%), Endsem (30%).
  • Three hours of lectures per week.
  • Difficulty Level: ⅗.
  • Attendance was optional.
  • It is in the CSE white list of courses. Hence, CSE undergrads can tag it as Dept. Elective or Honors course.

Comments on the Instructor: The instructor teaches the course at a decent pace. I found the lectures and the course content very interesting. An excellent teacher overall.
Who will find it interesting: Students with a little inclination towards mathematics will love the course. Some background in optimization will be helpful.

CS 435 - Linear Optimization

Instructor: Sundar Vishwanathan

Course Description: This course covers basics of linear algebra, various concepts of linear optimization like simplex algorithm, duality. Some algorithm design techniques were also taught. Most of the concepts were taught using geometry in a very intuitive manner.

Logistics:
  • Best 2 out of 3 quizzes (25% each), Endsem (50%).
  • Three hours of lectures per week.
  • Difficulty Level: ⅖.
  • Attendance was optional.

Comments on the Instructor: Prof. Sundar teaches this course in a very unique way. Tutorial sheets are distributed in every class and he covers the content by discussing the questions in these sheets. Also, he tries to make sure that every student in  the class is able to follow. So, the pace of his lectures is generally on the slower side. An excellent teacher overall.
Who will find it interesting: Students with a little inclination towards mathematics will love the course. In general, the content is not difficult and almost everybody will be able to pick up the content easily.