Computer Science

Faculty
Leo Bachmair, Professor, Ph.D., University of Illinois, 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.
Samir Das, Associate Professor, Ph.D., Georgia Institute of Technology: Wireless networking and mobile computing; parallel and distributed simulation; performance evaluation of computer systems and networks.
Ahmad Esmaili, Lecturer, M.S., Stony Brook University: Business and scientific applications of computing; relational database management systems.
Jin Gao, Assistant Professor, Ph.D., Stanford University: Wireless networking.
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, Munich: Software and systems engineering; design automation for embedded systems; applied formal methods.
Xianfeng Gu, Assistant Professor, Ph.D., Harvard University: Computer graphics.
Himanshu Gupta, Assistant Professor, Ph.D., Stanford University: Information systems, databases.
George Hart, Research Professor, Ph.D., Massachusetts Institute of Technology: Computational geometry; computer-aided geometric design; algorithms and data structures; sculpture.
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.
Philip M. Lewis, Professor, Ph.D., Massachusetts Institute of Technology: Concurrency and concurrent systems; transaction processing systems; software engineering.
Y. Annie Liu, Associate Professor, Ph.D., Cornell University: Programming languages and compilers; program optimization; program analysis and transformation; programming environments; reactive systems; algorithm design.
Richard McKenna, Lecturer, M.S., Stony Brook University: Java programming; image processing.
Alexander Mohr, Assistant Professor, Ph.D., University of Washington: Robust and scalable delivery of time-sensitive multimedia and incorporate elements of algorithms, networks, and multimedia systems.
Klaus Mueller, Assistant Professor, Ph.D., Ohio State University: Visualization; computer graphics; medical imaging; image-based rendering; virtual reality; distributed virtual environments.
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, College Park: Analysis of algorithms; parallel computing.
Hong Qin, Associate 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., Stony Brook University: Logic programming; programming languages; verification.
I.V. Ramakrishnan, Professor, Ph.D., University of Texas, Austin: Computer architecture; algorithms; rewrite systems.
Dimitris Samaras, Assistant Professor, Ph.D., University of Pennsylvania: Computer vision; computer graphics; medical imaging; animation and simulation; image-based rendering; physics-based modeling.
Anthony Scarlatos, Lecturer, M.A., Adelphi University: Multimedia; interface design; computer-based training; distance learning.
R. Sekar, Associate Professor, Ph.D., Stony Brook University: Computer and network security; software/distributed systems; programming languages; software engineering.
Radu Sion, Assistant Professor, Ph.D., Purdue University: Computer security.
Steven Skiena, Professor, Ph.D., University of Illinois, 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.
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, Professor, Ph.D., Massachusetts Institute of Technology: Programming language semantics; distributed algorithms; formal specifications; verification; theory of concurrency.
Amanda Stent, Assistant Professor, Ph.D., University of Rochester: Spoken and multimodal dialogue systems, natural language generation, theories of discourse, information extraction.
Scott Stoller, Assistant Professor, Ph.D., Cornell University: Distributed systems; fault-tolerance and security; software testing and verification; program analysis and optimization.
Michael Tashbook, Lecturer, M.C.S., University of Virginia: Computer science education; software engineering.
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; knowledge discovery in data bases; machine learning; uncertainty 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.
Erez Zadok, Assistant Professor, Ph.D., Columbia University: Operating systems; storage and file systems; software portability; networking; security.
Rong Zhao, Research Assistant Professor, Ph.D., Wayne State University: Content-based and semantic-based multimedia information retrieval; Web retrieval and mining; digital library; computer vision; medical imaging.
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: 65
|
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: Rose Ann Vultaggio
Office: 1440 Computer Science
Phone: (631) 632-8470
E-mail: leo@cs.sunysb.edu or Roseann.Vultaggio@stonybrook.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. The current Program Educational Objectives for the Computer Science program are available at http://www.cs.sunysb.edu/undergrad/csprogram.
Computing Facilities
Computing facilities for undergraduates are maintained by both the University Computing Center and the Department of Computer Science. 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; the Programming Techniques Teaching Laboratory with facilities for classroom instruction; the Computer Associates Transactions Laboratory, used primarily for upper-level courses on databases, transaction processes, 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 the campus network and are easily accessible by students from campus residences or from off-campus via modem.
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, or 214 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, given during the first week of each semester.
Enrolling in CSE Courses
To enroll in CSE courses, students must:- 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.
- 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.- CSE 113 Foundations of Computer Science I
- CSE 114 Computer Science I
- 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.- 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
- Required Advanced Courses
- CSE 303 Introduction to the Theory of Computation or CSE 373 Analysis of Algorithms
- CSE 308 Software Engineering
- Three software-related courses chosen from: CSE 305; 306; 304 or 307; 328 or 333
- One hardware-related course chosen from: CSE 310, 320, 346, ESE 345
- Computer Science Electives
Three upper-division CSE or ISE courses, excluding CSE/ISE 475, 488, 495, and 496. - 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. - One of the following:
- MAT 211 Introduction to Linear Algebra
- AMS 210 Applied Linear Algebra
- AMS 326 Numerical Analysis
- AMS 301 and AMS 310 or 311 or 312
- 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/133, 132/134 or PHY 141, 142 or PHY 125, 126, 127 Classical Physics
- 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.
- 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.
Specialization in Computer-Human Interaction
[Effective Fall 2004] "Concentration" changed to "Specialization"
The specialization in computer-human interaction requires four courses. The psychology aspect of the specialization 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.
- CSE/ISE 333 User Interface Development
- PSY 260 Survey of Cognition and Perception
- The specialization 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
- CSE 364 Advanced Multimedia Techniques
- PSY 384 Research Lab: Human Factors
Specialization in Information Assurance
[Effective Fall 2004] New specialization
The specialization in information assurance (IA) has been developed as part of the University’s establishment of a Center for Cybersecurity and designation by the National Security Agency as a Center of Academic Excellence in Information Assurance Education. This is included in a multi-faceted effort to expand and increase information assurance education and research. The specialization deals with the principles, design, development, and management of networks and software systems that provide high levels of assurance in the confidentiality, availability, and integrity of electronic information. It requires four core courses, two electives, and a project. Students may declare their participation in the specialization after completing the courses in 1a and 1b. All courses in 1-3 must be completed with a grade of C or higher.
- Core Courses:
- CSE 310 Data Communication and Networks
or CSE 346 Computer Communications
- CSE 306 Operating Systems
or CSE 376 Advanced Systems Programming in UNIX/C
- CSE 408 Network Security
- Computer System Security
- Electives (two from the following list):
- CSE 305 Principles of Database Systems
- CSE 306 Operating Systems
- CSE 315 Database Transaction Processing Systems
- CSE 336 Internet Programming
- CSE 375 Concurrency
- CSE 376 Advanced System Programming in UNIX/C
- AMS 310 Survey of Probability and Statistics
- AMS 311 Probability Theory
- AMS 312 Mathematical Statistics
- AMS 315 Data Analysis
- AMS 335 Game Theory
- AMS 341 Operations Research I: Deterministic Models
- AMS 342 Operations Research II: Stochastic Models
- EST 412 Intelligence Organizations, Technology, and Democracy
- Project:
Completion of either CSE 487 Research in Computer Science or CSE 495-496 Senior Honors Research Project I-II, on a topic in information assurance.
The Honors Program in Computer Science
The Honors Program in Computer Science, a highly selective academic program within the major in computer science, offers a specially designed curriculum to a limited number of exceptional students. The program is open to freshmen and to continuing students. To be admitted as a freshman, students must demonstrate overall academic excellence by achieving a combined SAT score of 1350, a unweighted high school average of at least 93, and high grade averages in mathematics and the natural sciences. Continuing computer science majors who have completed at least three CSE courses and have maintained a cumulative grade point average of 3.50 and an average of 3.50 in CSE courses may apply for admission to the honors program in the sophomore or junior year. Continued participation in the program requires that students maintain a grade point average of 3.50, both cumulative and in all CSE courses.
Honors course offerings include introductory course sequences in programming and in the foundations of computing, advanced courses on selected topics that reflect active research areas within the department, and a two-semester senior honors project. Students will be able to take at least one honors course each semester throughout a four-year program of study. Honors program students must complete the regular requirements of the computer science major, but up to two-thirds of the required computer science courses (see items 1–3 in the above list) can be covered by honors courses. Final conferral of honors is contingent upon successful completion of all required courses in the computer science major including a minimum of three honors courses, plus the two-semester honors project., with a cumulative grade point average of 3.50 and an average of 3.50 in all CSE courses.
Honors students with a grade point average of 3.50 at the end of the junior year 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 who decide to enroll in the B.S./M.S. program will be considered for a tuition waiver in the fifth year as well as for a graduate student assistantship. (It is recommended that these students complete an undergraduate teaching practicum in the junior or 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- CSE 113 Foundations of Computer Science I
- CSE 114 Computer Science I
- CSE 214 Computer Science II
- CSE 219 Computer Science III or CSE 220 Computer Organization and Systems Programming
- Three upper-division CSE or ISE courses (excluding CSE/ISE 300, 475, 487, 488.)
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.
|
|