Skip to main content

Top Skills to Master in the Age of AI

AI is finding it's way in  a wide variety of applications pertaining to  almost every industry. This AI driven rapidly evolving landscape has created a demand for a unique blend of technical, creative, and interpersonal skills highly sought-after by employers. Listed below are some specialized AI-related skills that are becoming increasingly valuable in the modern times. 1. AI Models Development Understanding how AI and ML work including the underlying algorithms, and learning to develop ML powered apps using tools like TensorFlow or PyTorch is a highly desirable skill to master in the age of AI. Furthermore, the skills in fine-tuning and adapting large pre-trained models (like GPT, BERT, or Vision Transformers) to specific use cases are also useful, allowing you to create specialized applications without starting from scratch. Leveraging pre-trained models and adapting them to new tasks with limited data is particularly useful in NLP and computer vision. 2. AI Models Deployme...

How to Plan your Courses in OMSCS Program from Georgia Tech

How to Plan your Courses in OMSCS Program from Georgia Tech

Online Master of Science in Computer Science (OMSCS) students often ask questions on different forums related to planning the courses for their chosen specialization track. In my opinion, planning the suitable set of courses in perfect order can help to: ensure your success in OMSCS, enhance the learning experience, ensure a smooth study-life-work balance. In this blog post, I will provide some general tips and guidelines to assist you while you are planning your courses during OMSCS. 

Note: Although, the tips provided in the post are specifically for OMSCS students, they may be applicable for any Masters program in general. 

As an example, assuming that you takes 2 courses in 1st term of OMSCS under following scenario:

  • You have little prior knowledge in both subjects.
  • Both the courses have a higher difficulty rating / workload (as per OMSCentral).
  • None of the courses fulfills core requirements of your chosen specialization.
In such a probable scenario, you may: have difficulty in current term, not be able to learn maximum, add pressure on yourself for future terms. 

To help OMSCS students in planning their courses, this post will aim to address the questions such as:

  1. Which courses should i take in a particular term (first or last term)?
  2. What is the best order or sequence of courses?
  3. What is the best combination of courses in one term?

INTRODUCTION TO OMSCS

Online Master of Science in Computer Science (OMSCS) from Georgia Institute of Technology, USA pioneered a revolution in higher education by extending access to quality learning beyond traditional class room environment, using the power of Massive Open Online Course (MOOC) technology. It is like a dream come true for students like me, who have the capability to attain a top notch degree, but have many financial, domestic and organizational barriers to physically attend the campus. In many ways, OMSCS is better than on-campus counterpart in meeting the desired learning outcomes, due to its asynchronous nature and inherent flexibility.

OMSCS COURSES

OMSCS curriculum includes a long list of premium quality courses. The list keeps growing, since the start of OMSCS in 2014. In fact, as i looked at the current list of courses to write this post, i wished that if i get another chance, i will take some of the newly added courses. The courses cover almost every domain of computer science. Therefore, whichever domain you are interested in, you may find some amazing courses directly related to your domain. Currently, as of 2020, OMSCS has only a full course-work based option with 4 specializations

DEGREE REQUIREMENTS

The OMSCS degree requires it's students to complete 30 credit hours, which is equal to 10 courses. To complete the degree requirements in order to graduate, students must declare one specialization, meet the requirements of that specialization, and meet all other degree requirements

OMSCS students are required to complete a foundational coursework requirement of 2 courses with a grade of B or better within first 12 months. Foundational courses are marked with an asterisk on this link. Starting from Fall 2018, a student may take maximum number of: 6 credit hours in Fall or Spring term (two courses), 3 credit hours in Summer term (one course). However, students may request permission to take 3 courses in Fall or Spring and 2 courses in Summer. The courses can be registered before the start of term using oscar, after the registration window opens and time tickets are issued.

OMSCentral

omscentral.com is a very useful resource which contains reviews of all the courses offered in OMSCS along with the workload and difficulty rating. It is recommended to be a very helpful and accurate resource by many past and current OMSCS students. 

Planning the suitable set of courses in perfect order can help to: ensure your success in OMSCS, enhance the learning experience, ensure a smooth study-life-work balance

MY COURSE PLAN IN OMSCS

