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 Majors, Minors & Programs

- Supplement

- Courses by Department

- Courses by Designator

Other Useful Links
- Schedule of Classes

Course Web Sites

- Campus Map

- 1999-2001 Bulletin


State University of New York at Stony Brook
Site Designed by
Melissa Bishop/DoIT
Last Modified 06/08/2001 10:01:19 AM EDT
Major and Minor in

Computer Science
Department of Computer Science
College of Engineering and Applied Sciences

Chairperson: Arie Kaufman
Undergraduate Program Director: Leo Bachmair
Undergraduate Secretary: Grace Garufi
Office: 1440 Computer Science
Phone: (631) 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)

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 prepare for their professional careers through internships at local companies. Computer science graduates are recruited heavily and 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, and some are self-employed as heads of software consulting companies.

The department of computer science offers two undergraduate majors: Computer Science and Information Systems. Requirements and courses for the latter appear under the program title in the alphabetical listings of Approved Majors, Minors, and 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 Computer Science Department provides additional laboratories to support undergraduate instruction and research. The laboratory facilities are regularly upgraded to keep pace with advances in technology. Current computing facilities include the Computer Science Undergraduate Computing Laboratory with approximately forty Pentium class systems; the Programming Techniques Teaching Laboratory with approximately forty Pentium III class systems and facilities for classroom instruction; the Computer Associates Transactions Laboratory, used primarily for upper-level courses on databases, transaction process and web applications; the Computer Science Advanced Programming Laboratory, also donated by Computer Associates Inc. which provides computing support for upper-level courses on such topics as operating systems and user interfaces; and the Computer Science Multimedia Laboratory, used for courses on multimedia design. Most of the laboratories are connected to the Internet via a fiber optic link to the campus network and are easily accessible by students from campus residences or from off-campus via modems.

