For CS Freshman: How to not regret your CS degree

  1. Building your CS Degree Plan
  2. Finding your passion
  3. The Different Degree Pathways for Career Outcomes
  4. The Core Requirements for CS
  5. Building your own plan
  6. What junior design options to pick
  7. Taking advantage of non-degree related opportunities at Georgia Tech
  8. How to connect with professors
  9. Planning clubs to join

In this section, we will discuss the common career paths that computer science graduates pursue and the thread combinations, and important classes, you can take to prepare yourself for your career path the best. We will also discuss scheduling classes and resources on how to schedule efficiently.

Planning your degree means knowing what sort of outcomes you would like from your degree. Even if you do not know what kind of career you desire just yet, it is important to have an idea of the common Computer Science career trajectories you can pursue with a GeorgiaTech.

Job TitlesDescription of JobAdditional Comments
Software Developer (Frontend, Backend, System, User Interface/User Experience)This position is one of the most common positions for computer science majors to pursue. 

They take requirements and implement them, often to build features within software or software systems themselves.
Almost all industries usually have openings for software developers as it is industry-agnostic. It is applicable for almost all computer science students, and the difficulty of this region is generally acceptable.

You can also see that we mentioned a lot of different versions of the role within the brackets, and each one is quite different to each other but they often work together to achieve the same goal, which is to fulfill requirements whether it be design requirements or system requirements.
Data Science and Analytics Data Analysts often find ways to use data to solve business problems and work with displaying this information in a digestible way to business folks. They often use visualization tools such as Tableau and languages such as SQL or R. 

Meanwhile, data scientists often used advanced techniques and algorithms to build predictions.
If you are a data driven person, this is the region for you. To be specific, if you enjoy tasks that involve collecting, filtering, mining, and analyzing data. 
Cybersecurity EngineerCybersecurity involves preventing and resolving attacks under the modern computing network system.This is a narrow but specific field, and often bigger companies with a lot of stake in maintaining security provide positions for this role. The skills within this field are not highly transferable to the other careers mentioned here. This is not to discourage you from pursuing this field, as it is highly rewarding! 
Artificial Intelligence & Machine Learning Engineer Computationally heavy tasks involving using Machine Learning, Deep Learning and Computer Vision to automate, modulize, and encapsulate programming processes.Popular and promising field in modern computer science, and currently relevant. Oftentimes, a Masters is a requirement for positions in this field. 

Now, based on the career paths you chose, you can use Georgia Tech’s course resources as a powerful tool. 

  • If you are certain on your career paths: Here  is a rather helpful link that comprehensively displays the threads options and their corresponding degree requirements and elective options! 
  • If you’re not sure yet, don’t worry — the following list shows courses that bridge different topics and career paths in computer science. Here UI/UX/HCI refers to User Interface/User Experience/ Human Centered Computing and these are common acronyms used in Computer Science.

Software Development / Systems Algorithms / Data Science / AI UI / UX / HCI

  • CS 1331 – Introduction to Object Oriented Programming
    Introduction to techniques and methods of object-oriented programming such an encapsulation, inheritance, and polymorphism. Emphasis on software development and individual programming skills.
  • CS 2340 – Objects and Design
    Object-oriented programming methods for dealing with large programs. Focus on quality processes, effective debugging techniques, and testing to assure a quality product.
  • CS 3210 – Design of Operating Systems
    Operating systems concepts, including multi-threading, scheduling, synchronization, communication, and access control. Projects will cover design and implementation of several operating systems components.
  • CS 3510 – Design and Analysis of Algorithms
    Basic techniques of design and analysis of efficient algorithms for standard computational problems. NP-Completeness.
  • CS 3600 – Introduction to Artificial Intelligence
    An introduction to artificial intelligence and machine learning. Topics include intelligent system design methodologies, search and problem solving, supervised and reinforced learning.
  • CS 4245 – Introduction to Data Mining and Analysis
    Computational techniques for analysis of large, complex datasets, covering fundamental aspects as well as modern data mining and analysis techniques.
  • CS 3750 – Human Computer Interface Design and Evaluation
    Human computer interface is considered in terms of user-system compatibility. Concepts in human factors and interface design are covered in relation to capabilities of both humans and computers.
  • CS 3751 – Introduction to User Interface Design
    Describes the characteristics of interaction between humans and computers and demonstrates techniques for the design and evaluation of user interfaces and computational systems.
  • CS 3790 – Introduction to Cognitive Science Multidisciplinary perspectives on cognitive science. Interdisciplinary approaches to issues in cognition, including memory, language, problem solving, learning, perception, and action.

