Skip to content

Instantly share code, notes, and snippets.

@kartva
Last active May 2, 2025 05:41
Show Gist options
  • Save kartva/30c528420d68869dbcf376cd028fe038 to your computer and use it in GitHub Desktop.
Save kartva/30c528420d68869dbcf376cd028fe038 to your computer and use it in GitHub Desktop.
Optimizing Purdue CS

From Appendix E:

If this document was helpful, comment that. Your comments are valuable signals to future readers. (It's also validating.)

Optimizing Purdue CS

Why am I writing this?

I see a lot of fellow undergraduates make the following mistakes:

  • Take classes they don't enjoy and therefore don't excel at.
  • Take easier or less useful classes.
  • Miss out on opportunities to get ahead like test-outs, independent project work, research, clubs, internships, etc.
  • Simply "exist" in university for four years and come out having not learned much.

Why should you read this?

I started attending Purdue as a Computer Science major and Honors College student in Fall 2023. I'm on track to graduate within 5 semesters (2 1/2 years) with a 4.0 GPA so far, and am generally told by people that I have done things they consider impressive while at Purdue.

This document is a distillation of my experiences which I believe will be helpful for people who are ambitious about what they want to do with their time at Purdue.

Who is this for?

Incoming and current undergraduates majoring in CS at Purdue who want to strengthen / maximize their academic or practical experience.

The earlier you are in your degree, the likelier you are to derive some benefit from this. There is some specific advice for international students as well, but I expect the majority of this document to be useful to everyone.

A Note Before You Read

Do not feel pressured to follow all the advice listed on this guide. While some parts are low-hanging fruit, others may require extraordinary effort to achieve, which may not be possible for everyone due to unique life circumstances. There are many roads to "success" (whatever that is), and this is perhaps one of them.

You are your own person with your own aspirations and goals. Read this, but use only what you think is useful to your journey.

This guide assumes you're self-motivated and eager to study CS. Many decisions recommended below, like testing out of beginner courses and taking graduate courses may cause misery if that is not the case.

See the note at the end for more thoughts on this topic and whether optimizing your academic experience is even something you want or not.


This guide was written based on the 2024-2025 Computer Science, BS degree plan and with current information as of Feb 2025. Future updates to this guide will change this date.

Test-outs and Credits

Before even coming to Purdue, your advisor will likely schedule a meeting with you to introduce themselves and get you registered for your courses.

Ideally you've already looked over the degree plan before your meeting because it will be a significant portion of your life for the next four years.

Here's the gist of it:

  • You need 120 credits to graduate with a bachelors degree.
  • There are some required classes that you must take.
  • Some requirements that must be fulfilled by taking classes from a large list (gen-eds).
  • Take the classes that fulfil the requirements of at least one track (specialization).

Credits from High School

Here's the first bit of useful advice: If you're a high school student reading this, prioritize taking high school exams that can transfer to college credits. AP exams are offered internationally and don't require your school to have partnered with an international board like IB or the A-levels.

Certain exams like the CLEP can be taken while you're at university as well. Further notes on test-outs later in this section.

If you're strategic about your choices, you can very easily rack up 30-50 credits over two or three years in high school. This can directly accelerate your minimum-time-to-graduation from 4 years to 3.5, 3, or even 2.5. (I know someone who graduated this semester in 2 years, but that's a topic for a later section)

Your advisor will likely recommend you enroll in CS 180 (the first class on the CS Core Curriculum), a math class like Calc 1 or 2, two or three classes to satisfy gen-ed, College of Science, or University Core Curriculum requirements.

Have a look at the "Sample 4-Year Plan" present on the Computer Science Catalog page.

This is your first opportunity to get ahead: Your advisor will enroll you for 15-16 credits. Strongly consider enrolling for 18 (the limit of what you can get without special permission). Your advisor will likely tell you that it's not advisable since "Purdue classes can be quite challenging". (They're not wrong!)

You can use BoilerCourses or BoilerGrades to help you pick out an easy additional class.

These additional credits in your first (and easiest!) semester will help you in a few semesters when you're juggling three graduate classes, club activities, research, internship applications/interviews, living off-campus and cooking your own food. (Additionally, taking 18 credits and obtaining a good GPA is a soft pre-requisite to being approved for more than 18 credits in later semesters.)

