Buying a computer for a computer science curriculum

New students frequently wonder what kind of computer they would need for our computer science curriculum. The easy answer is: the one you already have!

As a student in computer science, your main tasks are going to be some combination of the following:

None of the above is terribly taxing on a modern computer. In fact, most of it is largely the same as it was years ago, back when dinosaurs roamed the earth and I was a young man going through a similar curriculum to the one that I am now teaching.

Before you learn to do the big, taxing stuff – video game code; generative machine learning; Big Data and what have you – you have to learn the basics. All software, when reduced to its essence, is based around only a dozen or so concepts: variables, loops, functions, objects, and so on, and the code that you write initially will familiarize you with those concepts.

To put it another way: an Intel i5-10600 processor (chosen randomly) running at 3.3 “gigahertz” can do roughly 3.3 billion operations per second. All of the mathematics that a computer has to do to execute a loop will cost between 10 and 1000 operations to execute. You do the math! Your own code will not be the limit on what you can accomplish with your computer; the limit will be everything around it – the editors, browsers, compilers, and so on that you will have to install and run.

How, then, to choose a computer?

Technical requirements

CPU

Any recent Intel i5, i7, or Xeon; or AMD Ryzen, is likely to be fine. I am still using a 7th-generation i5 and have no trouble. Intel i3 and Atom, and low-end AMD processors, are likely to have trouble running tasks that require many threads or cores to execute, notably virtualization, but even this you would not notice until the third year of our curriculum.

If you need to go down in price, it would be better to get an older-generation high-end processor than a current-generation low-end processor.

RAM

RAM will be your biggest bottleneck, since web browsers and editors are careless with memory and consume more than they deserve. Here is where I wouldn’t cut corners: opt for 16 GB.

HDD/SSD

Any SSD is fine, but certainly not smaller than 256 GB. If it is the only hard drive in the computer (i.e. most laptops) then opt for larger if you can.

Graphics

You will almost not use graphics at all in the curriculum, so integrated graphics hardware is fine.

Screen

You will appreciate having more screen real estate in order to put two windows next to each other: for example, your code on the left and its output on the right. A FHD (1920×1080) screen is a minimum; opt for a higher-resolution screen if you can.

Laptop or desktop?

A desktop computer will certainly be cheaper for the same specs, and if you have only a desktop computer, you will still be able to reach school resources via VPN. But many people are willing to pay extra in order to have a portable computer that they can work on anywhere. There is no correct answer, so think about how you work most effectively.

If you are of the sort who wants an expensive and ultra-powerful gaming computer at home, you could complement it with a cheap, refurbished, older-model laptop that you can lug around in your backpack.

Mac or PC?

The curriculum assumes that you are using a PC. You can use a Mac but may have to figure out alternatives for particular pieces of software. In many but not all cases, your teacher will be able to help you.

Windows 11?

Windows 10 is fine. (11 is actually the same as 10 under the hood, but that’s a whole other discussion.)

Chromebook?

A chromebook would be OK if you are able to install crouton or crostini in order to work directly on the underlying Linux system. If you don’t know what that means, or it scares you, then don’t choose a Chromebook.

Refurbished computers?

I highly recommend them! Here are a few good sources:

Looking forward to seeing you in class!