Home |
Teaching |
Research |
About me |
JT's Disclaimer: although there are technical references and information provided in this document a good deal of it is strictly my opinion so you can use the information as you see fit.
Computer Science students, specifically ones who are just beginning their academic career so they aren't quite as comfortable with technical specifications yet.
To a large extent whatever machine you buy won't have a major effect on your studies. Unless you buy an ancient second hand relic the computer you end up with should probably be able to handle any of the coding you will do as an undergrad. (However there are a few potential exceptions - detailed below). Using myself as an example when I was an undergraduate student here in the late 1990's when I did my work at home I was running on a 7.14 MHz (no typo, that's millions of Hertz) Amiga2000 HD computer with a 2,400 baud modem and the text-based terminal program JRComm. When I scrolled through my programs, that transfer rate roughly matched my normal reading speed so it wasn't as bad an experience as it seemed. If there was a major lag then mostly it caused by the servers on the Computer Science network rather than my own machine/online connection. (Problem: Too many students running too many processes on the same server. Solution: try another [compute server]). When I was a faculty member here I eventually migrated to Win95 (233 MHz Pentium MMX) and then a 3.x GHz Pentium IV (purchased ~2003). When the latter machine suffered from a major hardware failure I was able to get by running a Celeron (wimpy version of a Pentium IV) with just 1 GB of RAM until fall 2013. But until that time I was able to do all my work as a tenured faculty member in a Computer Science department (meaning that in terms of programming/productivity work) I'd probably be pushing my hardware more than a typical under graduate student. Thus back to my original assertion, unless you buy some ancient machine you can probably get by (although you might drum your fingers a lot waiting for your machine to finish it's tasks...)
Think your machine is too slow? Want to upgrade but can't afford to upgrade it all? Want some clues as the what may be bottlenecking your system? Most people automatically think that the processor is culprit. (Figure 1) Sometimes that may be true. Other times it may be something else. Try viewing the processes on your computer ("Task Manager" in Windows, "ps" command in UNIX). Make sure that you are looking at all the processes running. With some operating systems the default may only show the processes of one user whereas a system process or process not run by the user (e.g., anti-virus software) may be the true resource 'hog'. To see the full picture you would select "Show processes from all users" (See Figure 2 for where to do it with the Windows Task Manager) or some argument to 'ps' in UNIX (e.g., "ps -aux") - type 'man ps' at the UNIX command line to find out the specific argument required for your version of UNIX.
Figure 1: A number of tasks are demanding a fair amount of the processor's time |
Figure 2: Showing all processes |
Figure 3: Ranking processes by memory usage. |
Love it, hate it or indifferent Windows is by far the most common operating system on desktop/laptops. However it might be nice to have some version of UNIX (specifically Linux) installed so you can learn about some of the strengths of an 'expert' type of O/S so you might want to consider a dual-boot drive with both operating systems. If you want a remote connection (to work from home) then you can use a simple text-only connection (running programs like SecureShell or Putty) or something more elaborate like Cygwin which allows for graphics - although in my opinion in the latter case it might be easier to forego the remote connection and just run your programs on your own machine locally if you're doing something like GUI programming. The students that I know who have tried Chrome O/S laptops found them fairly expensive ("good bang for the buck") but lacking important features like the ability to print (not only handy when you are working at home on a larger program but printing on your own computer may be cheaper than buying printing credits here, depending on the type of printer you own and your print quality settings - so make sure you don't just consider the computer's price if you are considering that platform).
In most cases this won't show up as an issue. As I said already as a person who is actually teaching courses (i.e., writing full solutions for the assignments that students have to complete) you can get by with fairly old hardware. Some courses with a lot of heavy duty advanced programming concepts (such as CPSC 501) are one of the few that may actually push your processor's capability - although that assertion was based on decade's old technology so even for courses like that you may not have any problems.
There have been some graphic cards that have conflicts with the graphical drawing libraries. If you want to find out if that will affect your work in the graphics courses (e.g., CPSC 453) it's best to try contacting the current instructors directly [Faculty list for the department] [Three year teaching assignments for the department]
Computer reviews (this site is targeted towards the general user
so while you should be able to find their articles comprehensible they might
lack some technical details)
http://www.pcmag.com/reviews/laptop-computers
http://www.pcmag.com/reviews/desktop-computers
Unsure if you should get a laptop vs. desktop, some pros and cons (you also
might want to look through this site for some of the technical details that are
missing from PC magazine)
http://www.tomshardware.com/reviews/desktop-vs-notebook,1946-2.html