Department of Computer Science

Main Page Content

Department of Computer Science

( 585) 395-2194

Chairperson and Professor: Kadathur B. Lakshmanan, PhD, Ohio State University.
Professors: Kulathur S. Rajasethupathy, PhD, Tata Institute, Bombay, India; Thambrahalli M. Rao, PhD, Indian Institute of Science, Bangalore, India.
Assistant Professors: Joan M. Lucas, PhD, Princeton University; Sandeep Mitra, PhD, SUNY Binghamton; Anthony Scime DA, George Mason University.

Computer science is the study of theory and practice of computation. It incorporates aspects of several other fields: mathematics, to analyze the properties of algorithms and data structures; engineering, to design and construct practical programs and machines; the experimental sciences, both to investigate the behavior of programs running on real machines and to use programs for modeling scientific phenomena; and the cognitive sciences, to develop "intelligent" programs and to study computation in relation to human intelligence.

Computer science is a young and rapidly developing field. Its chief areas of specialization, reflected in regular course offerings at SUNY Brockport, are: programming methodology; design and analysis of algorithms, software engineering, and programming languages; database systems; graphics; computer architecture; systems programming; modeling and simulation; artificial intelligence; and networking. Other areas are covered in independent-study and topics courses. Although the department does not offer a graduate degree program, a variety of courses are offered at the graduate level.

Computer Science MSAgreement with SUNY Binghamton

The Department of Computer Science at SUNY Brockport, under an agreement with SUNY Binghamton, offers master's-level courses in computer science that can be counted towards fulfilling the requirement for an MS in Computer Science from SUNY Binghamton. This agreement between the two public institutions of higher learning provides an opportunity to the residents of the greater Rochester area to pursue their interests in graduate education at minimal cost. Details about admission and course requirements are briefly summarized below. For more information contact:

Dr. Kadathur B. Lakshmanan, Chair
Department of Computer Science
SUNY Brockport
Tel: (585) 395-2194
Dr. Kanad Ghose, Chair
Department of Computer Science
SUNY Binghamton
Tel: (607) 777-4803

Information on the program is also available here.

Following are the salient features of the program agreement:

  1. Prospective students will have to apply to and satisfy the admissions requirements of SUNY Binghamton. Applicants will have to indicate on their application that they are candidates under the MS program agreement with SUNY Brockport.
  2. Up to four courses can be taken at SUNY Brockport. These will be taught by the computer science faculty at SUNY Brockport. Courses taken at Brockport will be automatically accepted for transfer credit at SUNY Binghamton as long as students maintain a "B" average in those courses.
  3. Students entering the program will have the choice of pursuing either the thesis or the non-thesis option. The course requirements for each of the options are:
    Non-thesis option:
    1. Three required courses,
    2. Seven elective courses selected with the approval of the student's faculty advisor, and
    3. Passing a comprehensive examination.
  4. Thesis option:
    1. Three required courses,
    2. Five courses selected with the approval of the student's faculty advisor, and
    3. A written and defended thesis.
  5. Additional courses may be taken at SUNY Brockport through EngiNet, a distance-learning facility that connects Brockport and SUNY Binghamton.
  6. Depending on student enrollment, the Department of Computer Science at SUNY Brockport may offer additional courses during summer, with the potential of increasing the number of courses that can be taken at SUNY Brockport to more than six.
  7. Students choosing the thesis option will be allowed to pursue their thesis work with SUNY Brockport faculty. This is equivalent to two additional courses.
  8. The degree will be conferred by SUNY Binghamton.

Course Requirements

  1. Complete at least one course in each of the following core areas.
    1. Architecture and Operating Systems *CS-522: Computer Organization and Architecture CS-552: Operating Systems
    2. Programming Languages and Software Design *CS-571: Programming Languages CS 572: Computer Construction
    3. Theoretical Computer Science *CS-573: Automata Theory and Formal Languages CS-575: Design and Analysis of Computer Algorithms
  2. *Course numbers used are from the SUNY Binghamton catalog.
  3. Complete one of the following options:
    1. Seven courses approved by the student's faculty advisor, and passing a comprehensive examination or
    2. Five courses approved by the student's faculty advisor; and written and defended a thesis.

Admissions Policies and Requirements

For admissions policies and requirements of SUNY Binghamton, please contact its Graduate Admissions Office at (607) 777-2151.

CSC 501 Theory of Programming Languages. Prerequisite: CSC 311. Covers programming language concepts, description, design, and evaluation. Includes these topics: language families and history; design principles; BNF and other syntax notations; compilation vs. interpretation; implementation concepts; comparison of features and conventions of various languages, including: data types, structures, declaration, abstraction, binding, scope, conversion, and protection; computational primitives; control structures; sub-programs; I/0; exceptions; concurrency; preprocessors; and programming environments. Requires extensive programming. 3 Cr. Every Semester.