This guide contains advice to do things that require extra effort or stress you out. Believe in yourself, and know that the only way you find out what you're capable of is by challenging yourself.

The CS 180 Test-out

Start preparing for the CS 180 test-out: This is your next opportunity to get ahead. CS 180 is a pre-requisite for other CS courses on the core track, and most CS electives require these courses as a pre-requisite. Put another way, CS 180 is the one course standing between you and the rest of Purdue CS.

Many undergraduates are surprised to hear that I skipped CS 180 by testing out of it — they didn't know it existed. Prepare for this exam in the summer you have before coming to Purdue. You can jump a whole semester ahead in the CS curriculum by skipping this course. That translates to another semester at the end of your degree in which you can take advanced coursework, collaborate with professors or do other fun stuff.

The CS department recommends you don't do this. I think there's a strong case for doing this if you are confident in your skills and don't think you'll benefit much from the course.

Other Test-outs

Have a look at the Purdue-specific test outs page. This doesn't seem to list all of them, since the COM 114 test-out isn't listed, so be sure to ask your advisor for more. Purdue Math has test outs for Calc 1, 2, 3, and Linear Algebra.

There are also test-outs for language courses which may help you finish the Language and Culture requirement quicker.

Note that you can take most of these test outs at any time while at Purdue, so it's worth checking these out if you have any unfulfilled requirements.

These will allow you to free up your time during the semester to spend it doing more productive things and accelerate your pathway to graduation.

A common counter-point to testing out in your first semester:

Familiar content will help you accumulate to the college environment. Plus, college calculus is quite different!

I've asked people whether Purdue Calc is useful-hard, or useless-hard. That is, does going through its rigor help you learn or just cause unnecessary suffering? The answer is unanimously the latter. While many introductory courses may indeed be useful for learning the ropes or idiosyncrasies of a particular department, you can almost certainly make up for the differences through a few days of self-studying. There are very few cases where re-taking classes you have credit for is a good decision.

You and Your Academic Advisor

You will spend a lot of time interacting with your advisor if you follow the advice in this guide. Here's my core observation from interacting with my advisor and hearing from people about their advisors:

Your advisor, by default, wants you to graduate on-time without risking burnout or a bad GPA. Therefore, by default, they attempt to steer your degree towards that objective.

Their default policy may be sub-optimal for your growth. They may discourage you from taking advanced coursework or too many credits from the fear of your GPA or graduation plan. Their worries are completely valid. Nobody wants you to take too many hard things and burn out. If you're going to override your advisor's caution, make sure you trust yourself to self-regulate.

I recommend switching your advisor from "default policy" mode as soon as possible. Be upfront about your goals, ambitions, and skills with them, and they will help you succeed in the ways you want. If you want to graduate early, tell them that. If you have previous CS experience and you believe you will find coursework easy, tell them that! If you want to do a PhD and are very motivated about a particular topic, tell them that!

Simply put, the more information an advisor has about you, the better they can help you.

Once they know more about you, they can give you amazing information on all sorts of things like: new interesting clubs on campus, tips about good courses and difficult professors, test out programs, programs you can obtain travel funding from (like Learning Beyond the Classroom), etc. Ask your advisor good questions liberally and you might just receive a lot of good information in return.

A lot of your communication with your advisor will happen over email, which leads to me to the next segment:

Writing Emails is a Superpower

A lot of communication in university happens over email. Get used to it.

Asking for an extension on an assignment? Send an email to the teaching assistants or the professor.
Looking for research opportunities? Send an email.
Quick question about whether a class will count towards your degree? An email.
Permission to take a course? Email.
Collaborating with SOGA on a club event? Emai — you get the idea.

I see a few undergraduates seemingly bothered or scared at the idea of having to sit down and compose a well-written and concise email. Emails are your easiest and most convenient tool to solve problems.

I have ended up with at least two internships offers through cold emails. Emails are not only just an academic tool.

Using LLMs to write emails

Don't. People are generally annoyed after reading three paragraphs of generic text. The prompt you put into the LLM is likely a better email than the output.