I joined OMSCS in August 2016 (Fall 16 term), and graduated exactly after 2 years in August 2018 (Summer 18 term), maintaining a GPA of 4.0, with a specialization in Computing Systems. I had a full-time 9-5 job in a government organization, which has strict timings and discipline, and a family of 2 school going kids. I completed my Bachelors in Avionics Engineering back in 2005, which was 11 years prior to starting OMSCS in 2016. Before being admitted to OMSCS program, I had no formal Computer Science education, except that I took few online courses on edx and Coursera and I was maintaining a software product in my organization. You can view the details of my profile and my background at my LinkedIn profile. The reason I have mentioned all the detail above is because this information was important for me in planning my courses during OMSCS, which I will explain next. The list and the order of courses I took in OMSCS is shown in table below:

Term # 1
Fall 2016
1. CS-6250 Computer Networks


2. CS-6300 Software Development Process

Term # 2
Spring 2017
3. CS-6310 Software Architecture and Design


4. CS-6340 Software Analysis and Test

Term # 3
Summer 2017
5. CS-6750 Human-Computer Interaction

Term # 4
Fall 2017
6. CS-6035 Introduction To Information Security


7. CS-7637 Knowledge-Based Artificial Intelligence

Term # 5
Spring 2018
8. CS-8803 Graduate Algorithms

Term # 6
Summer 2018
9. CS-6200 Introduction to Operating Systems


10. CS-6263 Intro to Cyber Physical Systems Security

Note: CS-8803 Graduate Algorithms is now renamed to CS-6515 Intro to Graduate Algorithms.

I took 'CS-6250 Computer Networks' and 'CS-6300 Software Development Process' in the first term (Fall 2016) for the following reasons:

  • Both courses covered the core courses requirement (3 courses or 9 hours) for my planned specialization track. After completing these courses, I was only left to do 'CS-6515 Introduction to Graduate Algorithms' to completely fulfill the afore-said requirement. This provided me more flexibility in all future terms, as I had the option to choose from a large set of remaining courses.
  • Both courses had a difficulty rating of less than 2.5 out of 5 as per OMSCentral.
  • The content and lectures of both the courses were open on Udacity. Since I had more time before the first term as compared to between two terms, I was able to watch all the lectures in advance to get familiar with the content and make myself comfortable at the beginning of term. Specifically to prepare myself for 'CS-6250 Computer Networks', I went through a lot of online study material ahead of time, since the topics in the course were relatively new for me.
  • 'CS-6300 Software Development Process' was perfectly aligned with my career goals and future plans. Moreover, I had some prior knowledge and practical experience related to the topics covered in the course. I was already familiar with developing android applications, and software development in general. I had some of the tools or environment required for course assignments / projects, already setup on my computer. I consider this course to be one of the best courses in OMSCS, taught by one of my favorite instructors.
At the end of first term, I was able to learn maximum and obtained a perfect grade in both courses. Moreover, I got a fair idea regarding the workload of OMSCS courses to drive my future plan of taking 02 courses per term. Based on my experience with 'CS-6300 Software Development Processin first term, I decided to take 'CS-6310 Software Architecture and Design' and 'CS-6340 Software Analysis and Test' in the second term (Spring 2017). Both the courses were perfectly related to the subject of my interest i.e. 'Software Engineering', and I wanted to get a deep understanding of both subjects. Moreover both the courses were included in the electives requirement (3 courses or 9 hours) for my planned specialization track.

It is worth mentioning that my estimate regarding the workload and difficulty involved in both courses went a little wrong. Based on my prior knowledge, I approximated 'CS-6340 Software Analysis and Test' to be relatively less demanding for me. However, the content as well as the assessments in the course were difficult and exacting. During the course, I realized that my previous knowledge on the subject was pretty high level, whereas, the course actually included deep level content related to the design of techniques in software analysis / testing / debugging. Similarly, 'CS-6310 Software Architecture and Design' included in-depth material related to software design and a project involving web development, which were relatively difficult topics for me. Despite the fact that this was the most challenging term for me, I was finally able to get a perfect grade in both courses, and also got a little relieved since I had already covered much of the requirements for my specialization track.

Based on my experience in second term, i decided to take a course with less Maths and less programming in the short Summer term. Moreover, I wanted to take a course which has less workload, which has interesting topics and which is popular amongst students. Therefore, in the third term (Summer 2017), I took 'CS-6750 Human-Computer Interaction', which is one of the best courses offered in OMSCS, taught by another of my favorite instructors.