CSC 506 Algorithms and Data Structures. Prerequisites: CSC 205 and MTH 481. Covers the design and analysis of data structures and associated algorithms. Includes these topics: arrays, strings, stacks, linear and generalized lists, multilists, multirings, queues, sets, hashing, trees, graphs, recursion, searching and sorting, and applications such as text processing, polynomials, sparse matrices, storage management, and unlimited-precision arithmetic. Requires extensive programming. 4 Cr. Every Semester.

CSC 511 Computer Architecture. Prerequisites: CSC 303 and 311. Covers the design and organization of digital computers. Includes these topics: digital logic and circuit design, data representation, registers, memories and memory management, CPU and ALU architectures, instruction sets, busses and I/0 systems, interrupt structure, and microprogramming. Also includes virtual machines, parallelism, pipelining and data flow machines. 3 Cr. Every Semester.

CSC 512 Operating Systems. Prerequisites: CSC 303 and 311. Recommended: CSC 319 or knowledge of C and UNIX. Covers basic principles of operating systems. Includes these topics: file systems, CPU scheduling and context switching, memory management and virtual memory, disk scheduling, deadlock, concurrent processes and programming, protection mechanisms, design principles, and attempts at standardization. Also includes an in-depth study of the UNIX operating system. Requires extensive programming. 3 Cr. Spring.

CSC 519 Computer Networks. Prerequisites: CSC 303, 311 and 319. Offers a comprehensive study of the field of computer communications, with emphasis on theoretical aspects of local area net works. Compares specific LANs. Includes these topics: the ISO model, protocols, topologies, error detection and correction, routing, packet switching, virtual circuits, and datagrams. 3 Cr. Fall.

CSC 522 Relational Database Design. Prerequisite: CSC 205. Examines the theory and practice of the relational approach to database design. Includes these topics: DBMS vs. a traditional file processing; relational algebra; normalization; lossless and/or dependency preserving decomposition; query languages such as SQL; query optimization; integrity and security; and database project design. 3 Cr. Fall.

CSC 527 Software Engineering. Prerequisites: CSC 311 and instructor's permission. Introduces software engineering and programming-in-the-large. Includes these topics: life cycle models, development standards, project organization, requirements engineering, configuration management, quality assurance, cost and manpower estimates, specification techniques, design methods and representations, human factors, structured programming, object-oriented programming, testing and integration, validation, maintenance, and documentation. Allows students to work as a project team in class developing a system for an actual customer. Requires communication and writing skills, and extensive programming. 3 Cr. Fall.

CSC 529 Object-Oriented Programming. Prerequisite: CSC 205. Introduces basic concepts in object-oriented programming (OOP) and how to apply OOP techniques using an appropriate OOP language such as Java or C++. Topics include: the OOP programming paradigm, including analysis and design, a survey of related languages, data hiding and encapsulation, inheritance, and polymorphism. Entails implementation of these concepts using appropriate programming language constructs. Requires extensive programming. Spring Semester.

CSC 532 Simulation. Prerequisites: CSC 203 and MTH 281. Covers computer modeling of complex systems with an emphasis on discrete stochastic models. Includes these topics: brief review of random variables, distributions and statistical tests, random number generation, mathematical model of a simple queue, simulation of discrete systems (with SIMSCRIPT), and continuous system simulation. 3 Cr. Fall.

CSC 533 Computer Graphics. Prerequisite: CSC 311. Provides a hands-on approach to computer graphics, emphasizing interactive 2D raster techniques. Includes these topics: graphics models, drawing primitives and clipping, color models, user interaction, 2D geometrical transformations, animation, curve and surface representations, introduction to 3D projections, solid modeling and rendering. Requires extensive programming. 3 Cr. Spring.

CSC 534 Artificial Intelligence. Prerequisite: CSC 205. Introduces artificial intelligence and its languages. Includes these topics: history and state of the art in Al: programming techniques in the languages LISP and PROLOG; fundamental methods in Al, including heuristic search; knowledge representation using predicate logic and production systems; and classic basic problems involving games, graphs, theorem proving, symbolic algebra, expert systems, natural language, etc. Requires extensive programming. 3 Cr. Fall.

CSC 537 Computer-Human Interface Design. Prerequisite: CSC 205. Provides a hands-on introduction to design and implementation of software for streamlined computer-human interaction, emphasizing graphical user interfaces. Includes these topics: theoretical models; design guidelines; implementation and evaluation methodologies; interaction paradigms, e.g., command-line, menus, hypertext, multimedia; case studies of graphical environments, e.g., Microsoft Windows, Macintosh, X-Windows; application areas, e.g., on-line help, data entry/editing, query processing, programming, instruction, process control, and communication. Requires extensive programming. 3 Cr. Spring.

