10 min readSo you want to apply to the Georgia Tech OMSCS program

So you want to apply to the Georgia Tech OMSCS program

May I be the first to congratulate you on applying to the Georgia Tech OMSCS program!

Take it from someone like me, applying to OMSCS is probably one of the most mentally taxing moments of my life, and I'm sure it will be no different for you.

Did I want to return to the hell known as university education?

Well, I do love learning, that's for sure. So let's go ahead and talk about if this program is really for you.

I wrote the following article with Non-CS undergraduates in mind.

If you happen to have a CS degree or CS-related degree, as long as you meet the minimum requirements and explain away any weakness in your GPA, you should be fine.

Why do you want to apply

This will be the most critical question you'll have to answer.

Getting into the program is more straightforward than actually being in the program.

As many have pointed out, you will need an internal burning fire in your belly to keep going in the program.

As someone who just started, I can tell you that working full-time while also being a part-time student is still quite stressful.

What keeps me going are two things.

The first is that when I was a high schooler, I always wanted to be an alumnus of Georgia Tech.

The second and most important reason for joining is that I enjoy learning new things. I could not pass up the opportunity to learn from Georgia Tech for a fraction of the cost of other universities, including those close to me at home.

To survive, nay, to thrive in this program, you will need to find your purpose. Many classes require every waking moment to pass the course, and the mentality of "Just Cause" may not be enough to get you going.

What's your reason for joining

You will have to find your reasons for joining, but here are some that may help you if you get accepted:

  • Getting a CS master's degree from a prestigious school
  • Learning new skills
  • Moving to the United States
  • Wanting to change direction in job opportunities

These are all excellent choices for wanting to apply for Georgia Tech, although I noticed that past students who struggled to find purpose in the program were also the ones most likely to declare to others that they are dropping out.

Wanting to move into the United States

So this is a tough one.

Due to how the program works, you will technically be a part-time student.

The school will provide no student visas if you are an international student. Meaning you will be residing in your country throughout the program.

If you graduate from Georgia Tech in the OMSCS program, employers will have to go through extra hoops to get a working visa for you if you intend to work in the United States after the program.

I have heard that once you have applied to the OMSCS program, you may have the opportunity to transfer to the on-campus program, but your mileage may vary.

What do you need to do to improve your chances of getting in

So Georgia Tech prides itself in the philosophy of letting anyone in and allowing the process of graduating to weed out the weak.

Georgia Tech's classes will separate the wheat from the chaff.

Even when following Georgia Tech's OMSCS application guidelines, there are still things you can do to prepare yourself to improve your chances of getting in and of success in the program.

What do other CS master programs expect of you

Many masters of CS programs expect you to come in with particular college-accredited CS courses.

Look at the CS master's program at Oregon university.

It's a great program, and they require proof that you take specific CS courses.

These courses include documented knowledge of:

  • principles of computer organization and operating systems
  • programming languages
  • program development and analysis
  • data structures and algorithm analysis

If you don't hold an undergraduate degree in CS, you will likely not have any of these courses under your belt.

I'm trying to show that many CS Master's programs require course credits in CS programs, whereas the Georgia Tech OMSCS program does not, or rather, they ask that you show serious effort in learning them on your own.

One thing you may do is apply to community college and apply for some CS courses.

I recommend taking Udacity/EdX courses and applying for equivalent nano-degrees. It's easier, and you can do it online.

Lastly, Georgia Tech OMSCS also provides an article about preparing yourself for the program if you don't have a CS degree take the web article to heart.

Principles of computer organizations and operating systems

So the reason to take courses in computer organizations and operating systems is that some classes will expect that you know these things before taking them.

Courses include:

Yes, even a course like Graduate Artificial Intelligence will expect you to know your way around a computer, such as setting up Jupiter Notebooks, working with Github, and getting python working on your operating system.

Programming systems

This is a no-brainer. All your CS courses will involve programming.

None will help you learn the programming language required for passing your courses.

The three languages you should expect from any Georgia Tech CS class will be Python, C/C++, & Java.

If you start a class without knowing the programming language, you are expected to learn the language within the week.

My recommendation is to learn python if you are going the Data Science or Interactive Intelligence route. Learn C/C++ if you decide to do the Computing Systems route. Pick Java if it's the only choice when taking Udacity or at your local community college.

Program development and analysis

