As more opportunities open up in computer science (CS), information technology, computer engineering, and related fields, more students from diverse backgrounds are showing an interest in pursuing a higher degree like MS or MSc in computer science (and related subjects). But a student who has not studied the core subjects of computer science at undergraduate level may find the postgraduate or graduate level courses more challenging. Undoubtedly, the knowledge gained in undergraduate level courses (BS or BSc level) in CS-related subjects will be advantageous in any higher level degree course.
Does it mean that a student from non-CS background can’t study CS at higher levels? No, that’s not true. Recognizing the need for skill and knowledge from diverse backgrounds in the fields of artificial intelligence (AI), deep learning, machine learning, data science, robotics, etc, universities across the world have opened up their CS courses for non-CS students as well. The only requirement is that the student from a non-CS background must do a bridge course that will enable her to be on par with students from CS background. The credits earned in a bridge course may not count towards the masters degree. So the purpose of a bridge course is only to fill the gaps in knowledge that a student may have while pursuing a masters level degree.
Who will require a bridge course? As I mentioned earlier, a student from a non-CS background will require a bridge course. But what will she study in the bridge course? Well, that depends on the previous background and what she wants to study. So the bridge is between the known and the unknown. A bridge course will typically cover one of these deficiencies:
1) lack of computer skills
2) lack of math skills
3) lack of stats skills
So a student with engineering (electrical, electronics, mechanical, civil, chemical, etc) background may require a bridge course that prepares them for programming and algorithms. Similarly, a student from math or stats background may also require a bridge course for programming techniques. A student from CS background on the other hand, may require a bridge course in stats and maths, especially if she plans to study data science.
Can you do an online course instead of a bridge course? A few universities may permit that. But that has to be checked with each university. Its best, however, to do the bridge course from the same university as such a course will be time-bound, more disciplined and you will have access to the faculty on the campus to solve any difficulties.
So what are the topics a non-CS major should study if she plans to take up a CS-related course? The contents of the bridge course will be decided by the university but the following are the most common topics:
- Programming in at least one of these programming languages: C. C++, Python, Java. Practical knowledge of programming on a modern IDE (interpreter/compiler) is a must.
- Object-oriented programming concepts
- Algorithmic problem solving
- Algorithms: sorting (bubble sort, quick sort,merge sort, radix sort), searching (binary search), insert, update, delete, Gaussian elimination, algorithmic complexity – Big-O notation.
- Data structures – array, string, linked list, tree, binary search tree, queue
- Mathematics – discrete math, mathematical induction, graph theory, probability, counting theory, logic and proofs, calculus, linear algebra
- Statistics – atleast at the level of first year under-graduate level, descriptive statistics, probability theory, regression modeling,
- Fundamentals of computer organization and operating systems (OS) – structure of a computer, von Neumann architecture, concepts of thread, process and program, difference between process and program, services offered by an OS, memory management by OS, peripherals management by an OS, process management by an OS, security features, parallel processing, models of parallel processing, RAID, I/O device management, Practical knowledge of one OS- preferably Unix/Linux
- Digital logic (also labelled as digital circuits or digital electronics) – study the digital circuits as a black box. This includes Boolean algebra, number systems, logic gates (AND, OR, NOT, etc), simplification of boolean expressions, Karnaugh maps, sequential and combinational circuits, registers, adder, subtractor, multiplexer, A/D and D/A converter, counters.
- Basics of networking – types of networks, network addressing techniques, IPv4 and IPv6 addresses, OSI reference model, TCP/IP protocol
- Software development process
- Computer architecture – basics of microprocessors, how data moves within a computer, cache, register, instruction set
- Systems Programming, compiler and interpreter, how programs work
If you are from a non-CS related background and starting a CS course, what topics do you study in your bridge course? How much did online MOOCs and online courses help you in this? What advice will you give to someone from a non-CS background who is about to embark on a journey into gradate level data science, business analytics or CS course? Please share your thoughts and experiences in the comment box below.