Post

Computer Science Minor @ IITB

My experiences with the CSE minor offered at IIT Bombay

Computer Science Minor @ IITB

A minor at IITB can be either your most fulfilling experience or the most boring. Choose it wisely.

Introduction

IITB allows UG students to add credentials to their degree such as minors and honors. Both involve taking additional courses outside the major and within the major department, respectively. This blog deals with my experiences of completing a minor in the Computer Science and Engineering (CSE) department.

Don’t forget to look over the tips at the end of each section – they might be helpful :)

Motivation

Initially, my motivation for the minor was my strong interest in mathematics and programming, and I undertook my courses appropriately.

I started with a course in Logic. It helped me to get comfortable with the notions of rational thinking and formal mathematics. Subsequently, I took courses related to Algorithms, which enabled me to write efficient programs.

Complementary Nature

As I got further into my minor, I became more fascinated by learning about diverse computer systems such as computer architecture, operating systems and the internet, which are integral to our everyday lives, and I took relevant courses. As an Electrical Engineering (EE) student, it also helped that many CS minor courses complement my core courses and electives pretty well. While EE courses usually deal with “lower-level” concepts, CS courses work with “higher-level” concepts of systems. This helped me to get a different perspective on the same topic compared to my peers.

Examples

CSE course EE course Similarity
CS347M (Operating Systems) EE309 (Microprocessors) Computer System Design
CS224M (Computer Networks) EE341 (Communications Systems) Signal Transmission Protocols
CS228M (Logic for CS) EE224 (Digital Systems) Boolean Algebra (working with 0s & 1s)

A minor which complements your core courses results in higher synergy.

Prerequisites

Do take into account the following before you choose CSE minor or plan your “M” courses.

Interests
The minor is suitable for students with a keen interest in understanding the inner workings of computer systems and algorithms. An appreciation for math is not necessary but highly recommended.
Courses
Some courses such as Advanced Algorithms (CS218M), Databases (CS317M), Operating Systems (CS347M), and Network Security (CS416M) may impose Data Structures and Algorithms (DSA) as a hard prerequisite. But usually, CSE M courses are designed in such a way that they don’t require much foundational knowledge and so, can be taken in any order.

If you are particularly interested in Systems-type courses, complete the DSA course as soon as possible.

CPI
Due to a recent increase in minor seats, maintaining a CPI of 8.5+ will be good enough to get any courses of choice, while students with lesser CPI might have to compromise upon their preferred courses if those choices are popular.

If you have the required interests to pursue a CSE minor, then don’t worry about the possibility of not completing a minor.
Consider the worst case of having an incomplete minor,

  • Firstly, you will be satisfied as you have explored your interests,
  • Secondly, the few “M” courses that you have completed can be incorporated into your major degree by retagging it as Flexible Electives. So, your effort in these courses isn’t wasted as such.

Curriculum Information

The usual CSE core courses are “heavier” in course content and are often accompanied by their respective labs. So, the CSE department provides six credit “M” versions of these core courses, which are tailored to better serve minor students. As these “M” courses always run in slot 5, the designated slot for minor courses, students rarely encounter any slot-specific issues while completing this minor.

As mentioned in section 2.5.1 of the official UG rulebook1, a student is required to complete 30 credits for the award of any minor. The official CSE rulebook2 states that students must do at least 4 CSE M numbered courses. The fifth course can be another CSE M course or any CSE elective course, which is CS4xx or above. An R&D Project (CS 490) can also be taken as the fifth course.

Available “M” Courses

CSE courses can be roughly categorised into three categories: Theory, Systems and Applications.

Theoretical Courses

Focusses on building math/CS foundations with minimal programming (if any)

Course Code Course Name Description
CS207M Discrete Structures Discrete Mathematics Fundamentals for CS
CS213M Data Structures and Algorithms Programming Fundamentals for CS
CS218M Design and Analysis of Algorithms Advanced Algorithms and Complexity notions
CS228M Logic for Computer Science Formalises Logical Problems and Model Verification
CS310M Automata Theory Formalises the notion of a Computer
CS408M Graph Theory Advanced Graph Theory concepts

Systems Courses

Focusses on learning the theory behind working of computers with practical programming

CS224M Computer Networks Internet and the Layers of Communication
CS317M Database and Information Systems Data Storage and Data Management
CS347M Operating Systems Process Handling, Memory Management and Concurrency

Applied Courses

Focusses on applying CS theory to various practical problems

CS409M Introduction to Cryptography The Science of Secrecy using Encryptions
CS416M Computer Network and Security The Science of Secure Protocols via Internet
CS419M/DS303 Introduction to Machine Learning The Science of Learning from Data

Courses being listed here doesn’t ensure that they will be offered as part of the minor program; the CSE department is notorious for frequently changing their set of running minor courses.

Verdict (Perks and Quirks)

Advantages
  • Great Opportunity – Interact and learn from the best CSE professors in the country with courses having nearly identical content compared to CSE students.
  • Long-term Reward – Benefits students to get more internship/placement/research opportunities, especially students from non-EE departments.
Disadvantages
  • More Theory – CSE minor courses mainly focus on the theoretical concepts, and only a few of them delve into programming practice or projects.
  • Less Flexibility – Thanks to the recent influx of professors, there is a sufficient number of Theory or Systems type “M” courses. But there’s still a lack of Applied CSE minor courses. There are many interesting CSE electives but you can only choose one.

If you are more worried about the disadvantages, check out C-MInDS minor, which allows multiple courses from its huge basket of electives.

Words of Wisdom (Insights and Oversights)

Is it a curse?

When someone puts effort into understanding course content, they often develop a deeper appreciation for the subject. This appreciation then motivates them to invest even more effort into their studies, thus creating a positive feedback loop.

An unfortunate scenario arises when students do not dedicate enough effort to the courses, possibly due to progressively involving and abstract course content. Such students may struggle to understand the concepts and solve exam problems, leading to a lack of appreciation for this minor.

Or is it a blessing?

Though, there is a silver lining: the reduced competition in minor courses makes it comparatively easier for people putting in effort to get good grades. Such people can then retag these CSE M courses as a part of their major degree and do even more CSE M courses :)

In this way, I have completed seven CSE M courses of which three are tagged as open electives and four are tagged as CS minor.

Don’t worry about the mentioned elective terminology; it keeps changing for newer batches. For doubts related to retagging, consult your Department’s General Secretary.

Conclusion

Make your decision depending on what you value more. Its main advantages boil down to improvement in math & algorithms skills and computer systems knowledge, while the disadvantages lie in reduced flexibility of courses and less exposure to application-specific courses.

Congrats on reaching the end! I hope you can make the most of your academic journey at IITB.
For more questions, you can either comment down below or reach out to me via any of the platforms mentioned at the bottom of the sidebar.

This post is licensed under CC BY 4.0 by the author.