Computer Science:
Descriptions taken from Rutgers University's CS Department's Website.
- Intro to Computer Science: A
"Programming process: problem analysis, program design, algorithm construction, coding, testing/debugging. Object-oriented programming using the Java language. Test case construction, driver development. Iteration. Recursion. Introduction to data structures (arrays, linked lists). Efficiency analysis (algorithm complexity). Exception handling. Inheritance and polymorphism."
- Data Structures: B
"Linked lists, stacks, queues, binary trees, sequential search, binary search, binary search trees, balanced binary search trees, hash tables, heaps for priority queues, graphs and graph algorithms, sorting algorithms, asymptotic analysis of time and space requirements."
- Intro to Discrete Structures I: A
"Basic Set Notation, Propositional Logic, Truth Tables, Boolean Circuits, First-Order Logic, Predicates. Quantifiers. Mathematical Induction: Program Correctness, Trees, Grammars. Relations: Closures of relations. Orders, Equivalence Relations, Functions
Finite-State Machines."
- Intro to Discrete Structures II: B+
"Counting: Binomial Coefficients, Permutations, Combinations. Recurrence Relations. Discrete Probability: Events and Random Variables. Conditional Probability, Independence. Expectation, Variance, Standard Deviation. Binomial, Poisson and Geometric Distributions."
- Computer Architecture: A
"Digital logic, registers, instruction counter, memory hierarchies, paging, micro-code, cache, etc. Assembly language techniques, including macro-instruction definition
Assemblers and loaders. Data representation and computer arithmetic."
- Principles of Programming Languages: A
"BNF and context free grammars. Data visibility (i.e., lexical and dynamic
scoping). Procedures and parameter passing techniques. Types, type checking
and type equivalence. Functional programming paradigm: higher-order
functions, recursive data structures, programming with recursion (i.e., without
iteration). Logic programming paradigm: unification, generate and test;
Programming with pointers in C."
- Numerical Analysis and Computing: A
"Solution of non-linear equations. Solution of linear algebraic systems. Approximation, interpolation. Numerical differentiation and integration. Solution of ordinary differential equations."
- Design and Analysis of Comp Algorithms: A
"Methods for expressing and comparing complexity of algorithms: worst and average cases, lower bounds on algorithm classes, verification of correctness. Application of such analysis to variety of specific algorithms: searching, merging, sorting (including quick and heap internal and Fibonacci external sorts); graph problems (including connected components, shortest path, minimum spanning tree. and biconnected components); language problems (including string matching and parsing)."
- Operating Systems Design: A
"Computer organization. Process management, synchronization, scheduling and deadlocks. Memory management, virtual memory. I/0 management, file systems."
- Principles of Info and Data Management: A
"Describing and querying various forms of information: structured data in relational databases, unstructured text (IR), semi-structured data (XML, web), deductive knowledge. Conceptual modeling and schema design. Basics of database management system services (transactions, reliability, security, optimization). Advanced topics:
finding patterns in data, information mapping and integration."
- Distributed Systems: Concepts and Design: A
"Topics will range from the theoretical to the practical with a strong emphasis on the practical, such as client-server programming, remote procedure/method calls, multicasting, firewall design, distributed file systems, machine virtualization, clustering, cryptography, and authentication protocols."
- Internet Technology: A
"Communication media; protocol layers, TCP/IP protocols, wireless protocols, high speed protocols, routing, and switching architectures. Interprocess communication, client-server interaction, and socket programming. Emerging trends and technologies such as high speed asynchronous transfer mode (ATM) communication, wireless communication, and videoconferencing."
- Advanced Web Applications: Design and Implementation: A
"Specifically, the course includes the HTTP and HTTP-NG protocols, MIME, application architectures (CGI, SSI, client-side and server-side applets, proxies, etc.), server and browser design. It also includes an overview of scripting languages such as Perl and an overview of the main features of Java."
Cognitive Science:
- Cognitive Science: A
- Cognition: A
- Intro to Logic: A
- Conditioning and Learning: A
- Philosophy of Mind: B+
- Philosophy of Psychology: A
- Principles of Cognitive Science: A
Other Classes:
- Calculus I and II: A
- Physics, Physics Lab I and II: B+
- Intro to Linear Algebra: B
- Hindu Philosophy: A
- Seminar in Computers and Society: A
- Abnormal Psychology: A
- Social Psychology: A
- Web Authoring: A
- Health Psychology: A
- Wine Insights: A