Undergraduate Bulletin Logo








Table of Contents
- About the Bulletin

- Introduction to Stony Brook

- Student Services

- Admissions

- Financial Information

- Scholarships and Awards

- Degree Requirements

- Academic Policies and Regulations

- Special Academic Programs

- Approved Programs

- Courses

- Supplement to the Bulletin - Fall 2000

Other Useful Links
- Schedule of Classes

- Academic Advising

- Campus Map


State University of New York at Stony Brook
Site Designed by
Melissa Bishop/DoIT
Last Modified 10/11/99 10:41:05 PM EDT
Department of Computer Science

Chairperson: David S. Warren
Undergraduate Program Director: Leo Bachmair
Undergraduate Secretary: Grace Garufi
Office 1440 Computer Science
Phone: 632-8470
E-mail: leo@cs.sunysb.edu or ggarufi@notes.cc.sunysb.edu
Web address: http://www.cs.sunysb.edu

Minors of particular interest to students majoring in computer science: business management (BUS)

About the Major in Computer Science
Computer science is the study of computer systems, including the architecture of computers, development of computer software, information processing, computer applications, algorithmic problem-solving and the mathematical foundations of the discipline.

The computer science major provides professional education in computer science to prepare the student for graduate study or for a career in the computing field. Students learn concepts and skills needed for designing, programming, and applying computer systems while also learning the theoretical and mathematical foundations of computer science. They have sufficient freedom in the program to pursue other academic interests in the liberal arts, sciences, and engineering to complement their study of computer science. Many students utilize the flexibility of the program to satisfy the requirements of a second major for the bachelor’s degree.

Many students prepare for their professional careers through internships at local companies. Computer science graduates are recruited heavily by technology and financial firms, primarily in the New York metropolitan area. Career opportunities include developing software systems for a diverse range of applications such as: user-interfaces; networks; databases; forecasting; world wide web support; and medical, communications, satellite, and embedded systems. Many are employed in the telecommunication and financial industries. The explosive growth of the Internet provides numerous jobs for those familiar with Internet technology. A large number of graduates are self-employed, some as heads of software consulting companies. Approximately one third of the program’s graduates pursue advanced degrees, some in fields such as law, business, medicine, finance, engineering, and other professions requiring strong technical knowledge and problem-solving skills.

The Department of Computer Science offers two undergraduate majors: Computer Science (CSE) and Information Systems (ISE). Requirements and courses for the latter appear under the program title in the alphabetical listing of Engineering and Applied Sciences programs. The two programs of study share a number of courses, particularly in the first two years, so that it is possible to follow a program that permits a student to select either major by the start of the junior year. The department also offers a minor in computer science.

Computing Facilities
Computing facilities for undergraduate students are maintained by both the University Computing Center and the Computer Science Department. For a description of the computing services provided by the University Computing Center see Student Services.

The department's primary computing facility for undergraduates is its Undergraduate Computing Laboratory which is regularly upgraded, keeping pace with advances in technology. The user area of the laboratory consists of 38 Pentium PC systems, plus laser printers and scanners. The Free BSD operating system, a derivative of the 4.4BSD Unix system, serves as the main operating system for the laboratory, although the machines can also run MS-Windows. Supporting the user workstations are nine server systems and associated networking hardware. The Laboratory is connected to the Internet via a fiber optic link to the campus network. See http://www.ug.cs.sunysb.edu for more information.

The Computer Associates Transaction Processing Laboratory consists of 30 Pentium PC systems running Microsoft Windows NT on a TCP/IP network, and Windows NT servers supporting database, file, and unsecured and secured Web services. This laboratory exposes students to real-world information systems architectures, such as multi-tiered transaction processing and web-based data access. It supports undergraduate courses on databases, transaction processing, graphics, and software engineering. A grant from Computer Associates has provided for expansion of the laboratory to 50 Pentium systems and a number of Xenon class systems to support remote access to all laboratory applications using a multi-user version of Microsoft Windows with Citrix Winframe extensions. See www.translab.cs.sunysb.edu for more information about this laboratory and planned expansions.

Other instructional computing facilities in the Computer Science department include the multimedia lab (see www.cvc.sunysb.edu/multi). For special projects undergraduates also have access to the departmental research laboratories.

