[PLUG-TALK] What they teach in CS classes

Jason R. Martin nsxfreddy at gmail.com
Wed Dec 7 05:19:29 UTC 2005


On 12/6/05, Andrew Becherer <shadygrove at gmail.com> wrote:
> Michael Rasmussen wrote:
>
> > I still don't think this is the way they teach CS.
>
>         I think I can illuminate this situation. I am in this class. We both
> attend the Computing and Software Systems program at the University of
> Washington, Tacoma. The program is focused on software development and
> includes all the courses you would expect such as Discrete Mathematics,
> Data Structures, Algorithms, Software Development Methodology, etc. A
> description of the curriculum can be found at http://tinyurl.com/c8klo
> (tacoma.washington.edu).
>         The course we are discussing here is TCSS 422: Operating Systems. The
> assignment in question can be found at http://tinyurl.com/cqsf4
> (faculty.washington.edu). We are using Tanenbaum's Modern Operating
> Systems text. During class and on our midterm we have dealt with all of
> the things one would expect out of an operating systems course
> (Processes & Threads, Scheduling, Deadlocks, Starvation, Race
> Conditions, Memory Management, IO, File Systems, etc). Because of the
> limited time (a one quarter course) the list of topics covered may not
> be as extensive as one would like to see nor the subjects covered in the
> depth one would prefer.
>         We have had two programming projects this quarter. The first was
> building a multithreaded webspider. While some might consider this not
> relevant to an OS class it was done in order promote discussion of
> multithreaded programming concepts including race conditions, deadlocks
> and starvation. The second assignment has two purposes. The first
> purpose is to introduce my classmates to Linux. On the first day of
> class the professor asked anyone with experience using an *nix to raise
> their hand. Our class has approximately 25 students and less than 5
> raised their hands. So the first part of the assignment was to install
> Linux, document the install process and write the shell script that has
> been discussed. The second part of the assignment is to author a server
> and client. Extra credit is given if you implement the client in a
> different language than the server.
>         The focus in class has been the material in the Tanenbaum book and the
> programming projects have been complimentary to our in class
> discussions. The class has not been focused on webspiders, shell
> scripting or socket programming. These concepts have not been covered in
> class. We are expected to research these topics in addition to the
> material we cover in class.
>         Our class has been hampered by our institution's reliance on Java as
> the primary programming language of instruction. We are unable to use
> Tanenbaum's Design and Implementation of Operating Systems and the Minix
> exercises it contains. Also given that our institution utilizes the
> quarter system, time for an operating systems course is too limited. The
> University has made some positive changes recently. This fall they split
> the architecture course across 2 quarters which I believe will be
> helpful. I think the OS course should follow suit but that would limit
> the already limited time students have to take concentration electives
> (probably the only place in the program we will be exposed to any other
> programming languages much less operating systems).
>         Our program is by no means perfect or even a "model" program. There are
> a lot of things faculty, staff and students could be doing to make it a
> better institution. However I believe just like most things in life
> students in my program will get what they want out of the program. I for
> one have been utilizing Tanenbaum's Design and Implementation of
> Operating Systems along with Robert Love's Linux Kernel Development 2nd
> Edition in order to fill out my knowledge. Also I am fortunate to have
> an associate who is a really sharp Software Engineer at Intel DuPont
> with whom I can discuss both operating systems and the shortcomings of
> Computer Science programs.
>         So yes, this is how my institution is teaching CS.

For what it is worth, this sounds like quite an ambitious OS class for
a quarter.  I think usually OS and networking are split apart into
separate classes even at colleges which are on semesters.  I'm trying
to picture someone learning *nix and writing a multi-threaded client
and server all in half a quarter...

Oh, and when I took my OS class a few years ago it was taught in Java
:-)  The concepts can be taught in Java no problem, but if you wish to
tinker with a "production" OS you'll have to be good in C.

Jason



More information about the PLUG-talk mailing list