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 laptop requirement 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.
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).
Here are a few specific recommendations about how to choose a laptop for the computer science program:
Tablet computers (such as Chromebooks, Ultrabooks, and the Microsoft Surface Tablet) tend not to have enough computational power to be useful software development systems. They also have restrictive operating systems that make it much more difficult (if not impossible) to install the software a computer science student needs.
It is possible to purchase systems that come with Linux preinstalled. Some of the manufacturers that sell Linux systemssystems are Lenovo, Dell, ThinkPenguin, EmperorLinux, System76, and Purism.
It is also possible to install Linux on a computer system which you already own as long as it has enough processing power, memory, and disk space available. There are several different ways to do this:
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).
We do not recommend the new M1 Macintosh for use in computer science classes. The M1 platform is new and 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 M1 macs are particularly difficult to get working with Linux. Apple actively discourages users from dual-booting on the new systems and most software for hosting Virtual Machines (such as VirtualBox and VMWare) does not yet work properly on the M1 architecture. The best options are "Parallels" (which costs about $80) and UTM (which works poorly, if at all).
In my experience, setting up a dual-boot environment is significantly more difficult on the Macintosh than on other platforms and students with Macs often have more trouble getting development software to work than other students. Usually it is possible to work around these problems, but doing so takes a lot of time that could be spent working on projects instead.
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 it can make your life more difficult in some of our classes.
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.
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.
In summary, we recommend a computer with at least: