Rutgers, The State University of New Jersey
Camden Undergraduate
 
About the University
Undergraduate Education in Camden
Degree Requirements
Liberal Arts Colleges
Camden College of Arts and Sciences
University College-Camden
Programs, Faculty, and Courses
Course Notation Information
Availability of Majors
Engineering Transfer 005
Accounting 010
African American Studies 014
Agriculture and Environmental Sciences
American History 512
American Literature 352
American Studies 050
Anthropology 070
Art (Art 080, Art History 082)
Arts and Sciences 090 (Interdisciplinary Courses)
Astronomy 100
Biochemistry 115
Biology 120
Biomedical Technology 124
Business Administration 135
Business Law 140
Chemistry (Biochemistry 115, Chemistry 160)
Childhood Studies 163
Classical Studies Minor
Computer Science 198
Major Requirements: CCAS and UC–C
Bachelor of Science (B.S.) in Computer Science
Bachelor of Arts (B.A.) in Computer Science
Minor Requirements: CCAS and UC–C
Departmental Honors Program
Joint B.S./M.S. Degree Program
Courses
Criminal Justice 202
Dance 203
Ecommerce and Information Technology 623
Economics 220
Education
Engineering Transfer Program 005
English (English Literature 350, American Literature 352, Film 354, Journalism 570, Linguistics 615, Writing 989)
European Studies 310
Finance 390
Fine Arts (Art 080, Art History 082; Museum Studies 698; Music 700, 701; Speech 950; Theater Arts 965)
Foreign Languages and Literatures (French 420, German 470, Italian 560, Russian 860, Spanish 940)
Geology 460
History (Historical Methods and Research 509; European History 510; American History 512; African, Asian, Latin American, and Comparative History 516)
Home Economics 520
Honors College 525
International Studies Program 549
Student-Proposed Majors and Minors 555
Journalism 570
Justice and Society 572
Latin American Studies Minor
Law
Liberal Studies 606
Linguistics 615
Management 620
Marketing 630
Mathematical Sciences (Mathematics 640, Statistics 960)
Media Studies 657
Medicine, Dentistry, and Veterinary Medicine
Museum Studies 698
Music 700, 701
Nursing 705
Pharmacy 720
Philosophy and Religion 730, 840
Physics 750
Political Science 790
Psychology 830
Religion 840
Reserve Officer Training Programs
Russian 860
General Science 890
Social Work 910
Sociology (Anthropology 070, Criminal Justice 202, Sociology 920)
Spanish 940
Speech 950
Statistics 960
Teacher Preparation Program 964
Theater Arts (Dance 203, Speech 950, Theater Arts 965)
Urban Studies and Metropolitan Planning 975
Walt Whitman Program in American Studies
Women's Studies 988
School of Business-Camden
Academic Policies and Procedures
Divisions of the University
Camden Newark New Brunswick/Piscataway
Catalogs
  Camden Undergraduate Catalog 2008-2010 Liberal Arts Colleges Programs, Faculty, and Courses Computer Science 198 Courses  

Courses

