CS6150

Advanced Programming

NOTICE: Please fill this form <https://forms.gle/hAa7D5vMrE53foJC6> if you wish to register for this course. Class starts on Monday Sept 7 at 2PM. Google meet link will be sent to those who fill this form.

This course is specifically mean't for postgraduate students (M.Tech, M.S., and Ph.D.) in the Department of Computer Science and Engineering at IIT Madras. The objective of the course is to teach students advanced problem solving through programming. It aims to train students in writing efficient C++ programs. We will be using the C++ programming language.

Administrative Details

Instructors: John Augustine & Meghana Nasre

Class Meetings: "P" Slot (Mondays, 2 - 5 PM). The course will run in the online mode. Details below.

Teaching Assistants (TAs):

  1. Cs17d012 CHIGULLAPALLY SRIHARSHA

  2. CS19M008 AKASH MISHRA

  3. CS19M010 ANSHUL FARKYA

  4. CS19M030 KARAN PRAFULBHAI JIVANI

  5. CS19M050 PULIDINDI VENKATA SAI KUMAR

  6. CS19M068 WAHID GULZAR BHAT

  7. CS19M047 PAWAN KUMAR SHARMA

  8. CS19M051 RAHUL RANJAN


Grading Scheme

  • Weekly programming assignments: 50 % (roughly 5% per assignment; first assignment will be worth 2 marks.)

  • Midterm (Oct 12, 2020): 20%

  • Final (Nov 23 or 30, 2020): 30%

Expected Outcomes

  • Identify and abstract the programming task involved for a given programming problem.

  • Select appropriate data structures and algorithmic paradigms (such as greedy, dynamic programming, divide and conquer etc.).

  • Use libraries (such as STL, BOOST) efficiently.

  • Understand OO design concepts like classes, objects, inheritance, interfaces.

How will this course operate?

Due to Covid-19, this course will operate entirely in the online mode. While this is not ideal, the online mode is actually quite effective and in fact offers some benefits that the traditional offline mode does not. On the whole, we believe your learning should not be affected. To make the best of it, we urge you to be willing to step out of your comfort zone and actively embrace the opportunities that the online mode offers -- even if it may seem a bit unnatural at first.

Importantly, a lot of our work life is likely to go online. So what better way to get used to it than in the safety of your coursework here at IITM?

Communication during class hours will be through two means: (i) Text chat via element.io (ideal for quick questions and informal chat) and (ii) via a google meet video link (at the start of class and when paper-and-pencil or face-to-face discussion is required). All students must sign up at element.io. See below for details on how to sign up. You do not need to give any personal information -- not even your email address (unless you want to be able to recover your password).

Each session will start sharp at 2 PM on Mondays. At that time, all students are expected to join via google meet. The lab assignment will be briefly discussed and all questions will be addressed at that time.

Subsequently, the students will be required to work independently on the lab assignments. The TAs and the instructor will be fully available until 5 PM. Students can ask questions via element and when required you can request a video call via google meet.

Of course, you can/should continue to work beyond class hours. You can post your questions at element. The TA or instructor will answer within a day. (Often, they will answer much earlier!)

Signing-up and Connecting Via element.io

Signing Up:

  1. Go to <https://element.io/>.

  2. Click on "Try Element" button (bottom-left).

  3. Click on "Open in your browser."

  4. Click on "Create Account."

  5. Enter your choice of username and password. I suggest that you also enter your email address so that you can recover your password in case you forget. (You are not required to provide your email address in case you don't wish to. Just make sure you don't forget your password.)

  6. Click "Register."


Signing in Options:

You can either sign in using your browser, Linux/Widows/OS X app, and/or through your phone. The element.io app is available both on Android and on iOS.

How to connect with the instructor, TAs, and other classmates?

There will be a general class room and a room associated with each TA. Each TA will be responsible for a subset of the students. Each student must send an individual invite (via element.io) to the instructor (@j.e.augustine:matrix.org) and to his/her respective TA. This will ensure that you can send messages directly to the instructor or your TA. You will then be added to the class room and the room associated with your TA.