Computer Science Minor (Review 1)

Written by Shubham Kar, B.Tech 3rd year (July 2021)

CS minor is a great minor to take alongside the EE program, especially if you are interested in learning a little bit of out-worldly knowledge of the CS program without actually foregoing your main interest in EE( which I hope is true:) ). It helps even more if you are curious about the junction at which EE and the CS disciplines interact but are more interested in the hardware aspect of the device. It even helps if you are more interested in CS than EE but can’t afford a branch change. The minor helps bridge the gap in critical and analytical thinking needed for programming and understanding concepts like software stacks which many EE students find difficult to grasp. The following article helps you in choosing the appropriate path for completing your CS minor and also helps identify the synergy some of these minor courses may have with other electives offered by both the departments.

Courses offered in the CS minor need to cover a vast material and therefore, most of them are introductory courses to the corresponding areas of study. They are namely Logic for CS (or Automata theory), Data Structures and Algorithms, Design and Analysis of Algorithms, Operating Systems, Computer Networks and Introduction to Machine Learning. I would suggest starting out with either Data Structures and Algorithms or Intro to Machine Learning. This is because in case you don’t want to pursue the CS minor in the future and just want a taste of it, these preliminary courses can really help you get a better view of the minor in general. Also, the other courses (barring Automata theory) typically have the prerequisite of Data Structures and Algorithms. So, the sooner you complete the DSA minor course, the more freedom you get in choosing your minor courses.

Next, I would suggest doing the Design and Analysis of Algorithms or the Operating Systems course. These courses are really helpful in gaining a new perspective about the working of a simple computer program which will be difficult to get in a traditional EE course. This would further improve your critical and analytical thinking skills.

Lastly, you can try out the Networks or the Automata Theory course. I suggest you do these courses at the last primarily because these may not appeal to every student’s interests. However, feel free to swap these out for the previous two courses suggested.

For students whose interests lie in digital electronics and the like, Operating Systems would really help in getting a more holistic view of the job a processor does on the whole and I would suggest doing that minor after doing either a microelectronics or a computer architecture elective for the gaining utmost insight. Machine learning is a lucrative course for students whose interests are more into AI and this serves as a prerequisite for other great ML courses offered by CS and EE departments alike as electives. Networks is a great course if you are interested a great deal in communication devices as it acts as a superb supplement for other communication courses offered by the EE department. The Algorithms courses are critical prerequisite courses and may also help you in increasing your analytical thinking ability.

Lastly, keep in mind that all of these courses act as introductory courses of sorts and are meant to encourage learning the same on your own if interested as there is simply no substitute for self-learning.