50:198:100 A Tour through Computer Science (3) A broad overview of the field designed to provide students with an appreciation for and an understanding of the history of computing, basic concepts in logic, algorithmic problem solving, computer systems architecture, programming, operating systems, networks, and the World Wide Web. No background in computer science is assumed. This course is intended for majors as well as nonmajors. Prerequisite: 50:640:042 or appropriate score on the mathematics placement test.
50:198:105 Introduction to Computing for Engineers and Scientists (3) Fundamental concepts of structured programming and algorithmic problem solving using MATLAB. The course content will be substantially similar to that in 50:198:111 but with an emphasis on problems and techniques (such as model building and plotting) for engineers and scientists. Computer science majors cannot use the credits from this course toward their major requirements. Corequisites: 50:640:121 or 129 or 130.
50:198:111 Programming Fundamentals (R) (3) Fundamental concepts of structured programming and algorithmic problem solving: primitive data types, control structures, functions and parameter passing, top-down design, arrays, files, and the mechanics of compiling, running, testing, and debugging programs. These concepts will be taught using a high-level language such as C/C++ or Java.
Corequisites: 50:640:121, 129, or 130 and 50:198:112.
50:198:112 Software Laboratory I (R) (1) Formal laboratory that provides practice in designing and testing computer programs based closely on lecture material presented in 50:198:111. Also provides a quick introduction to the Unix operating system including the Unix shell, the file system, and programming tools such as editors, compilers, debuggers, libraries, and other utilities. 
Corequisite: 50:198:111.
50:198:113 Object-Oriented Programming (R) (3) Principles of object-oriented program design and advanced algorithmic problem solving illustrated through an object-oriented language. Topics include encapsulation and information hiding; classes, subclasses, and inheritance; polymorphism; class hierarchies, and the creation, implementation, and reuse of APIs (Application Programming Interfaces). Extensive practice with designing and implementing object-oriented programs, especially using elementary data structures such as linked lists, stacks, and queues.
Prerequisites: 50:640:121, 129, or 130, and 50:198:111. 
50:198:114 Software Laboratory II (R) (1) Formal laboratory that provides practice in designing and testing computer programs based closely on lecture material presented in 50:198:113. Prerequisite: 50:198:112. Corequisite: 50:198:113.
50:198:171 Mathematical Foundations of Computer Science (R) (3) Sets, relations, and functions; pigeon-hole principle; cardinality, countability, and uncountability; propositional and predicate logic; universal and existential quantification; proof techniques: formal proofs using counterexample, contraposition, contradiction, and induction; recursive definitions; basic counting: inclusion-exclusion, arithmetic, geometric progressions, and summations; properties of special functions such as logarithms, exponentials, and factorials; permutations and combinations, solving recurrences; graphs and trees; basic discrete probability. Prerequisite: 50:640:113 or by placement.
50:198:213 Data Structures (R) (3) Basic algorithmic analysis: asymptotic notation (Big-Oh, little-oh, and Theta) for estimating the complexity of a problem, using recurrence relations to analyze the complexity of recursive algorithms. Tree-based data structures: binary search trees, heaps, and balanced search trees; hash functions and hash tables; abstract dictionaries; using data structures to implement basic algorithms (such as searching, sorting, and depth- and breadth-first search in graphs; data compression). Prerequisites: 50:198:113 and 171.
50:198:231 Introduction to Computer Organization  (3) Elementary digital logic; machine-level representation of data; assembly-level machine organization: the von Neumann machine with its fetch-decode-execute cycle, instruction sets, and assembly language programming; addressing modes; subroutine calls and returns; I/O and interrupts; memory systems: hierarchy, organization, and operations. Prerequisites: 50:198:111 and 171.
50:198:316 Parallel Programming (3) Fundamental issues in the design and development of parallel programs for various types of parallel computers. Various programming models according to both machine type and application area. Cost models, debugging, and performance evaluation of parallel programs with actual application examples. Programming techniques and optimization. Programming exercises on a contemporary parallel machine. Prerequisites: 50:198:113 and 171.
50:198:321 Programming Language Concepts (3) Develops an understanding of the design space of programming languages via the study of interpreters for a sequence of increasingly robust object languages. Topics include abstract and concrete syntax, operational semantics, functions as first-class values, recursion over data types, substitution model and environment model interpreters, call-by-name and call-by-value interpretation, binding constructs and scope, desugaring, and dynamic type checking. Interpreters are implemented in the functional programming language scheme. 
Prerequisites: 50:198:113 and 171.
50:198:323 Software Methodology and Engineering (3) Principles and techniques for the design and construction of reliable, maintainable, and useful software systems. Software life cycle, requirements specifications, and verification and validation issues. Implementation strategies (e.g., top-down, bottom-up, teams), support for reuse, and performance improvement. A treatment of human factors and user interfaces included. Prerequisites: 50:198:113 and 171.
50:198:325 Java Applications (3) Java class hierarchy and inheritance; applications and applets; graphical user interfaces, exception handling, input/output; multithreading, multimedia, and networking. Prerequisites: 50:198:113 and 231.
50:198:333 Computer Hardware and Interfacing (3) Introduction to digital logic, combinational circuits, and sequential circuits. Introduction to microprocessor architecture and organization, operation and programming, interfacing, and application of microprocessors. Prerequisites: 50:198:171 and 231. Credit not given for both this course and 50:750:308. Corequisite: 50:198:334.
50:198:334 Computer Hardware and Interfacing Laboratory (1) Provides hands-on experience in digital design using PLA/PLD devices, EEPROM, and MSI/LSI circuits, and interfacing of microprocessors to memory and peripherals. Credit not given for both this course and 50:750:312. Corequisite: 50:198:333.
50:198:347 Computer Systems Administration (3) Basic administration of networked computer systems (such as Unix and/or Windows NT). Installing and configuring the operating system, upgrading software and hardware, installing patches, system backups, security issues, account creation and deletion, system accounting and log files, job scheduling, performance monitoring, tcp/ip and networking, client/server file sharing and printing, file layout and organization, disk and tape administration, and a look at several administrative tools. Prerequisite: 50:198:231.
50:198:361 Artificial Intelligence (3) Techniques and applications of artificial intelligence: search, rule-based reasoning, statistical reasoning, game playing, machine learning, and knowledge representation. The use of heuristics to obtain satisfactory solutions to intractable problems. Prerequisites: 50:198:113 and 171.
50:198:371 Design and Analysis of Algorithms (3) Algorithm design techniques: divide-and-conquer, greedy method, dynamic programming, backtracking, and branch-and-bound. Advanced data structures, graph algorithms,  and algebraic algorithms. Complexity analysis, complexity classes, and NP-completeness. Introduction to approximation algorithms and parallel algorithms. Prerequisites: 50:198:171 and 213.
50:198:381 Introduction to Numerical Methods (3) Methods of finding roots, interpolation, curve fitting, integration, differentiation, and minimization; estimation and control of various computational errors. Prerequisites: 50:198:111 and 50:640:221.
50:198:421 Compiler Construction (3) Introduction to compiler design and implementation, including lexical analysis, formal syntax specification, parsing techniques, syntax-directed translation, semantic analysis, execution environment, storage management, code generation, and optimization techniques. Prerequisite: 50:198:321.
50:198:431 Computer Systems Architecture (3) Processor design; memory hierarchy design; cache coherence and consistency; input/output subsystems. Multiprocessor and massively parallel architectures. Prerequisite: 50:198:231.
50:198:437 Signal Processing (3) Signal modeling and system representation. Themes in system design;  representation of discrete causal signals: Fourier analysis and fast Fourier transforms. Realization of linear recurrent structures; stability analysis.  Prediction, filtering, and identification.
Prerequisites: 50:640:221 and 50:198:231.
50:198:441 Parallel and Distributed Computing (3) Fundamental issues in the design and development of algorithms and programs for parallel computers. Programming models and performance optimization techniques; application examples and programming exercises on a contemporary parallel machine; cost models and performance analysis and evaluation. Prerequisites: 50:198:113 and 171.
50:198:443 Operating Systems (3) A comprehensive, hands-on coverage of operating system principles, design, and implementation. Topics include kernel development; process concurrency issues such as starvation, mutual exclusion, deadlock avoidance, concurrency models and mechanisms, producer-consumer problems, and synchronization; scheduling policies and algorithms for preemptive and nonpreemptive scheduling; memory management and analysis of paging and segmentation policies; and file systems. Prerequisite: 50:198:231.
50:198:446 Computer Networks (3) Introduction to computer communication networks, including physical and architectural components, communication protocols, switching, network routing, congestion control, and flow control. End-to-end transport services, network security, and privacy. Networking software and applications. Network installation, testing, and maintenance. Prerequisite: 50:198:231.
50:198:451 Database Systems (3) Relational database theory and practice, including database design. Database concepts, relational algebra, data integrity, query languages, and views. Introduction to object-oriented databases. Application project with a practical database management system. Prerequisites: 50:198:113 and 171.
50:198:456 Computer Graphics (3) Graphics systems and imaging principles, graphics programming using packages such as OpenGL, input devices, interactive techniques, animation techniques, geometric transformations and modeling in two and three dimensions, viewing in 2-D and 3-D, lighting and shading, and fundamental graphics algorithms (such as clipping and hidden surface removal). Prerequisite: 50:198:113.
50:198:471 Advanced Algorithms (3) Advanced and specialized topics in algorithms, selected from parallel algorithms, randomized algorithms, and combinatorial optimization. Prerequisite: 50:198:371.
50:198:473 Introduction to Computational Geometry (3) 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, decomposition of polygons, convex hulls, and Voronoi diagrams. Prerequisites: 50:198:113 and 171.
50:198:475 Cryptography and Computer Security (3) Secret-key cryptography, public-key cryptography, key arrangement, secret sharing, digital signatures, message and user authentication, one-way functions, key management; attacks; and practical applications to computer and communication security. Prerequisites: 50:198:113 and 171.
50:198:476 Introduction to the Theory of Computation (3) Formal languages, automata and computability; regular languages and finite-state automata; context-free grammars and languages; pushdown automata; the Church-Turing theses; Turing machines; decidability and undecidability.
Prerequisites: 50:198:171 and 213.
50:198:481 Advanced Numerical Methods (3) Numerical techniques for solving linear algebraic systems, eigenvalue problems, least squares, and quadrature. Numerical solution of initial and boundary value problems for ordinary and partial differential equations. Prerequisites: 50:198:381, 50:640:250 and 314.
50:198:487 Visualizing Mathematics by Computer (3) 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. Prerequisite: 50:640:221. Credit not given for both this course and 50:640:497.
50:198:491,492 Special Topics in Computer Science (3,3) In-depth study of areas not covered in regular curriculum. Topics vary from semester to semester.
Prerequisite: As announced or permission of instructor.
50:198:493 Senior Design Project (3) Design, implementation, and demonstration of a significant software 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. This course is intended for computer science majors in their senior year who have completed at least three 300- or 400-level courses in computer science.
Prerequisite: 50:198:213, 231, and approval by department.
50:198:494 Independent Study (BA) Individual study under the supervision of a computer science faculty member; intended to provide an opportunity to investigate areas not covered in regular courses. Prerequisite: Permission of instructor.
50:198:495-496 Honors Program in Computer Science (BA,BA) 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. Prerequisite: Approval by department.
50:198:497 Computer Science Internship (BA) 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 sponsoring organization and approved by the department before the beginning of the semester. Students should consult the department for detailed instructions before registering for this course. Prerequisite: Approval by department.
 
For additional information, contact RU-info at 732/932-info (4636) or colonel.henry@rutgers.edu.
Comments and corrections to: Campus Information Services.

© 2009 Rutgers, The State University of New Jersey. All rights reserved.