Longwood University Department of Computer Science Advanced Computing Lab

17 May 2021

Laptop Recommendation

Incoming students often ask whether there is a particular brand or model of laptop they should purchase for our major. While it is true that the workload of a Computer Scientist is much more demanding than most users' computational needs, neither Longwood nor our department have a formal policy requiring a specific model or brand of laptop for our students. However, there are a few things you should know if you plan to purchase a laptop for your use in our program.

The Advanced Computing Lab

We provide an advanced computing lab of Unix workstations which are available to students in 200-level or higher computer science courses and to upper-level mathematics majors. Remote access to these systems is also provided for students in some of the introductory courses. Once students complete the introductory programming sequence, most of their course work will use these systems.

Almost any computer system you purchase can connect to the lab remotely (see Remote Access), but it can be convenient to install Linux on your personal system so that you can work when access to the lab is not readily available or to use graphical software while a class is in the lab. It can also be useful to have administrative access to a Linux system (students do not typically have administrative access to the lab systems).

Guidelines

Here are a few specific recommendations about how to choose a laptop for the computer science program:

Note: Installing Linux alongside another operating system (whether in a "dual-boot" configuration or as a Virtual Machine) takes a significant amount of hard drive space, since you are in effect running two complete operating systems side-by-side. It is a good idea to have at least a 1Tb drive (more space is preferable).

What about Apple/Macintosh?

We do not recommend the new Apple-Silicon Macintosh for use in computer science classes. These chips use a relatively new architecture that does not yet support much of the development software our students need.

The Apple Macintosh operating system is based on the FreeBSD Unix operating system, which has many similarities to the Linux operating system we use in the advanced computing lab. This means that for many tasks, users of a Macintosh can use the "Terminal" program instead of installing Linux separately on their system. Unfortunately, the operating systems are not perfectly identical and this can mean that students must do additional work to figure out how to complete assignments on their systems. There is also some software that simply won't work in the Macintosh operating system without dual-booting Linux.

The new Apple-Silicon macs are particularly difficult to get working with Linux. Apple actively discourages users from dual-booting on the new systems and our students have had trouble getting Virtual Machine hypervisors (such as VirtualBox, VMWare, or UTM) to work without crashing on the new architecture. This does seem to be improving with time, but if you go this route, be aware that you may have difficulty in some classes on some projects.

On the other hand, Macs are very popular in the software development world, partly because the only easy way to write programs for iPhone is to use Apple's development software. Many of these programs are only available on the Macintosh. If you want access to Apple's "walled garden", this might be the way to go, but be aware of the potential drawbacks.

What about Gaming Systems?

Many gaming systems, especially Alienware systems, have custom graphics cards or other devices that can make them tricky to get working properly in Linux. As with the Apple Macintosh, it can sometimes be possible to work around these issues, but usually at the cost of a considerable amount of time that could be much better spent. Before purchasing a gaming laptop, it's important to check whether the manufacturer provides Linux support.

What about Raspberry Pi / other Single Board Computer Systems?

You should definitely get one! They are fun to play around with and a great way to learn about the challenges of embedded computing. However, while the Raspberry Pi can run Linux, it has a very slow processor and a limited about of RAM and storage. Single board computers are fun toys, but they are not really suitable systems for serious software development and not a substitute for a development laptop.

Suggestions

In summary, we recommend a computer with at least:

Of these, Linux compatibility and disk space are by far the most important considerations.