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.

Comments

topicTopics
academics MCAT study skills SAT medical school admissions expository writing English college admissions GRE GMAT LSAT MD/PhD admissions chemistry math physics ACT biology language learning writing strategy law school admissions graduate admissions MBA admissions creative writing homework help MD test anxiety AP exams interview prep summer activities history philosophy career advice academic advice premed ESL economics grammar personal statements study schedules admissions coaching law statistics & probability PSAT computer science organic chemistry psychology SSAT covid-19 CARS legal studies logic games USMLE calculus parents reading comprehension 1L Latin Spanish dental admissions DAT engineering excel political science French Linguistics Tutoring Approaches chinese research DO MBA coursework Social Advocacy case coaching classics genetics kinematics skills verbal reasoning ISEE academic integrity algebra business business skills careers geometry medical school mental health social sciences trigonometry 2L 3L Anki FlexMed Fourier Series Greek IB exams Italian MD/PhD programs STEM Sentence Correction Zoom amino acids analysis essay architecture art history artificial intelligence astrophysics athletics biochemistry capital markets cell biology central limit theorem chemical engineering chromatography climate change curriculum data science dental school diversity statement finance first generation student functions gap year harmonics health policy history of medicine history of science information sessions integrated reasoning international students investing investment banking mba meiosis mitosis music music theory neurology phrase structure rules plagiarism presentations pseudocode secondary applications sociology software software engineering teaching tech industry transfer typology virtual interviews writing circles