In general, for thread combinations that help you prepare the best for a certain career:

Job TitleThread Combinations
Software Engineering Systems & Architecture + Information Internetworks
You will learn how computers and networks actually work in both low level and high level applications. You gain skills in building, optimizing, and maintaining large-scale, distributed, and reliable systems.

Systems & Architecture + Theory
This is ideal for students who want a strong foundational and performance-oriented focus. You will learn efficient algorithms, languages, and compilers while understanding scalability and optimization.

Systems & Architecture + People
You will learn how to develop software with the user in mind. You’ll gain a balance of technical depth and human-centered design, useful for roles in product engineering or user-facing applications.
UIUX DesignerPeople + Media
This is the most design heavy combination. The People thread builds understanding of user needs, behavior, and evaluation, while Media illustrates how to use computer programs for creative purposes. However, keep in mind that a lot of Media classes are discontinued and it seems more like a Videogame design thread than it does its provided purpose.
Data Scientist or AnalystInformation Internetworks + Intelligence
This thread combination will enable you to perform practical data analysis and large-scale data management. You’ll build skills in handling and transforming data while applying ML techniques to real-world problems.
Cybersecurity EngineeringAny thread with Cybersecurity and Privacy thread. Though, it is recommended to take Information Internetworks or Systems and Architecture, or People for a more human centered approach to cybersecurity.
Artificial Intelligence or Machine Learning Engineering Any thread with Intelligence should generally prepare you well for such a career, however it is also vital to keep in mind that Intelligence is often not a solid enough prerequisite for most companies to pursue this role, and most companies require a Masters degree.

For the first two years of studying, one needs to take classes to fulfill the Core Requirement, which is not directly related to your Computer Science career. However, it is important to understand the overview of the Core Requirement and the general idea of the suggested timeline. 

Below is an intuitive demonstration of the overview of the Core Requirement:

A more comprehensive demonstration:

https://catalog.gatech.edu/academics/undergraduate/core-curriculum/

Understanding the timeline of Core Requirement is not difficult. It is suggested to take around 70% to 90% of the Core Requirement for the first two years. This ensures one to take a sufficient amount of credit hour for the first two years while guaranteeing that the latter two years contain some flexible, light, and non-degree related options of courses. 

In addition to Core Requirement, one needs to understand the Major Requirement and suggested timeline to ensure timely graduation. 

Georgia Tech provides Degreework as a detailed course and thread planning platform. It is intuitive and user-friendly.

https://degreeaudit.gatech.edu/

Using Degreework, one could understand the prerequisite of a specific course and elective options, while knowing the credits hours needed to fulfill the major requirement. 

We understand that Degreework is rather detailed and specific, and sometimes it is hard to grasp the general idea of the reasonable and suggested timeline. The following timeline is a suggested timeline as reference that is applicable to more than 90% of the CS students.

Freshman

Sophomore

Junior & Senior

  • CS 1301 – Introduction to Computing. Introduction to computing principles and programming practices with an emphasis on the design, construction and implementation of problem solutions use of software tools.
  • CS 1331 – Introduction to Object Oriented Programming
    Introduction to techniques and methods of object-oriented programming such an encapsulation, inheritance, and polymorphism. Emphasis on software development and individual programming skills.
  • CS 2050. Introduction to Discrete Mathematics for Computer Science. Proof methods, strategy, correctness of algorithms over discrete structures. Induction and recursion. Complexity and order of growth. Number theoretic principles and algorithms. Counting and computability. Credit not allowed for both CS 2050 and CS 2051.
  • CS 1332 – Data Structures and Algorithms for Applications. Computer data structures and algorithms in the context of object-oriented programming. Focus on software development towards applications.
  • CS 2110 – Computer Organization and Programming. An introduction to basic computer hardware, machine language, assembly language, and C programming.
  • CS 2340. Objects and Design. Object-oriented programming methods for dealing with large programs. Focus on quality processes, effective debugging techniques, and testing to assure a quality product.

Optional: Some threads need to take CS3510, for others, it is a helpful and inspiring class.

  • CS 3510 – Design and Analysis of Algorithms Basic techniques of design and analysis of efficient algorithms for standard computational problems. NP-Completeness.

Optional: Info thread need to take CS2200, for others, it is a helpful and inspiring class.

  • CS 2200 – Computer Systems and Networks. A broad exposure to computer system structure and networking including software abstractions in operating systems for orchestrating the usage of the computing resources.

This part is highly flexible and depends on your thread. We provide some typical choices of the most popular threads.

  • CS 3300 – Introduction to Software Engineering. Team-based project class to introduce and apply software engineering principles and practices.
  • CS 3600 – Introduction to Artificial Intelligence
    An introduction to artificial intelligence and machine learning. Topics include intelligent system design methodologies, search and problem solving, supervised and reinforced learning.
  • CS 3251 – Computer Networking I. 3 Credit Hours. Introduction to problems in computer networking, including error recovery, medium access, routing, flow control, and transport. Emphasis on current best practice. Includes programming of networked applications.
  • CS 4400 – Introduction to Database Systems. Comprehensive coverage of mainstream database concepts such as the entity-relationship model, relational databases, query languages, and database design methodology. Includes a project.

If you want a timeline that is specific to a certain thread, use this link and scroll all the way down to get more direct and helpful information.

https://www.cc.gatech.edu/thread-combination-credit-sheets

Junior Design is a part of your degree which you are required to complete, and it is supposed to give you experiences that a traditional college would not provide by itself through projects.

These options are confusing for most of the new students. Instead of browsing over the complex and overwhelming official documents, we suggest reading through this post, which is intuitive and understandable:

Here’s also a guide on the steps for Junior Design options. 

https://create-x.gatech.edu/sites/default/files/files/2022/04/Steps-for-Junior-Design-Capstone-Options.-SP21.docx.pdf

Lastly, if you feel uncertain or you’re confused by the dazzling options, the most conservative and popular option will be Vertically Integrated Projects. Those are simply project based classes that are flexible and intriguing. You can choose your own team from the list and you are able to withdraw from a team and change to a new one under certain conditions. Here’s the link to its official website and you can find all the information of application, team choosing and changing, prerequisite, and timeline.

Home

  1. Plan why you want to talk to that professor
    Networking with professors are important for building research connections and gaining exclusive opportunities. You have to plan your conversation with them in advance so that you can keep your request succinct and get across exactly what you require for them as professors do not have a lot of time.

Whether it be research opportunities within their lab, career or academic advice, you need to have a clear outline of what you hope to gain from that professor and exactly what you want to ask. Make sure to personalize your request in order to build a more meaningful connection, whether that be by mentioning research that they have performed or conferences they have done that pique your interest, find your own way to make that connection personal.

Especially if you are making a bigger request, make sure to market yourself in a way that makes the professor want to provide you with that help. Explain what makes you stand out and why you have a personal stake in it.

  1. Talk to the professor after class or within office hours
    [In your syllabus, your professor may have a preferred method of reaching out. Follow that, and if not mentioned, use this advice.]

    Especially with our current academic environment, our professors are more bombarded with emails than ever. If you share a class with that professor, try to talk to the professor after class or within office hours instead. Moreover, it just looks better if you are willing to go out of your way to meet the professor in person and engage with them.

    If those two options do not work, then try to email or even call if their number is available online. However, keep in mind that reaching professors via emailing may be much harder. Make sure to keep your email short similar to how you would want your request to be short and to the point in person.
  2. Find ways to keep the connection alive
    Even if it turns out that you do not achieve that research opportunity, it is important to find ways to keep the connection alive in case another opportunity does pop up.

    Whether that be more small conversations at the end of class about related interests, or popping into their office hours for a question, keep yourself visible and memorable to the professor if you feel they are important to your journey.
  1. Plan what kind of clubs interest you
    What kind of clubs would you like to join? What kind of clubs would be ones you are willing to put in effort into?

    Having leadership positions in organizations are a great way to signal interest to companies and show teamwork and organizational skills that cannot be gained through classroom experience. So take this time to think about the kind of organizations you would like to be affiliated and spend your time with.
  2. Find the clubs
    For clubs specifically, there is a website that lists all registered student organizations and allows you to filter based on what category of clubs you are looking for (https://gatech.campuslabs.com/engage/organizations) however it also lists organizations that may not be currently running. Be sure to check commonly-used socials such as Instagram to see if their club exists.
  3. Join their events and network with your peers
    Now you are free to join their events and grow a standing within that club that can hopefully turn into something fruitful!

While this is a guide to navigate your journey, this is in no way a rule. Nothing in this guide guarantees success, and not following it certainly does not guarantee failure, but it is just meant to help you get a general idea of how to plan your degree and what the degree can provide you.

Given that this is supposed to a guide to help you and get you thinking, here is a pretty interesting read https://space.ong.ac/escaping-flatland as to why it’s important to start thinking about these things rather than following what you “think” makes a person successful or just following your peer’s footsteps. There are many interesting things you can do with a CS degree that are not related to any of the suggestions we provided.


Comments

Leave a comment