I decided to take a relatively less difficult course as my last remaining elective, so in the fourth term (Fall 2017), I took 'CS-6035 Introduction To Information Security', coupled with 'CS-7637 Knowledge-Based Artificial Intelligence', which seemed an interesting choice to me. In the fifth term (Spring 2018), I took 'CS-8803 Graduate Algorithms' only, which did not disappoint me in terms of difficulty, and which was the last remaining core course in my planned specialization track. In my last sixth term (Summer 2018), I took my last 2 courses after special permission, including 'CS-6200 Introduction to Operating Systems' coupled with 'CS-6263 Intro to Cyber Physical Systems Security'. 'CS-6263 Intro to Cyber Physical Systems Security' was relatively easy, however, 'CS-6200 Introduction to Operating Systems' involved a lot of workload. At the culmination of my degree, I realized that i could have taken 'CS-6263 Intro to Cyber Physical Systems Security' coupled with 'CS-8803 Graduate Algorithms' in Spring 2018 term, so that I could have given more time to 'CS-6200 Introduction to Operating Systems' in Summer 2018 term. 

GENERAL TIPS

Deciding your course plan in OMSCS depends upon multiple factors including: interest in a particular subject, future career goals, prior knowledge in the subject, chosen specialization track, current phase of degree i.e. first or last term, work or family commitments and difficulty / workload of the course as per OMSCentral. 

Based on my experience and the tips shared by other students, provided below are few general guidelines for planning your courses in OMSCS:

  • You can plan to start slow with 1 course in your first term, especially if you have been away from school since a long time, you have a non-CS background and / or your have a lot of work or family commitments. Based on your experience in first term, you can adjust your plan accordingly to take 2 courses per term in future. 
  • Based on my experience, it is recommended to take 2 courses every term, taking both easy courses or coupling one easy course with a difficult one. I think that taking 2 courses in a term is easily manageable for a student having some CS background and reasonable work / family commitments. The difficulty level of a course may be estimated by ratings / reviews from OMSCentral, course syllabus and / or your prior knowledge in the subject. As a general guideline, you may couple 2 courses having difficulty ratings of < 2.7 and > 3.0 respectively. This is also helpful if you want to finish your degree as early as possible in minimum terms due to limited budget or some other reason such as pursuing some career goal just after OMSCS. As an example, you can take:
  • While you are planning your courses, consider the OMSCS degree requirements and the requirements for your chosen specialization track. You are required to complete a foundational coursework requirement of 2 courses with a grade of B or better within first 12 months. Moreover, you need to choose and plan your courses based on your specialization right from the start, although you do not need to declare your specialization in the beginning. You may create a stressful situation for yourself, if you come to know near the end of your degree that you have some core courses remaining to meet the specialization requirements. As a general guideline, you may pick the core courses from your specialization track in the first term, also considering the advice mentioned in first two points above. As an example, consider my course plan explained above and the courses taken by me in first term.

  • In the first term, take one or two foundational and core courses, which are easy as well as interesting, so that you get motivated and enthusiastic for future terms. For the first term, prefer those courses for which: you have some background knowledge / experience, you have pre-installed tools in your computer, you can watch video lectures in advance on Udacity using your non-GT account. The difficult courses with heavy workload, such as 'CS-8803-O08 Compilers - Theory and Practice', 'CSE-6250 Big Data for Health Informatics' or 'CS-6515 Intro to Graduate Algorithms', may be taken in the middle terms (after the first term and before the last term). Leave the easy and open elective courses for the last two terms of your degree, because you may want to be relieved in the later part after going through the difficult courses.
  • While planning your courses, keep in mind that you may not be able to register for a course of your choice due to limited seats. Therefore, keep some flexibility and have some alternate course in your mind which has some seats available.   

CONCLUSION

OMSCS is one of the largest computer science degree programs in the world, offering premium quality courses taught by top-notch faculty. To succeed in the program, you have to make consistent and dedicated efforts. If you consider the tips provided above, it can complement your efforts to help you to achieve your goal of earning a top quality degree from one of the best institutes in the world. 

USEFUL LINKS

Comments