• Welcome to Computer Association of SIUE - Forums.


Started by Guest, 2004-11-09T23:44:52-06:00 (Tuesday)

Previous topic - Next topic


Whats the word on CS312? Is it tough? Same with CS321, is it tough?


I would have to say it depends A LOT on who you get for it.  I don't want to badmouth any professors (especially because they probably read this), but some are much tougher than others.  Given you may learn more from the tougher professors, but they are tougher.
Retired CAOS Officer/Overachiever
SIUE Alumni Class of 2005


I have heard from some people who liked CS312 better and some who liked CS321.  I have a feeling that this is caused by people’s opinions of the following three criteria.  Ignoring factors such as who is teaching the class, here is an analysis of the differences between them.

High-level vs. low-level
If you have taken more then just a few CS (or even engineering) classes you have probably noticed that there is a repeating trend of using tools and making tools.  When you use a tool (function, component, device) you don’t have to know how it works.  You only need to know what the tool is supposed to do.  For example, most 140 students use â€Ã...“coutâ€Ã, but do not know how it works.  When you make a tool you must know what your user expects but you do not know what applications the user will find for the tool.  For example, most 150 students have to write a complex number class.  This class could be used to draw a fractal, or perform circuit analysis.  Obviously, you use one set of tools to make another.  This leads to an ordering that ranges from the electrical hardware at one end to a human at the other with many â€Ã...“toolsâ€Ã, in between.  Computer science, as a discipline, tends to treat the computer hardware as a tool and humans as users of the tools we create.  These two classes talk about these two ends of the â€Ã...“toolâ€Ã, spectrum.

CS321 a high-level class in that it is concerned primarily with how humans use computers.  This means that there is little emphasis on making a working product or the details of a language.  Instead, the class is about how people use software and how to make software suitable for human use.  Some of the topics that are covered brush on physiology, aesthetics and even ethics.

CS312, on the other hand, is concerned primarily with how the hardware computer scientists use works.  This is the lowest-level of â€Ã...“computer scienceâ€Ã, class (note: some lower-level ECE classes are required).  This means that there is little on making the software usable by humans.  Instead, the class is about how software makes use of features provided by the computers hardware. The class examines how a processor works, how an operating system bridges software with devices, and the lowest-level human-written programming language (assembly).

Preparation for future classes
Many students take these two classes and then decide what electives to take based on how they liked these two classes.  Additionally, each class has a required class that builds upon its topics.

CS321 gives students a first glimpse of how software is made in industry.  Classes that build on that idea include CS434 (Database Management), CS325 (Software Engineering), and the required senior project sequence.  The human interaction topics are built upon in CS482 (Computer Graphics) and the CS490 Virtual Reality and Robotics classes.

CS312 discusses hardware and makes ECE382 and ECE483 seem easy.  CS312 also prepares you for the required CS414.  There are electives (Distributed Systems & Computer Architecture) that require a firm understanding of CS312 material and most networking (CS447, CS490) classes do too.

Group vs. individual work
When I took CS312 there was a group project.  This was the first one of these I had encountered in CS at SIUE.  When I took CS312 all of the assignments were individual.  I am not sure if this is still the case, but it might influence your opinion.

WOW that was lengthy.