CSC 544 Introduction to Parallel Computing. Prerequisites: MTH 481 and CSC 406. Deals with design and analysis of parallel algorithms. Includes these topics: parallel models of computation; measures of complexity; parallel algorithms for selection, searching, sorting, and merging; matrix algorithms; transitive closure; connected components; and shortest path, minimum spanning tree and routing algorithms. Provides hands-on experience in a parallel programming environment. 3 Cr. Spring.

CSC 583 Theory of Computation. Prerequisites: CSC 203 and MTH 481. Studies formal languages and theory of automata with an emphasis on Church's thesis, "algorithm equals machine." Includes these topics: regular expressions and context-free languages, finite and pushdown automata, Turing machines, computability, undecidability, and complexity of problems. 3 Cr. Spring.

CSC 595 Topics in Computer Science. Prerequisite: Instructor's permission. An advanced course. Addresses current topics in the field. Each offering is motivated by the expertise of the instructor and students' interests. Expects students to complete a major research, design, or development project. Descriptions and prerequisites are published prior to the registration period for the course. Past topics covered included: networking, human factors, computational linguistics, advanced architecture, soft ware engineering, logic programming, program validation, object-oriented programming and parallel algorithms. 3 Cr.

CSC 599 Independent Study in Computer Science. Prerequisite: Instructor's permission. Arranged in consultation with the instructor-sponsor prior to registration. 1-3 Cr.

CSC 601 Theory of Programming Language. Prerequisites: MTH 481, and CSC 401and 406. Presents an advanced mathematical treatment of the underlying principles of programming languages and comparison of the issues as they relate to the main language paradigms: procedural, object oriented, declarative, functional and concurrent. Covers: lexical vs. syntactic vs. semantic structures of languages; objects and classes, inheritance, dynamic binding, and implementation issues; Lambda calculus and recursive functions; logic resolution and unification; and parallel Developmental Disabilities processing, co-routines, and message passing. 3 Cr.

CSC 611 Advanced Computer Architecture. Prerequisites: Graduate standing and equivalent of MTH 346 and 481, and CSC 411. Advanced course in architecture of high-performance computer systems. Emphasizes quantitative analysis. Includes: measuring performance, cost trends, CISC versus RISC, pipelined processors, branch penalties and prediction, memory hierarchy, cache organization, virtual memory, parallel processors, SIMD/MIMD systems, interconnection networks, and distributed computing. 3 Cr.

CSC 683 Automata Theory and Formal Languages. Prerequisite: MTH 481. Provides an advanced treatment of the mathematical foundations of computer science, including the theories of automata, formal languages, computability and computational complexity. Includes some of the fundamental material regarding finite automata and context-free grammars as part of regularly accredited undergraduate programs, covering the material more quickly in this course. 3 Cr.

CIS 504 Multimedia Applications (A). Prerequisites: CIS 303 and 304. Studies multimedia systems and applications in business world. Includes: multimedia applications, hypertext and hypermedia, audio, graphics, images, and full-motion video; multimedia-ready personal computers and workstations, storage devices, operating systems and graphical user interfaces; communication and networking requirements, and multimedia applications on the Internet; file formats, data compression and streaming audio/video; and multimedia authoring tools. 3Cr. Spring.

CIS 519 Computers Networks and Internet Applications (A). Prerequisites: CIS 304 (or BUS 317) and CSC 203. Studies data communication, computer networks, and Internet applications. Includes: Data communication; LAN and WAN applications; Internet and Intranet; e-mail; FTP and Web applications; distributed systems and standards; communication concepts, media, coding of data, and error control; LAN topologies and protocols; bridges, routers and gateways; TCP/IP; client server paradigm; network configuration; performance monitoring; and management, security, and reliability. 3 Cr. Fall.

CIS 522 Physical Design and Implementation of DBMS (A). Prerequisite: CIS 317 (or BUS 417). Covers information systems design and implementation within a database management system environment. Requires students to design and construct a physical system using database software to implement the logical design. Stresses basic knowledge of normalization of data, data modeling, database methods, database design, and the use of databases in business. 3Cr. Spring.

CIS 527 Project Management and Practice (A). Prerequisite: CIS 317 (or BUS 417). Introduces software development and management of the development process. Includes: managing the software life cycle; requirements definition, logical design; physical design, implementation, testing, system integration, and maintenance; design techniques (structured, event-driven and object-oriented); implementation; testing and software quality assurance; delivery and user training; metrics for project management and system performance evaluation; management expectations; personnel management, cost analysis and change management; and management of behavioral and technical project aspects. Is placed in framework of client-server systems. 3 Cr. Spring.

CIS 595 Topics in Information Systems (A). Prerequisite: Published prior to registration each semester. An advanced course that addresses current topics in the field. Each offering of the course is motivated by the expertise of the instructor and by students' interests. Expects students to complete a major research, design, or development project. Descriptions are published prior to the registration period. 3 Cr.

CIS 599 Independent Study in Information Systems (A). Prerequisite: Instructor's permission. Arranged in consultation with the professor/sponsor prior to registration. 1-3 Cr.

Last Updated 7/21/22