The departmental research laboratories are available to undergraduate students working on supervised projects with computer science faculty.

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. (Proficiency examinations covering the syllabi of CSE 113, 114, 213, 214, and 220 are given during the first week of each semester.

Enrolling in CSE Courses
To enroll in CSE courses, students must:

  1. Have completed all prerequisites with a grade of C or higher. (Pass/No Credit grades are not acceptable to meet prerequisites.) For transfer students, official transfer credit evaluations must have been completed and approved and the relevant proficiency examination for lower division courses, given during the first week of each semester, must have been taken and passed.
  2. Attend the first class
    Failure to satisfy the prerequisites or to attend the first class may result in deregistration. Proirity for registration is given to students who have not taken the same course previously. Upper-division CSE courses are restricted to CSE majors. The Pass/No Credit option is not available to CSE majors for CSE and ISE courses.



Acceptance into the Computer Science Major
Qualified freshman and transfer applicants are accepted directly into the Computer Science or Information Systems major upon admission to the University. Currently enrolled students may apply for acceptance to one these majors after completing the following courses with a grade point average of 2.80 or higher and no grade in any of them lower than a C.
  1. CSE 113 Foundations of Computer Science I
  2. CSE 114 Computer Science I
  3. AMS 151 or MAT 125 or MAT 131
    Only one of these courses may be repeated, and only one time.


Requirements for the Major in Computer Science (CSE)
The major in computer science leads to the Bachelor of Science degree. At least five upper-division courses from items 2 and 3 below must be completed at Stony Brook.

Completion of the major requires approximately 80 credits.
  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 219 Computer Science III
    • CSE 220 Computer Organization and Systems
  2. Required Advanced Courses
    1. CSE 303 Introduction to the Theory of Computation or CSE 373 Analysis of Algorithms
    2. CSE 308 Software Engineering
    3. Three software-related courses chosen from: CSE 305; 306; 304 or 307; 328 or 333
    4. One hardware-related course chosen from: CSE 310, 320, 346, ESE 318, 345
  3. Computer Science Electives
    Three upper-division CSE or ISE courses, excluding CSE/ISE 475, 488, 495-496, and ISE 440.
  4. 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.
  5. One of the following:
    • MAT 211 Introduction to Linear Algebra
    • AMS 210 Applied Linear Algebra
    • AMS 326 Numerical Analysis
  6. AMS 301 and AMS 310 or 311 or 312
  7. One of the following natural science sequences:
    • Two courses from: BIO 201, 202, 203 Fundamentals of Biology
    • CHE 131, 132, 133 or CHE 141, 142, 143 General Chemistry
    • GEO 102/112 The Earth/Physical Geology Lab
      and GEO 309 Structural Geology
    • PHY 131, 132 or PHY 141, 142 or PHY 125, 126, 127 Classical Physics
  8. Six additional credits from the above natural science courses (biology, chemistry, geology, or physics), though not necessarily a sequence. More advanced natural science courses may be substituted with the prior approval of the Computer Science Department.
  9. Upper-Division Writing
    All degree candidates must demonstrate writing 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 whose writing does not meet the required standards are directed to seek remedial help and resubmit their work.

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 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 8 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; CSE/ISE 315
  • Hardware: CSE 306; CSE 320; ESE 345; CSE 346; ESE 318
  • Operating Systems: CSE 306, 307, 320; ESE 345
  • Programming Languages and Software Engineering: CSE 304, 307, 308
  • Theory: CSE 303, 371, 373
  • Graphics: CSE 328, 332, 333
  • Multimedia: CSE 333, 334, 364
  • Computer Networks and Communications: CSE/ESE 310; CSE/ISE 346

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 "Graduate Courses" in the Special Academic Opportunities 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


The Honors Program in Computer Science
The Honors Program is open to junior and senior computer science majors who have completed at least three upper-division CSE courses at Stony Brook and who have maintained a 3.50 cumulative g.p.a. and a 3.80 g.p.a. in CSE courses.

A prospective honors program student must declare his or her intention to participate in the program to the undergraduate program director before registration for the senior year. In addition to the regular academic program, an honors student must complete a senior honors research project (CSE 495, 496) under the close supervision of a computer science faculty member. Conferral of honors is contingent upon completion of all required courses, including the senior honors project, with a 3.50 cumulative g.p.a. and a 3.80 g.p.a. in CSE courses.

The department will facilitate intership placement for Honors Program students in the summer between the junior and senior year. In addition, particpants in the honors program will be automatically approved for admission to the five-year joint B.S./M.S. program in computer science. Students who successfully complete the Honors Program and decide to enroll in the joint B.S./M.S. program will be considered for a tuition waiver in the fifth year as well as a graduate student assistantship. (It is recommended that these students register for an undergraduate teaching practicum in the junior and senior year.)

The Minor in Computer Science (CSE)
The minor in computer science is open to all students not majoring in either computer science or information systems. All of these courses must be passed with a letter grade of C or higher. In order to declare the minor in computer science, students must complete CSE 113 and 114 with grades of C or higher. The minor requires seven CSE or ISE courses totaling 22 to 24 credits as outlined below
  1. CSE 113 Foundations of Computer Science I
  2. CSE 114 Computer Science I
  3. CSE 214 Computer Science II
  4. CSE 219 Computer Science III or CSE 220 Computer Organization and Systems Programming
  5. Three upper-division CSE or ISE courses (excluding CSE/ISE 300, 475, 487, 488 and ISE 440). ESE 318 may be substituted for one of these three CSE or ISE courses.


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, 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.
Radu Grosu, Assistant Professor, Ph.D., Technical University of Muenchen: Software and systems engineering; design automation for embedded systems; applied formal methods.
Jack Heller, Professor Emeritus. Ph.D., Polytechnic Institute of Brooklyn: Database systems; office automation; visualization.
Arie Kaufman, Leading Professor, Ph.D., Ben Gurion University, Israel: Computer graphics; visualization; virtual reality; user interfaces; multimedia; computer architecture.
Robert F. Kelly, Lecturer, Ph.D., New York University: Information systems; software engineering; electronic commerce; parallel programming.
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.
Vidya Kulkarni, Lecturer, M.S., McMaster University.
Philip M. Lewis, Professor, Ph.D., Massachusetts Institute of Technology: Concurrency and concurrent systems; transaction processing systems; software engineering.
Y. Annie Lui, Associate Professor, Ph.D., Cornell University: Programming languages and compilers; program optimization; program analysis and transformation; programming environments; reactive systems; algorithm design.
Antonios Michailidis, Lecturer, Ph.D., University of Liverpool, UK: Computer-supported cooperative work; workflow management systems; human-computer interaction; enterprise-wide computing.
Klaus Mueller, Assistant Professor, Ph.D., Ohio State University: Visualization; computer graphics; medical imaging; image-based rendering; virtual reality; distributed virtual environments.
Manuel Oliveira Neto, Assistant Professor, Ph.D., University of North Carolina at Chapel Hill: Image-based rendering; interactive 3-D graphics; virtual environments; scientific visualization.
Theo Pavlidis, Professor Emeritus, 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., University at Stony Brook: Logic Programming; programming languages; verification.
I.V. Ramakrishnan, Professor, Ph.D., University of Texas at Austin: Computer Architecture; algorithms; rewrite systems.
Dimitri Samaras, Visiting Assitant Professor, Ph.D., University of Pennsylvania: Computer vision; computer graphics; medical imaging; animation and silumation; image-based rendering; physics-based modelling.
Christelle Scharff, Lecturer, Ph.D., Universite Henri Poincare, Nancy France: Automated deduction; theorem proving.
R. Sekar, Assistant Professor, Ph.D., University at Stony Brook: Computer and network security; software/distributed systems; programming languages; software engineering.
Steven Skiena, Associate Professor, Ph.D., University of Illinois at Urbana-Champaign: Algorithms; computational biology; computational geometry.
David R. Smith, Professor Emeritus, Ph.D., University of Wisconsin, Madison: Hardware description languages and synthesis; VLSI design tools; experimental chip architectures.
Donald Alan Smith, Lecturer, Ph.D., Brandeis University: Programming languages; logic programming.
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.
Scott Stoller, Assistant Professor, Ph.D., Cornell University: Distributed systems; fault-tolerance and security; software testing and verification; program analysis and optimization.
John D. Valois, Research Assistant Professor, Ph.D., Rensselaer Polytechnic Institute: Concurrent data structures; algorithm engineering; experimental algorithmics.
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.
Andrew Wildenberg, Lecturer, Ph.D., University of Oxford: Computer vision; algorithms; computational biology; multimedia.
Larry D. Wittie, Professor, Ph.D., University of Wisconsin, Madison: Superconducting computers and networks; massively parallel computation; computer architecture; distributed operating systems.
Erez Zadok, Assistant Professor, Ph.D., Columbia University: Operating systems; storage and file systems; software portability; networking; security.
Affiliated Faculty
Esther Arkin, Applied Mathematics and Statistics
Susan Brennan, Psychology
Jerome Liang, Radiology
Joseph Mitchell, Applied Mathematics and Statistics
Yuanyuan Yang, Elctrical and Computer Engineering
Teaching Assistants
Estimated number: 58

Back Home