Transfer Credits
Students wishing to transfer credits for courses equivalent to CSE 113, 114, 213, 214, or 220 in order to use them as prerequisites for other CSE courses or toward meeting the requirements for acceptance into the major must demonstrate proficiency in the course material by passing a proficiency examination with a grade of C or higher. (Proficiency examinations covering the syllabi of CSE 113, 114, 213, 214, and 220 are given during the first week of each semester and may be given at the beginning of the first summer session.)

Challenge Examination Credits
A challenge examination is offered covering the syllabus of CSE 113 for students who feel they have mastered the material on their own. See also the section entitled “Challenge Program for Credit by Examination” in the University Studies chapter.

Admittance to CSE and ISE Courses
For admittance to undergraduate computer science and information systems courses, students must have successfully completed the necessary prerequisite courses with a grade of C or higher.

Acceptance into the Computer Science Major
Qualified freshman and transfer applicants are accepted directly into the computer science major upon admission to the University. Currently enrolled students may be accepted into the major in one of two ways:
  1. After completing CSE 113, 114, and AMS 151 and 161 (or MAT 125 and 126 or MAT 131 and 132), and earning a grade point average of 2.8 or higher in these courses with no grade in any of them lower than a C. Only one of these courses may be repeated.
  2. Students not meeting condition 1 may still be admitted by petitioning the department. Acceptance will then be considered based upon the student’s individual performance.

Requirements for the Major in Computer Science
The major in computer science leads to the Bachelor of Science degree. The following courses, totaling approximately 80 credits, are required. At least five upper-division courses from items 2, 3, and 4 below must be completed at Stony Brook.
  1. Required Introductory Courses
    • CSE 113 Foundation of Computer Science
    • CSE 114 Computer Science I
    • CSE 213 Foundations of Computer Science II
    • CSE 214 Computer Science II
    • CSE 220 Computer Organization and Systems
  2. Required Advanced Courses
    • CSE 303 Introduction to the Theory of Computation
    • CSE 308 Software Engineering I
    • CSE 309 Software Engineering II
    • AMS/CSE/MAT 373 Analysis of Algorithms
  3. Three courses chosen from:
    • CSE 304 Compiler Design
    • CSE 305 Principles of Darabase Systems
    • CSE 306 Operating Systems
    • CSE 307 Principles of Programming Languages
    • CSE 328 Fundamentals of Computer Graphics
    • either CSE/ESE 345 Computer Architecture or ESE 380 Embedded Microprocessor Systems Design I but not both
  4. Two additional upper-division CSE or ISE courses (excluding CSE or ISE 475 and ISE 440 and 441). Only one of the two courses may be CSE or ISE 488.
  5. AMS 151, 161 Applied Calculus I, II
    Note: The following alternate calculus course sequences may be substituted for AMS 151, 161 in major requirements or prerequisites: MAT 125, 126, 127, or MAT 131, 132, or MAT 141, 142. Equivalency for MAT courses achieved through the Mathematics Placement Examination is accepted to meet MAT course requirements.
  6. One of the following:
    • MAT 211 Introduction to Linear Algebra
    • AMS 210 Applied Linear Algebra
    • AMS 326 Numerical Analysis
  7. AMS 301 and AMS 310 or 311 or 312
  8. ESE 318
  9. One of the following natural science sequences:
    • Two courses from: BIO 201, 202, 203 Fundamentals of Biology
    • CHE 131, 132 or CHE 141, 142 General Chemistry
    • GEO 102/112 The Earth/Physical Geology Lab or GEO 122 Physical Geology; and GEO 309 Structural Geology
    • PHY 131, 132 or PHY 141, 142 or PHY 125, 126, 127 Classical Physics
    • PHY 125 or PHY 131 or PHY 141 Classical Physics and AST 203 Astronomy
  10. Six credits from courses in quantitative studies, which can be additional courses from the natural science sequences (see 9 above); or other courses with a strong quantitative studies component, such as ECO 109, BUS 114, 214, POL 201, PSY 201 or SOC 201, 202. Students wishing to take other courses to fulfill the quantitative studies requirement must obtain the approval of the Computer Science Department.
  11. Upper-Division Writing and Oral Skills Requirement
    All degree candidates must demonstrate writing skills and oral communication skills in English at a level acceptable for computer science majors. To satisfy the requirement, the CSE student must submit a technical paper on an appropriate computer science topic that illustrates the student’s ability to write in a clear, concise, technical, and organized manner. Students must successfully complete and submit the technical paper in order to be permitted to register for the writing and oral skills course CSE 300. Students must also give an oral presentation that demonstrates the student’s ability to use the spoken word to communicate effectively with other suitably trained technical persons.
    The oral skills portion of the requirement is met by giving a presentation of the technical paper described above, by serving as an undergraduate teaching assistant in a computer science course and leading a recitation lecture, or by some other suitable presentation approved by a Computer Science faculty member. Students whose writing or speaking does not meet the required standards are directed to seek remedial help and resubmit their work or repeat their presentation.
    Notes: All students are encouraged to discuss their program with an undergraduate advisor. In requirement 2 above, CSE/ESE double majors may substitute ESE 440, 441 Electrical Engineering Design I, II for CSE 308, 309 Software Engineering I, II provided that the design project contains a significant software component. Approval of the Computer Science Department is required.
