layout: page title: Course Reviews subtitle: EE 435/717 – ADVANCED COMPUTING FOR ELECTRICAL ENGINEERS (2011) cover-img: assets/img/Cover_study.jpg thumbnail-img: “” share-img: “” comments: true tags: [Academic, Elective, Miscellaneous] —

EE 435/717 – ADVANCED COMPUTING FOR ELECTRICAL ENGINEERS

Course offered in:

Autumn 2011

Instructors:

Prof V. Saravanan and Prof Sachin Patkar

Course Content:

The official contents can be found here. Following were the topics that were covered in the course during the last offering in Autumn 2011-12, which is most likely going to remain similar :

Pre-midsem

  1. Review of basic C++ concepts (Basically what was done in CS101 course plus some advanced concepts like classes, structures, hierarchies, templates etc). This review was mostly self study from a tutorial available online. (completed by the first two weeks)
  2. Data structures, algorithms, programming techniques etc

Post-midsem

  1. OS concepts, process synchronization, scheduling etc
  2. Parallel programming, introduction to CUDA, GPU architecture and programming etc

A lot of slides were used in this course which made for sufficient preparatory material.

Assignments structure (in Autumn 2011-12): There were 2-3 assignments before midsem which were coding tasks and had to be uploaded on an online interface for evaluation (Mooshak). The assignment after the midsem involved GPU programming and had to be done on actual Nvidia cards that were installed on a few PC Lab machines.

Project structure (in Autumn 2011-12): The course project had to be done in teams of 2-3 people. Project titles were floated early and were allotted to teams as they were claimed, on a first come first serve basis (Self project proposals were allowed too). Functional specifications, design documents, test plan etc were to be provided before midsem and final implementation, presentation and report during the endsem.

Prerequisites:

CS101 or an equivalent basic UG course on programming is a prerequisite. Also, it helps to have some knowledge of Microprocessor/Computer architecture in general (basic level) for the second half of the course.

Future Applications of this Course:

This is a standalone course and no course in the Electrical Department logically follows this. However, it is an extremely useful course for people who aren’t doing a minor in Computer Science.

TextBooks/ References:

Following textbooks were used as reference for this course

  1. Sartaj Sahni – Good book for data structures and algorithms
  2. Silberschatz, Galvin, Gagne – For OS concepts (used rarely, the slides were usually sufficient)
  3. Advanced Linux Programming – An online book, very helpful for concepts like processes, threads, synchronization etc

In addition, a lot of slides were used for parts like data structures, algorithms, OS concepts, parallel programming etc.

Software Used:

Any programming language which the student is familiar with (C++, Java, Python etc ) could be used for solving the assignments. A version control software like Mercurial was suggested for the course project. A new software called CUDA, Nvidia’s GPU programming interface was introduced for which a workshop was.

All operating system concepts were covered with reference to Linux . Hence, it helps to have working knowledge of Linux.

Follow-up Courses:

Any advanced communication systems course

Review by – Abhishek Bhowmick (abhowmick22@gmail.com)