[nabs-l] Looking for infoComputer programming

Joseph C. Lininger jbahm at pcdesk.net
Sun Feb 6 02:45:33 UTC 2011


Hi,
Just to warn you, this is going to be a rather long message.

Here are the topics you would cover in a standard computer science
program. I have not included info on other programs that include
software or programming aspects, such as applied computing or computer
information systems. Those math majors with a computer science component
are also not included, even though that's the computer science degree
for some schools. This is the topic list for a dedicated computer
science program. Also, the order is only approximate. Schools may cover
this info in a different order, some of it might be optional or not
offered at all, etc. I've focused mostly on the computer science and
mathematics, since those make up the back bone of any good computer
science program.

-- Computer Science Courses --
* Introductory course to programming. Usially this will use an object
oriented language such as Java, and will cover basic programming and
object oriented design.
* Data structures and algorithms. Algorithms involving Searching,
sorting, recursion. Data structures like lists, trees, stacks, and queues.
* Sometimes a follow-on data structures course, including graphs,
multi-way trees, hashing. This can be merged with the previous item, or
sometimes offered later in the course sequence.
* Computer organization and asembly language. The goal in this course is
not to teach asembly per say, but to teach basic computer architecture.
Teaching asembly as it were would be difficult since it varies with
different types of hardware. Sometimes a separate "computer
architecture" course is offered, sometimes it's rolled into this course.
* Possibly a course in digital logic and digital circuits.
* One or more courses on software design. These usually focus on object
oriented designs since that's what's generally used in industry right
now. Sometimes this is offered at this point, sometimes at  the end of
the course sequence, sometimes both.
* Operating systems. This is not a course on how to use different
operating systems, but rather a course on what goes into operating
system design and programming. You'll probably have to do some low level
programming in this course. An example of a problem you may be set would
be: "you have a certain number of processes competing for CPU time.
Write a program which mimics a round-robin process scheduler to allocate
CPU time equally to all processes that want it."
* Possibly a course on computer networks. This was required at one
school I went to, optional at another. Talking to others seems to
indicate it can really go either way.
* Computational theory. You'll learn about ways to represent machine
states, some algorithm analysis tools, that sort of thing.
* Algorithm analysis. You will use the tools from the previous item to
analyze the data structures and algorithms you already know, and maybe
some new ones.
* Possibly a cap stone course. For example, you might be asked to work
with a team of students to design and implement a medium sized software
system over the course of a semester.
* Various other courses, sprinkled throughout the sequence. Examples
might be compiler design, networks, computer security, relational
databases, AI, and various other topics. Some will be required, some
electives. That varies by school.

-- Required Math --
* Calculous sequence. Some require Calc I and II only, some require Calc
III in addition.
* Some kind of course in discrete mathematics. Examples of what would be
covered here would be: basic proofs and mathematical arguements, set
theory, logic, and the "there exists" and "for all" math operations.
* Some kind of algorithmic math course involving extensive use of
matrices. Example: linear algebra, but some colleges have a substitute
course.
* A calculus based probability and statistics course.

You'll also have general studies requirements, of course. All of the
programs I've seen require two semesters of calc based physics, and you
may need some other hard sciences like chemistry too. Technical
communications and basic writing are also there, naturally.

Wow I wasn't lying, that was a long message. Longest I've written in a
while. Let me know if you have any questions.
Joe




More information about the NABS-L mailing list