Grading
All courses taken to satisfy requirements 1 through 10 must be passed with a letter grade of C or higher. A grade of C or higher is also required in prerequisite courses listed for all CSE and ISE courses.

Suggested Elective Courses
Students are encouraged to pursue a program that provides depth in some area of computer science. The following table lists some typical areas of specialization and relevant electives:
  • Artificial Intelligence: CSE 304, 307, 352
  • Database Systems: CSE/ISE 305; CSE 306; ISE 315
  • Hardware: CSE 306; CSE/ESE 345, 346; ESE 380
  • Operating Systems: CSE 306, 307; CSE/ESE 345
  • Programming Languages and Software Engineering: CSE/ISE 302; CSE 304, 307
  • Theory: CSE 303; CSE/MAT 371; CSE/AMS/MAT 373
  • Graphics: CSE 328, 332, 333
  • Multimedia: CSE 333, 334
  • Computer Networks and Commun-ications: CSE/ESE 346; CSE/ISE 310
]Other courses in the Departments of Mathematics, Applied Mathematics and Statistics, and Electrical Engineering may also be relevant and can be taken as open electives. Also, a large selection of graduate courses in the department’s Master of Science program are available to qualified seniors (see “Permission to Take Graduate Courses” in the College of Engineering and Applied Sciences chapter). Students should consult early with faculty members of the Department of Computer Science to plan their programs. Concentration in Computer-Human Interaction The concentration in computer-human interaction requires four courses. The psychology aspect of the concentration deals with the design of effective computer-human interactions; the computer science aspect deals with the technical design and implementation of the systems for those interactions. A student is considered to be a participant in the program after successfully completing courses 1 and 2 below.[
  1. CSE/ISE 333 User Interface Development
  2. PSY 260 Survey of Cognition and Perception
  3. The concentration requires completion of at least two electives from the following list:
    • CSE 328 Fundamentals of Computer Graphics
    • CSE/ISE 332 Introduction to Scientific Visualization
    • CSE 334 Introduction to Multimedia Systems
    • PSY 384 Research Lab: Human Factors
    • ISE 440 Information Systems Design I
    • ISE 441 Information Systems Design II
The Minor in Computer Science
The minor in computer science is open to all students not majoring in either computer science or information systems. The minor requires six CSE or ISE courses, totaling approximately 21 credits, as outlined below.
  1. Three courses from the core sequence: CSE 113, 114, 213, 214, and 220.
  2. Three upper-division CSE or ISE courses, excluding CSE and ISE 300.
    Of these six courses, not more than two may be crosslisted (specifically CSE 326/ESE 357; CSE 327/ESE 358; CSE/ESE 345; CSE/ESE 346; CSE/MAT 371; CSE/AMS/MAT 373). Additional upper-division courses may be substituted for lower-division courses with departmental approval.
Joint B.S./M.S. Program in Computer Science
Computer science majors may apply for admission to a special program that leads to a Bachelor of Science degree at the end of the fourth year and a Master of Science degree at the end of the fifth year. Students usually apply to the program in their junior year.

Students must satisfy the respective requirements of both the B.S. degree and the M.S. degree, but the main advantage of the program is that six credits may be simultaneously applied to both the undergraduate and graduate requirements. The M.S. degree can therefore be earned in less time than that required by the traditional course of study.

For more details about the B.S./M.S. program, see the the undergraduate or graduate program director in the Department of Computer Science.
Faculty
Leo Bachmair, Associate Professor, Ph.D., University of Illinois at Urbana-Champaign: Computational logic; automated deduction; symbolic computation.
Hussein G. Badr, Associate Professor, Ph.D., Penn State University: Computer communication networks and protocols; performance evaluation, modeling and analysis.
Michael A. Bender, Assistant Professor, Ph.D., Harvard University: Algorithms; scheduling; asynchronous parallel computing.
Arthur J. Bernstein, Professor, Ph.D., Columbia University: Transaction processing; concurrent programming; distributed databases.
Tzi-cker Chiueh, Associate Professor, Ph.D., University of California, Berkeley: Processor architecture; parallel I/O; high-speed networks; compression.
W. Rance Cleaveland II, Professor, Ph.D., Cornell University: Specification and verification formalisms; automated verification algorithms and tools; models of concurrent computation.
Thomas J. Cortina, Senior Lecturer. M.S., Polytechnic University: programming methodology; computer science education; computer music.
Herbert L. Gelernter, Professor Emeritus. Ph.D., University of Rochester: Artificial intelligence; knowledge-based, heuristic problem-solving systems; scientific applications.
Jack Heller, Professor Emeritus. Ph.D., Polytechnic Institute of Brooklyn: Database systems; office automation; visualization.
Peter Henderson, Professor, Ph.D., Princeton University: Software engineering; programming environments; computer science education.
Arie Kaufman, Leading Professor, Ph.D., Ben Gurion University, Israel: Computer graphics; visualization; virtual reality; user interfaces; multimedia; computer architecture.
Michael Kifer, Professor, Ph.D., Hebrew University of Jerusalem: Database systems; logic programming; knowledge representation; artificial intelligence.
Ker-I Ko, Professor, Ph.D., Ohio State University: Computational complexity; theory of computation; computational learning theory.
Philip M. Lewis, Professor, Ph.D., Massachusetts Institute of Technology: Concurrency and concurrent systems; transaction processing systems; software engineering.
Theo Pavlidis, Distinguished Professor, Ph.D., University of California, Berkeley: Image processing; machine vision; computer graphics; window systems.
Shaunak Pawagi, Lecturer. Ph.D., University of Maryland at College Park: Analysis of algorithms; parallel computing.
Hong Qin, Assistant Professor, Ph.D., University of Toronto: Computer graphics; geometric modeling and design; physics-based animation and simulation; scientific computing and visualization; virtual environment; computer vision; medical imaging; applied mathematics.
C.R. Ramakrishnan, Assistant Professor, Ph.D., SUNY at Stony Brook: Logic Programming; programming Languages; verification.
I.V.. Ramakrishnan, Professor, Ph.D., University of Texas at Austin: Computer Architecture; algorithms; rewrite systems.
Steven Skiena, Associate Professor, Ph.D., University of Illinois at Urbana-Champaign: Algorithms; computational biology; computational geometry.
David R. Smith, Professor, Ph.D., University of Wisconsin, Madison: Hardware description languages and synthesis; VLSI design tools; experimental chip architectures.
Scott A. Smolka, Professor, Ph.D., Brown University: Model checking; semantics of concurrency; CASE tools for safety-critical systems; distributed languages and algorithms.
Eugene W. Stark, Associate Professor, Ph.D., Massachusetts Institute of Technology: Programming language semantics; distributed algorithms; formal specifications; verification; theory of concurrency.
Vassilios Tsaoussidis, Visiting Assistant Professor, Ph.D., Humboldt University: Computer networks; network and application management; communication systems and protocols; resource management and quality of service.
Amitabh Varshney, Assistant Professor, Ph.D., University of North Carolina at Chapel Hill: Interactive 3D computer grahics; scientific visualization; parallel graphics algorithms; geometric modeling; computational geometry.
David S. Warren, Professor, Ph.D., University of Michigan: Logic programming; database systems; knowledge representation; natural language processing.
Anita Wasilewska, Associate Professor, Ph.D., Warsaw University, Poland: Data base mining; knowlege discovery in data bases; machine learning; uncertainity in expert systems; automated theorem proving.
Larry D. Wittie, Professor, Ph.D., University of Wisconsin, Madison: Superconducting computers and networks; massively parallel computation; computer architecture; distributed operating systems.
Affiliated Faculty
Esther Arkin, Applied Mathematics and Statistics
Jerome Liang, Radiology
Joseph Mitchell, Applied Mathematics and Statistics
Teaching Assistants
Estimated number: 33

Back Home