



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Information about the Department of Computer Science at Rutgers University, including the major requirements for the Bachelor of Science (B.S.) and Bachelor of Arts (B.A.) degree programs. It outlines the courses and credit requirements for each degree, as well as the natural science and mathematics prerequisites. Students can choose between two degree programs, each with identical computer science requirements but differing in natural science and mathematics requirements.
Typology: Lecture notes
1 / 5
This page cannot be seen from the preview
Don't miss anything!




Department of Computer Science
Chairperson: Jean-Camille Birget
Professor: Michael A. Palis, B.S.E.E., Philippines; Ph.D., Minnesota
Associate Professors: Jean-Camille Birget, B.S., Ecole Centrale de Paris; M.S., Ph.D., California (Berkeley) Guy Kortsarz, Ph.D., Weizmann Sunil M. Shende, B.Tech., Indian Institute of Technology; Ph.D., Pennsylvania
Assistant Professors: Dawei Hong, Ph.D., Nebraska (Lincoln) Patricia Johann, B.A., Reed; Ph.D., Wesleyan Suneeta Ramaswami, B.A., Wellesley College; Ph.D., Pennsylvania
Technical Tracks
Minor Requirements: CCAS and UC–C
Departmental Honors Program
Prerequisite: 50:198:113. Characteristics of graphics display devices and systems; represen- tation, manipulation, and display of two- and three-dimensional objects; curve and surface modeling; two- and three-dimensional transformations; hidden lines and surfaces; shading and coloring; interactive graphics and user interfaces; animation techniques.
50:198:361. ARTIFICIAL INTELLIGENCE (3) Prerequisites: 50:198:113 and 50:640:237. Techniques and applications of artificial intelligence: search, rule- based reasoning, statistical reasoning, game playing, machine learning, knowledge representation. The use of heuristics to obtain satisfactory solutions to intractable problems.
50:198:376. INTRODUCTION TO THE THEORY OF COMPUTATION (3) Prerequisite: 50:640:237. Introduction to the theory of computability, including important results from the study of automata and formal languages. Auto- mata and their relationship to regular, context-free, and context- sensitive languages. General theories of computability, including Turing machines, recursive functions, and lambda calculus. Notions of decidability and undecidability, complexity classes, and com- plexity analysis.
50:198:381. INTRODUCTION TO NUMERICAL METHODS (3) Prerequisites: 50:198:111 and 50:640:221. Methods of finding roots, interpolation, curve fitting, integration, differentiation, and minimization; estimation and control of vari- ous computational errors.
50:198:421. COMPILER CONSTRUCTION (3) Prerequisites: 50:198:221, 231, and 376. Introduction to compiler design and implementation, including lexical analysis, formal syntax specification, parsing techniques, syntax-directed translation, semantic analysis, execution environ- ment, storage management, code generation, and optimization techniques.
50:198:426. INFORMATION SYSTEMS ANALYSIS AND DESIGN (3) Prerequisite: 50:198:351. Overview of information systems; analysis of existing systems; requirements determination; design of information systems including interface, inputs, outputs, database. Group analysis and design project. Alternative development methodologies. Modern tools for analysis and design.
50:198:431. HIGH -PERFORMANCE COMPUTER ARCHITECTURES (3) Prerequisites: 50:198:231 and 333. Architecture of pipelined and superscalar processors, vector super- computers, multiprocessors, parallel computers, multithreaded processors, and dataflow processors. System interconnect architec- tures, memory hierarchy design, and input/output subsystems. System design issues such as shared memory and message-passing communication models, cache coherence and synchronization mechanisms, latency-hiding techniques, virtual memory manage- ment, and task scheduling.
50:198:441. DISTRIBUTED SYSTEMS (3) Prerequisite: 50:198:341. Models of distributed systems, distributed algorithms and protocols, operating systems support, programming paradigms. Case studies of experimental and commercial systems.
50:198:458. SCIENTIFIC VISUALIZATION (3) Prerequisites: 50:198:113, 381, and 50:640:250. Study of visualization techniques useful for the analysis and inter- pretation of scientific and engineering data. Topics include two- and three-dimensional data types; visual representation schemes for scalar, vector, and tensor data; isosurface and volume visualiza- tion methods; animation; and interactive manipulation of data.
Prerequisite: 50:198:271. Advanced and specialized topics in algorithms, selected from parallel algorithms, randomized algorithms, combinatorial optimi- zation, or other.
50:198:473. INTRODUCTION TO COMPUTATIONAL GEOMETRY (3) Prerequisite: 50:198:271. Algorithms and data structures for geometric problems that arise in various applications, such as computer graphics, CAD/CAM, robotics, and geographical information systems (GIS). Topics include point location, range searching, intersection, decomposi- tion of polygons, convex hulls, and Voronoi diagrams.
50:198:475. CRYPTOGRAPHY AND COMPUTER SECURITY (3) Prerequisite: 50:198:271. Secret-key cryptography, public-key cryptography, key arrange- ment, secret sharing, digital signatures, message and user authenti- cation, one-way functions, key management; attacks; practical applications to computer and communication security.
50:198:481. ADVANCED NUMERICAL METHODS (3) Prerequisites: 50:198:381, 50:640:250 and 314. Numerical techniques for solving linear algebraic systems, eigen- value problems, least squares, quadrature. Numerical solution of initial and boundary value problems for ordinary and partial dif- ferential equations.
50:198:483. LINEAR PROGRAMMING (3) Prerequisites: 50:640:221 and 250. Linear programming using the simplex method and dual linear programming. Applications of linear programming to network flows and other problems. Convex sets and elements of convex programming. Combinatorial optimization. Integer programming.
50:198:485. COMPUTATIONAL MATHEMATICS (3) Prerequisite: 50:640:250. Credit not given for both this course and 50:640:498. Computational aspects of number theory, with a brief introduction to underlying theories. Topics include prime numbers, pseudo primes, and their applications especially in cryptography; prime factorization of composite numbers via several different methods. Computer simulation emphasized.
50:198:487. VISUALIZING MATHEMATICS BY COMPUTER (3) Prerequisite: 50:640:221. Credit not given for both this course and 50:640:497. A comprehensive introduction to symbolic computational packages and scientific visualization through examples from calculus and geometry. Covers 2-D, 3-D, and animated computer graphics using Maple, Mathematica, and Geomview.
50:198:491,492. SPECIAL TOPICS IN COMPUTER SCIENCE (3,3) Prerequisite: As announced or permission of instructor. In-depth study of areas not covered in regular curriculum. Topics vary from term to term.
50:198:493. SENIOR DESIGN PROJECT (3) Prerequisite: Senior standing or permission of instructor. Design, implementation, and demonstration of a significant soft- ware and/or hardware project. Project proposals must be submitted and approved by instructor. Part of the lecture time used to discuss such issues as the historical and social context of computing, responsibilities of the computing professional, risks and liabilities, and intellectual property.
50:198:494. INDEPENDENT STUDY (BA) Prerequisite: Permission of instructor. Individual study under the supervision of a computer science fac- ulty member; intended to provide an opportunity to investigate areas not covered in regular courses.
Prerequisite: Approval by department. A program of readings and guided research in a topic proposed by the student, culminating in an honors thesis presented to the departmental faculty for approval.
50:198:497. COMPUTER SCIENCE INTERNSHIP (BA) Prerequisite: Approval by department. The practical application of computer science knowledge and skills through an approved internship in a sponsoring organization. Arrangements for the internship must be agreed upon by the spon- soring organization and approved by the department before the beginning of the term. Students should consult the department for detailed instructions before registering for this course.