All that programming development means is that you have a process when developing applications or your project.

The primary development process would be analyzing, designing, coding, debugging/testing, and implementing your code project.

Some courses will give you debugging programs and code templates when handing you assignments/projects.

However, it would be best if you were going into every class, assuming you'll have to create your own debugging/testing suite and create your application from scratch for your project submissions.

No one will help as you are expected to have this skill already.

You will have difficulty passing your classes if you don't know how to set up testing, even manual testing.

Just get your hands dirty on starting from an idea to something that is production ready.

I recommend creating a simple RESTful blogging website with minimal testing suites.

This is the programmer's equivalent of "If you can dodge traffic, you can dodge a ball".

Next, learn to use Git and Github. The school uses the enterprise version of Github.

Lastly, get your website running inside of Vagrant or Docker.

Your classes may provide your coding environment inside one of these programs. You must waste zero time learning docker or vagrant when starting your course.

Some classes may provide docker or vagrant. You must understand how to use these programming tools in your development process.

Data structures and algorithm analysis

Data Structures is everyone's favorite CS topic.

Every CS class you may take will require that you know how to implement data structures and test you on algorithm analysis.

Algorithm analysis would be things like Big(O) notations. How fast does your program run, and how much space does it take on your computer?

Data structures would be things such as:

  • Hash Maps
  • Single Linked List
  • Doubly Linked List
  • Arrays
  • Queues
  • Graphs

If you have to pay for a CS course, ensure its data structures. I repeat, knowing data structures will save your life.

If the program requires a lot from students, why is it known to be easier to get into than other programs

Simply put, Georgia Tech has the philosophy of letting in anyone and letting the process separate the wheat from the chaff.

Doctor David Joyner has extensive knowledge on why people drop out.

In Doctor David Joyners own words, students who drop out cannot meet the program's foundational requirements.

The reason for opening the doors is simply the opportunity that the price affords many people and the benefits of graduating with the degree.

The idea is that if the system can let in ten unqualified students for the chance of letting even one incapable student on paper (with the determination and capability) have the opportunity to pass, then the system should let all of them through.

It is better to let in ten unqualified students than to deny even one student who may seem incapable on paper but is 100% qualified in spirit.

Doctor David Joyner's analysis stipulates that the spirit of the student's determination to graduate dictates the probability of whether or not a student graduates. If a student meets the minimum requirements and has the resolution to graduate, they will most likely graduate.

The issue arises if the student does not have mastery over the minimum requirements such as programming language, data structures, or programming development skills.

In essence, even if a student is unqualified, the average incapable student will only lose out on $1600 to figure out if the program is not for them, which would, on average, not put anyone into debt compared to a program that charges $50,000.

I believe that everyone can pass this program; it requires proper tackling of pre-requisites.

If you have doubts about strengthening your application, look at this thread by Doctor David Joyner.

Are there any secrets to getting into the program

Sadly, there are no secret ways of getting into the program.

Georgia Tech's OMSCS program is one of the easiest to get into. All they ask of you is to respect their requirements.

Again do not conflate "easy admission process" with "easy program." It is still a challenging program to go through.

The idea is to show the school that you understand this program is challenging and that you are prepared to tackle many, if not all, their courses.

In your resume, explain why you can handle the program without lying. Be honest with yourself.

If the school does not accept you at your current level, it simply means that based on their experience, students with similar qualifications as yours were not able to graduate.

Tell them the areas you are weak in and what you are doing to alleviate that. Better yet, show proof, such as an online certificate that shows you are attempting to remedy any of your weaknesses.

Explain the courses you are interested in and your skills that better position you to pass the class.

Show off any of your projects that display the skills and tools needed to graduate from this program.

Make sure your recommendation letter talks about your skills related to Computer Science.

If you cannot find anyone to explain or discuss your CS skills in depth, then have that person talk about your character. Are you reliable, dependable, honest, and hard-working? These characteristics determine whether you'll pass or fail, given that you meet the CS requirements.

Again, remember that students determined to graduate at all costs tend to be those who graduate, given that they meet the minimum requirements.

Lastly, don't give up. Many students take a few tries before getting in. Every failure is an opportunity for growth; one day, you'll look back, thankful you never gave up.

Stay hungry, stay foolish.

Hello! I'm just a person who wants to help others on their programming journey.

Godot Tutorials

Student