Pseudocode: a must-use tool for Computer Science

academics computer science pseudocode
By Hunter

My number one piece of advice for someone entering college and studying computer science is the following sentence: write pseudocode before writing your actual code. If you follow this piece of advice, you will save yourself hundreds of hours over the next four years of your life.

Pseudocode is a plain language description of an algorithm that will help you implement code across computer languages (Python, Java, C++, etc.). There isn’t a “correct” way to do it, but simply taking the time to write out exactly what you are trying to do with your code will save you lots of time down the road. An example of pseudocode for making a PB&J sandwich is:

// Go into kitchen

// Open pantry

// Grab peanut butter, jelly, and bread from pantry

// Open utensil drawer

// Grab a knife

// remove bread from bag

// Open peanut butter

// Spread peanut butter on 1 piece of bread using the knife

// Open jelly container

// Spread jelly on other piece of bread using knife

// Put 2 pieces of bread together to form sandwich

At this point, you may be thinking that pseudocode is a waste of time - you shouldn’t have to take the time to sit down and write instructions for yourself when you can just go into the kitchen and make a sandwich! However, as the complexity of a given task increases, you may need to take the time to think about how exactly you want execute a given task. For example, imagine that you don’t have any jelly: you start making your sandwich, spread all the peanut butter on the bread...and then realize you have no jelly! You leave the peanut butter and bread on the kitchen counter while you go out to buy jelly and, while you’re gone, your dog eats all your peanut butter and bread. If that's the case, you’ll probably wish that you had spent a little bit of time thinking about your entire process before beginning.

Okay, enough about PB&J.

By writing pseudocode, you can increase your chances of avoiding two time-sucking issues: debugging, and the “wrong turn” error. 

Debugging can be quite straightforward if you have an easily readable roadmap: when your code does not work, you can clearly and efficiently retrace your steps from start to finish to catch the error. It will be easier to distinguish between syntactical errors (i.e. misspelling of a variable) and errors in your logic (i.e. you put the pieces of bread together before spreading the jelly). 

Pseudocode also helps you navigate the “wrong turn” error. This error occurs when you spend hours building something before realizing that you have been going in the wrong direction the entire time. If you had taken the extra time to map out your entire process using pseudocode, then you would’ve saved yourself the hassle of beating your head against a problem that you should not have even been trying to solve in the first place.

I have made the error of just rushing into a project without thinking about the bigger picture too many times to count. If I had slowed myself down at the beginning and taken the time to write pseudocode beforehand, then I would’ve gotten a lot more sleep in college.


academics study skills MCAT medical school admissions SAT expository writing college admissions English MD/PhD admissions GRE GMAT LSAT chemistry writing strategy math physics ACT biology language learning test anxiety graduate admissions law school admissions MBA admissions interview prep homework help creative writing AP exams MD study schedules summer activities history personal statements academic advice career advice premed philosophy secondary applications Common Application computer science organic chemistry ESL PSAT economics grammar test prep admissions coaching law statistics & probability supplements psychology SSAT covid-19 legal studies 1L CARS logic games reading comprehension Spanish USMLE calculus dental admissions parents research Latin engineering verbal reasoning DAT excel mathematics political science French Linguistics Tutoring Approaches chinese DO MBA coursework Social Advocacy academic integrity case coaching classics diversity statement genetics geometry kinematics medical school skills IB exams ISEE MD/PhD programs PhD admissions algebra astrophysics athletics biochemistry business business skills careers data science letters of recommendation mental health mentorship quantitative reasoning social sciences software engineering trigonometry work and activities 2L 3L Academic Interest Anki EMT English literature FlexMed Fourier Series Greek Italian Pythagorean Theorem STEM Sentence Correction Zoom algorithms amino acids analysis essay architecture argumentative writing art history artificial intelligence cantonese capacitors capital markets cell biology central limit theorem chemical engineering chromatography climate change clinical experience cold emails community service constitutional law curriculum dental school distance learning enrichment european history finance first generation student fun facts functions gap year harmonics health policy history of medicine history of science information sessions institutional actions integrated reasoning intern international students internships investing investment banking logic mandarin chinese mba meiosis mitosis music music theory neurology operating systems phrase structure rules plagiarism poetry pre-dental presentations proofs pseudocode school selection simple linear regression sociology software study abroad teaching tech industry transfer typology units virtual interviews writing circles