Recommended Specifications for Your Computer

https://csci-1301.github.io/about#authors

April 5, 2024 (12:47:55 PM)

This page contains some recommendations on students wishing to buy a computer to complete their program in the School of Cyber and Computer Sciences. Note that possessing a computer is not required to complete CSCI 1301, but recommended.

In Short

Anything less than 5 years old running Microsoft Windows, macOs or a Linux operating system is probably fine. Second hand and custom built are fine, but you will in all likelihood needs a portable computer (as opposed to a desktop computer) to present your work and work on projects.

In Terms of Hardware

Desktop, Laptop, or something else?

A laptop is generally recommended (to take notes in class, make presentations, work on projects at School, …) but technically possessing only a desktop should be ok (and will be more comfortable to use, in all likeliness). Tablets and other “small” handled devices (such as Netbooks, Chromebooks or Mini PCs) are not recommended and will in all likelihood prove challenging to use for some classes.

Specifications:

Component	Minimum	Suggested	Comfortable
CPU	4 cores @ 2.66 GHz	6 cores @ 3.8 GHz	6 cores @ 4.4 GHz
RAM	8GB	16GB	32GB
Hard Drive	100GB	500GB of SSD	1TB of SSD

GPU and other special equipment are not required, but recent USB-C connectors will be useful.

As an example:

Dr. Aubert uses a Dell Latitude 5480/5488 from 2017 (but in no way endorses it) with

4 cores @ 2.40 GHz CPU,

8GB of ram,

238 GB of hard drive,

and of courses wishes that it was a bit more responsive at times, but can conduct otherwise all his professional activities.

In Terms of Operating System

We will briefly consider four “families” of operating systems:

Microsoft Windows (Windows 10, Windows 11, etc.)

macOS (macOS Ventura, macOS Sonoma, etc.)

Linux operating systems (Ubuntu, Debian, Gentoo, etc.)

Operating systems that uses their web browsers as their principal user interface (essentially, ChromeOS).

Note we do not discuss Android or iOS since they are primarily mobile operating systems, and not easily suited for the development workload in our curriculum.

In short:

Anything but ChromeOS is (probably) fine.

Expanded:

If you are (planning on) using Visual Studio as your IDE, then windows is your best choice of operating system.

If you need to use macOS for whatever reason, then you will probably be able to accommodate all the requirements, but it may require some tweaking at times.

Using Linux-based operating systems are a great way to learn how to tinker with your computer (you have full control!), but will sometimes require you to be creative to meet courses expectations.

Virtual machines allow you to simulate (almost) any operating system using (almost) any operating system, and is required for some courses. Using virtual machines means, essentially, that your choice of operating system does not matter at all.

Remember that multi-boots (that is, installing multiple operating systems side-by-side) is an option.

Virtual Machines

Virtual machines allow you to simulate (almost) any operating system using (almost) any operating system: this means that, for instance, you can load the Windows 11 operating system from your computer running Debian 12.5, or the Debian 12.5 operating system from macOS 14.

Note that CSCI 4532 - Hardware and Embedded Systems and CSCI 4531 - Malware Analysis and Reverse Engineering require you to run virtual machines. If you are planning on taking one of those classes, make sure your computer can run virtual machines!

You can find on this page some indications on how to run a virtual machine on your computer, and you can check on-line the recommended specifications for Hyper-V, VirtualBox, kvm, vmware. Note that, as a student, you can obtain a free licence for Windows.

Where to Buy?

That is really up to you, but remember that, as a student (or employee), you are allowed to

Some discounts,

A free licence for Windows.

Second-hand computers or even custom-built computers are probably fine, but requires more skills (such as how to factory-reset a computer and / or how to (re)install an operating system) and inspections on your end.

Is There Anything Else I Should Know?

A well taken-care of computer can easily last 5 years, but laptops are harder to upgrade and preserve in good shape than desktops.

Ergonomics is important: you will most likely spend many hours on your computer, so make sure your workstation is well organized.

A programmer is first and foremost a typist: make sure you develop good habits and learn to type correctly. Exploring ergonomics keyboard layouts and ergonomics mice can save you later from carpal tunnel syndrome, arthritis, and other repetitive strain injuries.