01:198:105
Great Insights in Computer Science (3)
Fundamental concepts of computer science for nonscience majors. Influential ideas that have shaped the discipline. Example problems drawn from areas such as artificial intelligence (robotics), bioinformatics (DNA analysis), computer graphics (3-D visualization), networking (high-speed communication), and security (cryptography).
Prerequisite: 01:640:026 or higher, or placement. Not for credit toward the computer science major or minor.
|
01:198:107
Computing for Math and the Sciences (3)
Introduction to computers and programming for noncomputer science majors in math and the sciences. Introduces key ideas in computer science, including programming (MATLAB) and symbolic algebra (MAPLE).
Prerequisite: CALC1 (01:640:135 or 151 or 153 or 191). This course is for math and physical science majors. Not for credit toward the computer science major or minor.
|
01:198:110
Introduction to Computers and Their Application (3)
General survey about what computers are and how they are used, including an introduction to computer programming and contemporary application packages.
Lec. 2 hrs., rec. 1 hr. Students planning further study in computer science should take 01:198:111. Credit not given for both this course and 01:198:170. Not open to students with a declared major in computer science or a prebusiness major.
|
01:198:111
Introduction to Computer Science (4)
Intensive introduction to computer science. Problem solving through decomposition. Writing, debugging, and analyzing programs in Java. Algorithms for sorting and searching. Introduction to data structures, recursion.
Prerequisite: 01:640:115 or placement in CALC1. For students in science, mathematics, and engineering. Credit not given for both this course and 14:332:252.
|
01:198:112
Data Structures (4)
Queues, stacks, trees, lists, and recursion; sorting and searching; hashing; complexity of algorithms; graph representations and algorithms.
Prerequisites: 01:198:111 and CALC1. Credit not given for both this course and 14:332:351.
|
01:198:113
Introduction to Software Methodology (4)
Designing and implementing large software using standard software techniques and tools in JAVA and C. Persistent program objects. Memory management and code maintenance.
Prerequisite: 01:198:112 or 14:332:351.
|
01:198:115
Java for Programmers (1)
Covers all fundamental aspects of Java including data, control structures, classes, objects, inheritance, exceptions, input-output, and core libraries.
Prerequisite: Permission of department. For transfer students who have taken an equivalent course to 01:198:111 in a language other than Java.
|
01:198:170
Computer Applications for Business (3)
Introduction to business applications of spreadsheet software, computer technology, data communications, network applications, and structured programming.
Lec. 2 hrs., rec. 1 hr. This course is for students seeking admission to Rutgers Business School: Undergraduate-New Brunswick. Limited to prebusiness and business majors. Credit not given for both this course and 01:198:110. Not open to students with a declared major in computer science.
|
01:198:195,196
Honors Seminar in Computer Science (1,1)
Discussion of selected topics in computer science.
Prerequisite: Permission of department required. Corequisite: Any course offered by the Department of Computer Science at Rutgers.
|
01:198:205
Introduction to Discrete Structures I (4)
Sets, propositional and predicate logic, logic design, relations and their properties, and definitions and proofs by induction with applications to the analysis of loops of programs.
Prerequisites: 01:198:111 and 01:640:152. Credit not given for both this course and 14:332:202.
|
01:198:206
Introduction to Discrete Structures II (4)
Counting (binomial coefficients, combinations), methods of finding and
solving recurrence relations, discrete probability, regular
expressions and finite automata, basic graph theory.
Prerequisites: 01:198:205 or 14:332:202; 01:640:152. Credit not given for both this course and 01:640:477.
|
01:198:211
Computer Architecture (4)
Levels of organization in digital computer systems; assembly language
programming techniques; comparative machine architectures; assemblers,
loaders, and operating systems. Programming assignments in assembly
language.
Prerequisite: 01:198:112. Credit not given for both this course and 14:332:331.
|
01:198:314
Principles of Programming Languages (4)
Syntax: formal languages, parsing. Design: modeling relations, modules, information hiding, abstraction. Compiler versus interpreter; names; binding; memory; pointers; types. Functional, imperative, object oriented, and logic programming; concurrency.
Prerequisites: 01:198:112; 01:198:205 or 14:332:202.
|
01:198:323
Numerical Analysis and Computing (4)
Approximation, interpolation, numerical differentiation, integration; numerical solution of nonlinear equations, linear algebraic systems, and ordinary differential equations.
Prerequisites: 01:640:152 and 250.
|
01:198:324
Numerical Methods (4)
Computational methods for linear algebraic systems, eigenvalues and eigenvectors, approximation of functions, splines; numerical solution of initial and boundary value problems for differential equations.
Prerequisite: 01:198:323 or 01:640:373. Credit not given for both this course and 01:640:374.
|
01:198:336
Principles of Information and Data Management (4)
Describing and querying various forms of information such as structured data in relational databases, unstructured text (IR), semistructured data (XML, Web), and deductive knowledge. Conceptual modeling and schema design. Basics of database management systems services (transactions, reliability, security, and optimization). Advanced topics: finding patterns in data, information mapping, and integration.
Prerequisites: 01:198:112; 01:198:205 or 14:332:202.
|
01:198:344
Design and Analysis of Computer Algorithms (4)
Study of algorithms. Techniques for efficiency improvement. Analysis of complexity and validity for sorting (internal, external), shortest path, spanning tree, connected and biconnected components, and string matching. Introduction to NP-completeness.
Prerequisites: 01:198:112 and 206.
|
01:198:352
Internet Technology (4)
TCP/IP protocols, media access protocols, socket programming in C/UNIX, multicasting, wireless and mobile communication, multimedia over the internet, ATM, switching theory, and network architectures.
Prerequisites: 01:198:211 or 14:332:331; 01:198:206 or 01:640:477 or 14:332:321.
|
01:198:395,396
Internship in Computer Science (3,3)
Internship providing students with the opportunity to apply their academic skills to solving technical problems in the computer science and information technology (CSIT) industry. Placement in a professional environment where students relate their education in computer science to everyday, practical applications in CSIT.
Prerequisites: 01:198:113 and departmental permission. Note: Internships usually take place during the summer between junior and senior year; however advanced students should consider starting earlier.
|
01:198:405
Seminar in Computers and Society (3)
Study and discussion of the impact of computers on man and society. For all students interested in exploring the social consequences of computer developments.
Prerequisites: At least one computer science course and one course in sociology, political science, anthropology, or philosophy; senior standing. May not be used for major credit.
|
01:198:411
Computer Architecture II (4)
Characteristics of a modern computer. Topics to be covered include pipelining, instruction level parallelism, VLIW and speculative dynamic super scalar architectures, computer arithmetic, assessing performance, memory hierarchy, input-output, and multiprocessors.
Prerequisite: 01:198:211 or 14:332:331.
|
01:198:415
Compilers (4)
Study of compilers and interpreters. Parsing, lexical analysis, semantic analysis, code generation, and optimization.
Prerequisites: 01:198:211 or 14:332:331; 01:198:314.
|
01:198:416
Operating Systems Design (4)
Computer organization, process and thread management, synchronization, scheduling, memory management, virtual memory, I/O management, file systems, and case studies.
Prerequisites: 01:198:211 or 14:332:331; 01:198:113 or 14:332:252.
|
01:198:417
Distributed Systems: Concepts and Design (4)
Introduction to the concepts and design principles used in distributed computer systems. Communication methods, concepts and strategies used in distributed services such as file systems, distributed shared memory, and distributed operating systems.
Prerequisite: 01:198:416.
|
01:198:419
Computer Security (4)
Introduction to computer security. Topics include applied cryptography, authentication, authorization and basic security principles, as well as recent topics such as web security and virtual machine-based security.
Prerequisites: 01:198:205 or 14:332:202; and one of 01:198:416 or 01:198:352.
|
01:198:424
Modeling and Simulation of Continuous Systems (4)
Principles and examples of mathematical models in the physical, economic, and life sciences. Numerical methods for differential equations. Special computers and languages for the simulation of continuous systems. Individual projects.
Prerequisite: 01:198:221 or 323 or 01:640:373, or permission of instructor.
|
01:198:425
Computer Methods in Statistics (4)
Computer science in applied and theoretical statistics; exploratory data analysis; algorithms for univariate and multivariate statistical analyses; use of statistical libraries; Monte Carlo and simulation.
Prerequisites: 01:198:206 or equivalent; CALC2. Strongly recommended: Numerical methods (01:198:221, 01:198:323, or 01:640:373).
|
01:198:428
Introduction to Computer Graphics (4)
Displays, colors, perception, images, sampling, image processing, geometric transformations, viewing and visibility, modeling hierarchies, curve and surface design, animation, lighting, rendering, rasterization, shading, and ray tracing.
Prerequisites: CALC2 and 01:640:250; 01:198:112 or 14:332:351. Credit not given for both this course and 14:332:474.
|
01:198:431
Software Engineering (4)
Problems and techniques involved in the specification, design, and implementation of large-scale software systems, studied in conjunction with actual group construction of such a system.
Prerequisites: 01:198:113 and an approved upper-level computer science course with a substantial programming component--see department webpage for list of qualifying courses.
|
01:198:440
Introduction to Artificial Intelligence (4)
Broad introduction to artificial intelligence, including search, knowledge representation, natural language understanding, and computer vision.
Prerequisite: 01:198:314.
|
01:198:442
Topics in Computer Science (3-4)
Advanced topics in computer science. Topics vary from year to year according to the interests of students and faculty.
|
01:198:452
Formal Languages and Automata (3)
Finite automata and regular languages; context free languages, pushdown automata, and parsing; language hierarchies; Turing machines; decidability and complexity of languages. Applications emphasized throughout.
Prerequisite: 01:198:344.
|
01:198:476
Advanced Web Applications: Design and Implementation (4)
Comprehensive overview of current web technologies, including design and implementation principles for web-based applications. Basic principles of scalability, security, reliability, and performance. State-of-the-art review of currently available technologies.
Prerequisites: 01:198:336 and 417.
|
01:198:493,494
Independent Study in Computer Science (BA,BA)
|