Date: 27 Aug 2005 ================================================================== Why take CS547? I recall some of the concerns that would float around among (graduate) students when it came time to select courses: which courses will help me land a good job after my Masters? or, if one is heading for a Ph.D., which courses are directly relevant to my chosen area of interest? which instructors are great teachers? which courses are not "killers" in terms of programming effort? and so on. Well, I would recommend one other key perspective to use when selecting courses: which portfolio of courses will give me a broad grounding in the various areas of Computer Science? In the current era of evolving job markets, ever changing skill-set requirements, inter-disciplinary/ cross-disciplinary research, cutting-edge products that push the envelopes of multiple subareas of CS, etc., it is wise to ensure that you get a broad grounding in CS that will serve you well long into your career. In some sense, you could think of your course portfolio the way you might think of a stock portfolio -- you are looking for big returns in the relatively long run, you want to broadbase the portfolio both to avoid risk and to capture high performance in multiple sectors, etc. CS547 is an excellent course that represents a significant aspect of Computer Science: how to effectively model in a "theoretical" way the extensive actions and interactions in real systems and use these models to design better systems and/or to better predict their behavior. For systems oriented people, modeling is a very effective and necessary tool, especially when simulation of systems might be too laborious, too time consuming, too hard to prove correct, etc. Further, modeling contributes to a more formal, compact, and clean way of thinking about and understanding systems, which is essential for good, clean system design. For theoretically inclined people, modeling is an excellent avenue for bringing to bear theoretical ways of thinking on practical systems, something which is both satisfying from a work perspective and marketable from a career perspective. In addition to some theory/algorithms courses and some programming and systems courses, I would strongly recommend the Computer Systems Modeling Fundamentals course for anyone's course portfolio. Personally, I took this course (as well as the follow-on 700-level course) more than 15 years ago -- Mary Vernon taught both of them. One indicator of the value of the courses is that I still keep my course notes very accessible in my office! Much of my work has been in computer architecture, where simulation is very common; more recently I have been working in other areas such as computer networks and multimedia streaming, but the usefulness and need for modeling has not changed. I am really glad I took CS547, I hope you choose to do the course as well. Sriram Vajapeyam [Ph.D. 1991, UW-Madison, CS] [Alumnus Page: http://www.cs.wisc.edu/~sriram] Director, Real-Time Collaboration Research Oracle Corporation Bangalore, INDIA ------------------------------------------------