Example Email Applying for Research

Prof. {Professor's Last Name}, I am a {freshman/sophomore/...} in Computer Science interested in the research opportunity posted at {source}.

I received an A+ in {course related to this field} and created {insert impressive project related to this field}.

I am on-campus until July 26 if you'd prefer meeting in-person.

Attached: Resume, Transcript, {impressive project report}

It is concise. It contains only relevant information. Note the following:

  • Started with immediate context. This is who I am; this is what I want.
  • Justification. This is why you should reply to my email.
  • Call-to-action. This is what I would like you to do.

I find emails written in this style to be effective and respectful of the recipient's time and emotional energy.

The Core CS Curriculum

While at Purdue, you are required to take CS 180, 182, 240, 250, 251 and 252 to graduate. I personally recommend dedicating higher than usual effort towards excelling in these courses, as these grades can act as signals to professors you want to do research with or companies you want to intern at. (Note however that less companies care about GPAs and grades every passing year.)

The Core Curriculum exposes you to both theory (182, 251) and applied tracks (240, 250, 252) in Computer Science. Your experiences and opinions from these courses will likely influence your future course choices and thus your broader career trajectory.

Distinguishing yourself by going above-and-beyond on an assignment in one of these courses is an easy way to create a resume-worthy project.

Taking Exciting Courses

This topic is the real reason I decided to write this guide. Two facts are simultaneously true:

  • There are many interesting and useful courses at Purdue.
  • Undergraduates often miss out on them.

Take advanced electives earlier: Advanced electives often have long pre-requisite chains - you can only take CS 456 (Programming Languages) in the same semester or later as CS 352 (Compilers), which requires you to have taken CS 252. However, if you believe you have the pre-requisite knowledge, you can simply email the professor for permission. Mention why you think you're qualified to take the course, and a professor will quite likely grant it to you.

Take courses in other departments: The ECE and Math departments often have coursework that I would personally consider to be miles more useful than some CS courses offered by the department. Consider minoring in one of these fields for easier access to courses, but you can enroll in these courses even without a minor by asking your advisor. (You may have to obtain permission from advisors from the other departments as well though, so be ready for long email chains)

Take graduate courses: In my opinion, taking graduate courses is one of the highest-impact academic things you can do at Purdue. The CS department releases a list of current and upcoming courses every semester. Scroll to the very bottom to find graduate courses (they start with the 5XX code).

Graduate courses often cover content in greater depth, breadth or speed. You are less likely to be bored in class (though it's still possible). They often feature homework that is more interesting, professors that are more engaged and students that are happier. Note that certain grad courses are reskinned undergrad courses -- not all that glimmers is gold. Exercise wisdom.

Through my time at Purdue, I ended up taking three classes taught by the same professor. The difference between him in a 2XX class and a 5XX class was night-and-day; he was a different man in terms of his excitement about the topic.

These classes also increase your chances at interacting with professors professionally and getting to know them and their research.

Variable-title graduate courses are graduate courses that are experimental and often being taught for the first or second time. They may or may not later be formalized into normal courses. 592 courses are very project-heavy and may not even have exams, while 593 courses are more structured. Take the above advice about graduate courses and amplify it for these courses. The risk of the course turning out badly for you is much higher but it can still be quite rewarding if you end up taking the right course.

These courses tend to be heavy in reading and discussing research papers. You receive insight on seminal papers that would be extraordinarily difficult for an ordinary undergrad to derive on their own.

In summary, taking highly-specific courses can greatly increase the reward you receive from college and nurture specialist interests to differentiate you from other people.

The Case Against Easy Courses

College courses are structured learning environments taught by an expert in the field. They are very good for learning stuff you can't learn on your own. You can take a finite amount of courses during your time at university.

Therefore, consider replacing easy and info-dump-like electives with books, blogs, talks and LLMs. Ask people about whether they think they could've replaced the course with a textbook and make informed decisions.

Hard courses are no mere infodumps. Their assignments will bend your mind to think in new ways; lectures will leave you reeling or laughing; projects and assignments will frustrate and puzzle. These are valuable experiences.

Asking Professors for Research Opportunities

If you're very serious about high-level pure CS research

If you've taken or are taking a graduate course, you can go up to the professor and ask them. Quite often, professors teaching variable-title graduate courses are actively looking for students.

Alternatively, email! Persistently! Make a strong case for your current work and interests and how what areas you might be interested in working in. Professors are far more willing to tailor work to your interests than one might first assume.

Note that professors often expect students to be competent to the proficiency of a student who has taken CS 251 or 252. If you haven't, I recommend supplying alternate qualifications.

There's also a webpage on the Purdue CS website about undergraduate research opportunities, but it's quite outdated and doesn't seem to have been updated in some time.

If your interests lie elsewhere

The CS opportunity mailing list frequently sends out calls for research opportunities from professors. The Honors College has its own newsletter filled with interdisciplinary opportunities. Course-based alternatives like VIP exist.

Many undergraduates also find research opportunities under professors in different fields like Biomedical or Mechanical Engineering or Biology.

A note on Professors of Practice

There are two types of professors in Purdue CS: Professors of Practice and "just" Professors. Professors of Practice include Professors Andres Bejarano, Gustavo Rodriguez-Rivera, and Jeffrey Turkstra. Their main focus is academic instruction. Some of their research focuses on pedagogy - talk to them if you're interested in that niche.


I would strongly emphasize persistence as key to working on meaningful research. The biggest reason undergraduates fail to do anything meaningful with their work is because they stop coming to research meetings, following up with professors, etc.

The next section has some more advice on meeting professors as well.

Talking to Exciting People

A large part of your university experience will be defined by the people you spent it with. Find awesome people to spend it with — everyone grows as a result. Being an undergraduate is likely the last time in your life when meeting people will be so easy and inevitable — full-time work of any sort bites into socialization diversity quite significantly.

Classes

Are a great way to meet people. If you're active and helpful on Piazza or EdStem, a surprisingly large part of the class will automatically respect you and marvel at meeting you in person. Attending lecture can help you find fast friends with whom you can hack on homework with. As you take increasingly specific classes, you will find yourself talking to people who've interned at places you want to work.

CS Departmental Seminars, Colloquiums, Scholarly Talks and Reading Groups

This is surprisingly unknown among undergraduates, considering these events often have free catered food. The CS department has weekly seminars like PurPL, Theory Seminar, and CERIAS. These seminars are invaluable for gaining an awareness of research trends and active questions in the community, along with meeting and interacting with professors.

There are also colloquiums and scholarly talks often delivered by decorated faculty flying in from other universities.

The CS Graduate Student Board has a non-comprehensive list of reading groups usually targeted around a specific area of CS (note however that some of the reading group links are old).

Clubs and Extracurricular Activities

You will likely spend the most structured time (second to lectures and labs) participated in extracurriculars or club activities. There are many awesome CS clubs on campus, and some not-so-awesome ones.

Anecdotally, the clearer a club gives you a path to putting something on your resume, the worse it likely is. (with high-profile exceptions like Boiler Quant)

I recommend that you make it a point to attend callouts or initial meetings for as many clubs as possible.


The following section is entirely anecdotal and thus not as valuable. Feel free to skip.

My experiences at Purdue Hackers have defined my experience at Purdue. Every week, the single-most thing I look forward to is Hack Night. I've grown and done impressive things purely influenced by the culture of technical excellence present at this club. There are many unbelievably competent and passionate people in the Purdue Hackers community and a lot of them are now my friends.

I have also had the pleasure of interacting with people from b01lers, Competitive Programmers Union, Purdue Space Program, and ML@Purdue, all of which are also on-par with the excellence at Purdue Hackers.

Not all CS clubs enforce this standard of excellence though — if you're feeling unsatisfied with the clubs you've been part of so far, I highly recommend giving one of the above a try. Not to say that there aren't more awesome clubs out there; these are just ones I know of. If you think your club is awesome, please let me know and I'll add it here.

A somewhat gimmicky way to express the potential impact that being part of a club can have: a presentation on a project I made for fun at Purdue Hackers eventually resulted in an on-site interview internship offer at Neuralink.

Major Metastrategy

Graduation Timelines

Graduating off-semester: Industry steps-up their recruiting during traditional graduation times, i.e. May/June. Nearly all students accepted for grad school are accepted for the fall. Keep this in mind when planning to graduate off-semester, i.e. December or August.

Graduating early: When I told a professor I planned on finishing my degree in 2.5 years, he recommended I instead stay for longer to build an even stronger application for grad school (and he isn't wrong!). Graduating early can save you (a lot of) money and get you to wherever you want to go faster, but you do sacrifice technical and social maturity. Think about this decision carefully.

Summer Classes

Are an awesome way to use summer break if you don't have internships or research lined up. You can skip boring or tedious gen-ed classes by taking them at either Purdue or another college. Community college classes are often less tedious, more convenient and cheaper than Purdue. Ask your advisor about what credits transfer.

Bonus: you can supplement your incoming college credit with summer classes to push over the threshold of graduating another semester early.

Dual Majoring, Minoring, or Specializing

Subsection written by Jacob, former undergrad and now PhD student at Purdue CS.

You should consider pursuing multiple tracks/concentrations, a minor, or even a double major; Purdue CS degree requirements are flexible enough (especially with transferred credits) that an extra track or even degree is quite feasible.

However, there are many misconceptions about why these enhancements might be valuable:

  • Employers don't usually care much about you having multiple tracks or majors (see below).
  • You might now be working in the same field as your major 20, 10, or even 5 years from now.
  • After an entry-level job to get your foot in the door, most employers care more about your work experience than which degree(s) you gained.

So, why do I still think that an additional degree/track is a good idea to consider?

  • Taking classes from another track, department, or college can greatly broaden your perspective on interdisciplinary applications of CS concepts.
  • Declaring a separate major or minor makes it much easier to get into courses in that department; courses mandatory for certain majors often prevent non-majors from registering without permission or before open registration (emailing can help bypass this).
  • If you pivot to a different field after you graduate from CS -- either graduate/professional school or industry (e.g. going to law school for patent law or becoming a project manager) -- the company's HR department might expect you to have a major degree in a similar/related field before even considering you for the role. This is strongly context dependent and there are many exceptions, but it has the potential to make life easy.

Your degree isn't just (or even primarily!) a signal that you've successfully become specialized in Computer Science or in 1+ of its many sub-fields/tracks. In fact, most companies and graduate programs expect that undergrads will spend the first year or so learning the necessary skills on-the-job before they can even start considering specializing. Instead, undergraduate degrees are about preparing a baseline for students to have the skills to self-learn the rest for themselves.

As a result, undergraduate requirements are focused on teaching transferrable skills applicable to different (sub-)fields and career paths. This is much of the value that employers look for out of an undergraduate degree-holder: do you know how to learn new things quickly, can communicate with others inside and outside your field, and work on new things?

The consensus of most undergraduate students and alumni is that having multiple tracks, a minor, or even a double major does not matter much on its own. What matters are the classes and experiences you go through, and even more importantly how you communicate those in a way that excites potential employers (a "story" of sorts). If the extra tracks, minors, or majors help get you there, then great! But you still need to put in the work to tell that "story" about how your academic journey, and having multiple degrees is one of many ways to do that. Without that "story", a double major, minor or track is only an extra line on your resume.

Appendix A - Course Reviews

Maybe I'll fill in this section when I graduate and don't fear retribution (this is a joke for any professors reading this!).

Appendix B - The LLM Question/Application

With LLMs and "intelligence on tap" getting better and better every passing month, your advantage to a bunch of NVIDIA GPUs in a datacenter shrinks. Less cynically, modern chatbots are extraordinarily good at patiently answering your questions with decent accuracy — learning is easier than ever before.

You should use LLMs in your learning journey. Don't forget to have an original thought once in a while!

Appendix C - Do you need an academic focus?

There are many people who end up working at innovative startups while not caring for their GPAs at all. You could be one of them! There are many other paths to "success" while at university; this guide merely aims to help you along one of them.

Do impressive things. Be awesome. Spread the word. Good things follow!

Appendix D - My Degree Plan

I'm including this section to give you an idea of what a degree plan can look like. Note that while my path was accelerated, yours doesn't have to be! Skip ahead to the next section if this isn't interesting.

Additionally, I had a lot of previous programming experience (some semi-professional), which meant that I was mostly familiar with all the CS core curriculum (180, 240, 250, 251, 252). I did not learn very much in those classes and thus found them easier than many others.

Transfer Credits (27 credit hours)

Course Credits Notes
CHM 11500 4.00 General Chemistry
CHM 11600 4.00 General Chemistry
CS 17700 4.00 Programming with Multimedia Objects
MA 16500 4.00 Analytic Geometry & Calculus I
MA 16600 4.00 Analytic Geometry & Calculus II
PHYS 1XXXX 3.00 Physics C (Mechanics)
PHYS 27200 4.00 E&M Interactions

I self-studied for the AP exams and signed up to give them in Delhi, India. The AP syllabuses are ridiculously detailed; self-prep is completely feasible through Khan Academy.

I obtained the above credits by giving both AP Physics C exams, Calc BC, Chemistry and Computer Science A. I got a 4 in AP Physics C Mechanics and thus didn't receive credit for PHYS 172 and instead just PHYS 1XXXX. The department doesn't give CS 180 credit even for a 5 in AP CSA.

Semester 1: Fall 2023 (18 credit hours)

Course Credits Grade Name Notes
CS 18200 3.00 A+ Foundations of Computer Science
CS 19300 1.00 W Tools (Withdrew)
CS 24000 3.00 A+ Programming in C
CS 59000 3.00 P Weak Memory Atomics in C++11 (Independent Study)
HONR 19901 1.00 A Honors First Year Experience I
HONR 19903 3.00 A+ Interdisciplinary Approach to Writing
MA 27101 5.00 A Honors Multivariate Calculus

I started the semester enrolled in Tools. Then, I attempted to honors-contract CS 240 but missed the deadline. The CS 59000 independent study was a substitute for the honors contract. In order to fit the 3-credit independent study into my schedule, I dropped Tools (Tools is not a required course despite what it may seem like).

Semester 2: Spring 2024 (19 credit hours)

Course Credits Grade Notes
CS 25000 4.00 A+ Computer Architecture (Honors-Contracted)
CS 25100 3.00 A+ Data Structures and Algorithms
CS 31100 2.00 A Competitive Programming II
CS 49000 3.00 P Programming Languages Research
HONR 19902 1.00 A Honors First Year Experience II
MA 35100 3.00 A Elementary Linear Algebra
PHIL 22100 3.00 A+ Introduction to Philosophy of Science

The research course didn't end up going anywhere as both me and my supervisor became busy during the latter half of the semester. My schedule this semester was non-ideal (Competitive Programming II on its own does not fulfil CS electives) - this was because I originally signed up to CODO into ECE but changed my mind during the first week.

Summer 2024

Activity Type Notes
Google Summer of Code Internship Contributor for icu4x, mentored by Google engineers
Summer Undergraduate Research Fellow Research Worked on Mergeable Replicated Datatypes using Irmin and OCaml
CS 28401 0.00 Professional Practice Part-Time
ENGR 39602 0.00 Experiential Training - Research

I worked full-time on research in the SURF program. Note that I didn't have to apply - I asked my advisor to nominate me through SURF.

I simultaneously worked part-time as a Google Summer of Code intern, contributing to the icu4x project.

Amazingly, as an international student, this was legal because apparently the 40-hour week limit applies separately to on-campus (non-CPT) and off-campus (CPT) work.

Semester 3: Fall 2024 (21 credit hours)

Course Credits Grade Notes
CLCS 23900 3.00 A The Comic Vision
CS 25200 4.00 A Systems Programming
CS 38100 3.00 A+ Introduction to Analysis of Algorithms
CS 39700 0.00 S Honors Seminar
CS 45600 3.00 A+ Programming Languages
CS 49000 3.00 A Embedded Systems (with Prof. Douglas Comer)
CS 59100 1.00 P CERIAS Security Seminar
GS 29501 1.00 A Understanding Undergraduate Research Experience
SOC 10000 3.00 A+ Introduction to Sociology

Note that I obtained permission to take CS 456 and 490 - I didn't satisfy their prerequisites. I was a CS 251 TA this semester along with being a research assistant. Having a job that paid more, was more interesting, and looked better on the resume (research assistant) made me question why I was investing time in the other one (teaching assistant).

Semester 4: Spring 2025 (22 credit hours in progress)

Course Credits Status Notes
AD 25500 3.00 In Progress Art Appreciation
CS 35200 3.00 In Progress Compilers Principles & Practice
CS 56500 3.00 In Progress Programming Languages (Graduate)
CS 58500 3.00 In Progress TCS Toolkit (Graduate)
CS 59200 3.00 In Progress Hardware Security (Graduate)
CS 59300 3.00 In Progress Software Engineering for Robotics (Graduate)
GS 39501 1.00 In Progress Understanding Undergraduate Research Experience II
STAT 51100 3.00 In Progress Statistical Methods (Graduate)

This semester is quite busy what with four graduate courses and internship interviews. Obligations stack up - I'm having trouble dedicating enough time to research (hope to do so when interviews are over). I regret this. I now think you should decide what matters and prune the rest for success at what you care about.

Appendix E - Bias Disclosure and Invitation to Contribute

This guide is written from personal experience, and therefore is biased towards first-hand experiences. Specifically, I came to Purdue with a strong interest in research and spent a decent amount of time here engaging with the research community at Purdue; as a result, it is featured stronger than perhaps others think it may deserve.

I don't believe this guide is deficient as a result; to the contrary, I think it enhances the guide.

In the light of the above statements, I invite readers to reach out and share their experiences and advice so that I may incorporate it into this document. The more concrete your suggestion, the better. You can comment below or email me.

If this document was helpful, comment that. Your comments are valuable signals to future readers.

Credits and Contributor Acknowledgements

I wrote most of this. In no particular order, thanks to:

For feedback, proof-reading, and content suggestions. All mistakes are naturally mine.

For advisors who want to share this with their students

Yes! As far as I know, advisors Kristal V. Doty and Marsha Rhees have asked me about sharing this with the incoming class of '29. If you're an advisor reading this I would strongly appreciate you sending an email with your feedback or if you plan on sharing this with your students (so I can add your name here).

@ArhanChaudhary
Copy link

This is an outstanding read, wish I had this earlier. Glad to have been part of the review process!

@dylanboyer
Copy link

Very interesting read! Ever since high school I've always had a fascination with schedules and being incredibly intentional with planning my classes/future coursework. I love that you are helping people get the most out of their college education while encouraging people to go their own route rather than copy your intense workload verbatim. Inspirational work!

@saiccoumar
Copy link

needed this 4 years ago fr

@ericswpark
Copy link

Great guide for those looking to get every last bit out of their Purdue CS journey. Kart is the one of the most passionate and hardworking CS friend I know and this document shows just how far he can take things. Thank you for the review mention!

@maanaskarwa
Copy link

This is some fire
Actually listen to him because you shouldn't just be existing in CS

@Noir01
Copy link

Noir01 commented Apr 9, 2025

Really nice read! I wish this had been around when I started attending Purdue.

@JeongB-L
Copy link

This is by far one of the best article relevant to Purdue.

@zhtluo
Copy link

zhtluo commented Apr 30, 2025

As a member of the competitive programming community, I want to add a few points.

  • There is a club (https://purduecpu.com/) that runs Purdue competitive programming events. Give it a spin if you like it.
  • I highly recommend CS 21100, Competitive Programming I, if you need a study primer on technical interviews.
  • If you want to master technical interviews and get more involved with competitive programming, CS 31100/41100, Competitive Programming II/III, can be a good choice. It has seen some of the most talented students here at Purdue who went on to achieve great things.

Disclaimer: I have been teaching CS 41100 for the past two years (https://zhtluo.com/teaching/cs411-spring2025/index.html). Feel free to ask me anything else about CP as well.

@kartva
Copy link
Author

kartva commented Apr 30, 2025

I'm honored to have @zhtluo comment. I've added CPU to the list of cool clubs! (I know a bunch of people from it and they're all indeed awesome.)

@Vinny31415
Copy link

As an incoming CS major, this has been incredibly helpful in seeing what I should be focusing on. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment