CS Grad Programs: Courses and Tips - acmutd/help-guide GitHub Wiki

General Tips

  • Make a personal site. I received my first research internship because the app reviewers took the time to look through my personal site and see more information about projects listed on my resume. You can use an easy static site framework like jekyll or Hugo Academic, or build it from scratch if you want to learn some web dev. Regardless, pretty important! Take a look at some examples: 1, 2, 3. They don't need to be too complex or beautiful, if you just want to use a simple bootstrap theme that is ok!

Four Year Plan and Tips

Here was my full four year degree plan. I made this first semester freshman year (with minor modifications along the way), and highly encourage you to do the same. Creating a degree plan will allow you to figure out what semesters could potentially be your most difficult. From the outset, I knew that I wanted the Fall semester of my senior year to be easier so that I could focus on my PhD applications. Therefore, I stacked my junior year with important and difficult classes to demonstrate to graduate admissions committees that I took a decent amount of coursework by the time I had applied.

I will also offer some general tips when selecting your courses. [these are my opinions]

  • Take courses your don't care about at a local community college. For example, history, government, art, perhaps physics. This will make your life easier (and perhaps even cheaper), and will let you take these courses over the summer or winter while you may have less going on.

  • Don't take the easy way out on important courses. Advanced algorithms, machine learning, operating systems, etc. are all taught by subject matter experts at UTD if you choose to or are able to get into their classes. Don't take these courses with professors of instruction (senior lecutrers) or professors which may make them "easier". You'll pay in the long run, as these are the real core courses of your computer science degree.

  • This always holds, but definitely use your friends, ratemyprofessor, and UTDgrades when choosing your professors.

  • Try to get into the CS Computing Scholars Honors Program (CS^2) if you can. Note that you don't have to take every course honors if you don't want. It just opens up a new set of professors for you to choose from, some of which are worse and some of which are better. In addition, you will always have a spot reserved for you in any of these courses, so you don't need to count on courses not filling up. You can try to bridge into the program at the end of each semester. Dr. Page sends out an email to the entire CS dept. with instructions on how to register for the exam. Although you need a certain number of honors courses to graduate with CS^2, graduate courses also fulfill that requirement, and if you aren't doing a double major you may have time to take graduate courses as well (through fast track). Lastly, don't worry if you try and fail to get in, although there are a lot of bright kids in CS^2, there are many more outside of the program who do much more outside of courses.

  • If you are in the Collegium V (CV) honors program, try to always be in good standing so that you have priority registration. This allows you to pretty much always get the schedule that you want. If you are not a part of CV by the time you start your undergrad, I don't think you're able to bridge in like CS^2 (they recently changed this since they can only handle a certain amount of students). Regardless, you will be fine without priority registration, just understand that you may have to shift around your four-year plan a bit as classes fill up.

  • Understand that Professors don't have much leeway in allowing you to enroll in their undergraduate course after it has already been filled up. In contrast, if you join fast track and a graduate course is filled, if you contact the professor teaching the course and demonstrate a passion / excitement for the subject, they will often email the admins to try to get you enrolled. Just something to keep in mind!