Undergraduate Women 1999-2000
Back to course index | Back
to main index

Major: Stern College
COMP 1315C, 1336C, 1502, 1503, 2101C or 3402, 3610 or 3640, 3543, 3544; 9 additional
credits in COMP advanced electives chosen with the approval of the discipline advisor; MAT
1412, 1413, 2105. Recommended: PHY 1041-1042
R&L, 1724. Students interested in
computer hardware should take COMP 2101C and 2146C. Note
also the Computer track of the Mathematics major.
Minor: Stern College
COMP 1315C, 1336C, 1502, 3543 and 6 additional credits in COMP electives approved by the
discipline adviser; MAT 1412, 1413.

1010C
Introduction to Computers and Their Applications. 3 hours of lecture. 2 hours of lab. 3
credits.
Computer hardware, software, and firmware; personal productivity software: wordprocessing,
graphics, and spreadsheets; data-base management systems and programming languages. May
not be used for the Computer Science major or minor.
1115C
Introduction to Computer Applications and Programming. 3 hours of lecture. 2 hours of lab.
3 credits.
Windowstm operating system, basic
concepts and techniques of an office productivity suite. Microsoft OFFICE Professional. Fundamentals of problem solving using computers. Visual Basic for Applications as a basis for
extending and customizing the basic applications. Extending
Workgroup computing to the Internet.
1315C
Introduction to Computer Science and Programming I. 3 hours of lecture. 2 hours of lab. 3
credits.
Components of a computer system; machine, assembly, and high-level languages; numerical
systems and coding; representation of data and instructions; data types, constants,
variables; arithmetic expressions; logical expressions; assignment statement; sequencing, alteration, and iteration;
arrays, subprograms, and parameters; simple I/O;
techniques of problem solving; flowcharting; stepwise refinement; simple numerical
examples; basic search and sort algorithms.
1336C
Introduction to Computer Science and Programming II. 3 hours of lecture. 2 hours of lab. 3
credits.
Principles of good programming style, expression, and documentation; control flow;
invariant relation of a loop; stepwise refinement of statements and data structures or
top-down programming; string processing; concatenation, substrings, matching; internal
searching and sorting; recursion; linked lists and linear allocation (stacks, queues,
deques).
Prerequisite: COMP 1315C.
1502,1503
Discrete Structures. 3 hours of lecture. 2 hours of lab. 3 credits.
Selected topics from the foundations of computer science: lists, sets, functions and
relations; combinatorics and probability; finite state machines and regular expressions;
trees and tree transversals; context free grammars; graph theory and algorithms; boolean
algebra and logic; gates and circuits.
1621
Theory of Computation. 3 credits.
Deterministic and nondeterministic finite state automata; regular grammars and regular
expressions; languages generated by regular expressions; equivalence of regular
expressions and finite automata; solvable problems concerning finite automata;
context-free grammars; languages generated by context-free grammars; derivation trees;
simplification of context-free grammars; push-down automata; properties of context-free
languages; solvable and unsolvable problems concerning context-free languages; Turing
machine model; Universal Turing machine; Halting problem; further examples of solvable and
unsolvable problems about Turing machines, grammars, and sets.
Prerequisite: COMP 1503.
1622
Formal Languages. 3 credits.
Formal grammars; Chomsky hierarchy; deterministic and nondeterministic models of finite
automata, push-down automata, linear bounded automata, and Turing machines; relationship
between formal languages and automata; decision problems; closure properties; solvable and
unsolvable problems; applications to parsing.
Prerequisite: COMP 1502, 1821, and 3640.
1821
Computability. 3 credits.
Functions computable by problems; simulation and diagonalization; Godel numbering and
unsolvability results; Halting problem; Post's correspondence problem; recursion theorem;
Ackerman's function; abstract complexity and the speed-up theorem; Tue and Norman systems.
Prerequisite: COMP 1502 and 3640.
2101C
Introduction to Computer Organization. 2 hours of lecture. 3 hours of laboratory. 3
credits.
Representation of both data and control information by digital signals; logical devices
for processing (gates) and storing (flipflops) information; description by truth tables,
Boolean functions, and timing diagrams; analysis and synthesis of combinatorial networks
of gates; parallel and serial registers; simple synchronous control mechanisms; data and
address bases; addressing and accessing methods; memory segmentation; methods of timing
pulse generation; common coding schemes; encoders, decoders, converters; memory, control,
processing and I/O units. Coordinated laboratory work in digital logic.
Prerequisite or corequisite: COMP 1336C.
2108
Operating Systems. 3 credits.
Review of I/O and interrupt structures, addressing schemas, and memory management;
concurrent processes; name management; resource allocation; protection; advanced
architecture and operating systems implementations.
Prerequisite: COMP 3610C.
Prerequisite or corequisite: STA 1021 or 1320.
2117
Hardware Theory. 3 credits.
Arithmetic unit design, number systems, and codes; logic circuits; control unit;
realization of parallel process in hardware; multiprocessing; distributed computing and fault-tolerant design;
vector machines; gate networks; minimization of combinatorial switching circuits;
symmetric networks, threshold networks, sequential networks; memory; interrupts and locks;
microcomputer design.
Prerequisite: COMP 1502 and 3610C.
2146C
Minicomputer and Microcomputer Systems. 1 hour of lecture. 3 hours of laboratory. 3
credits.
Real-time programming on a dedicated computer, microprocessors, data communication
protocol, packet switching.
Prerequisite: COMP 2101 or permission of the instructor.
2512.
Networking and Communication. 3 credits.
Fundamentals of networking and communications. Network
concepts, hardware, software and programming. Data
communications, wide and local area networks. Communications
architecture and protocols. Network programming in C/C++ and JAVA.
3402
Introduction to Computer Systems. 3 credits.
Machine instruction types and formats; fetch-execute cycle; I/O operations; mnemonic
operations; symbolic addresses; assembler concepts and instruction format; data-work
definition; literals; location counter; error flags and messages; implementation of
high-level language constructs and addressing techniques.
Prerequisite or corequisite: COMP 1336C.
3511
Algorithmic Processes. 3 credits.
Design of algorithms and applications of data structure permutations, polynomials,
derivations, matrices, sorting, discrete simulation; list-marking, garbage collection,
analysis of algorithms; space and time efficiency; comparison of sorting techniques;
discrete Fourier Transform; pattern matching; computational models, Turing machines,
complex hierarchies.
Prerequisite: COMP 1315C; 1336C; 2101; 3402 or permission of the instructor.
3543,
3544 Data Structures and Algorithms I, II. 3 credits.
Elementary data structures; algorithms for their manipulation; file structures and
algorithms; searching and sorting; more complex data structures and algorithms for their
manipulation; notions of algorithm complexity; memory and data management systems.
Prerequisite: COMP 1336C.
3563
Data-Base Systems. 3 credits.
Goals of DBMS, including data independence, relationships, logical and physical
organization, schema and subschema; hierarchical, network, and relational modes; examples
of implementation of various models; first, second, and third normal forms of data
relations; canonical schema; data independence; data description languages: forms,
applications, examples, design strategies; query facilities: relational algebra, calculus,
data structures for establishing relations; query functions; file organization; index
organization; file security; data integrity and reliability.
Prerequisite: COMP 3544; 3610C.
3610 Introduction
to Operating Systems and
Computer Architecture. 3 credits.
Review of instruction sets. I/O and interrupts, addressing schemes, microprogramming;
dynamic procedure activation; dynamic storage allocation; design methodology, monitors, kernels, networks of operating system modules;
elementary queuing; memory management: virtual memory, paging, segmentation; memory
protection; multiprogramming.
Prerequisite: COMP 2101; 3402. Recommended: COMP 3543.
3640
Programming Languages. 3 credits.
Formal language concepts, including basic characteristics of syntax and
grammars; regular, context-free, and ambiguous grammars; constructs for specifying and
manipulating data types; language features affecting static and dynamic storage
management; control structures and data flow; subroutines, procedures, block structures,
interrupts, decision tables, recursion; relationship with good programming style; run-time
considerations; interpretative languages, lexical analysis and parsing.
Prerequisite: COMP 1336C (3402 and
3543 are highly recommended).
3645
Compiler Theory. 3 credits.
Grammars, languages, and their syntax and semantics; parsing and ambiguity; scanners; implementation of symbol
tables; parsers; major parsing algorithms; techniques for machine-independent code
generation; code optimization; syntax-directed translation schema.
Prerequisite: COMP 3640.
3760
Artificial Intelligence. 3 credits.
Heuristic vs. algorithmic methods; cognitive processes; investigation of methods of making
machines behave intelligently; problem solving; theorem probing; game playing; pattern
recognition; question answering; learning self-organization; methods of programming such
procedures; data structures and program organization; mind-brain problem and the nature of
intelligence.
Prerequisite: COMP 3544.
3764
Expert Systems. 3 credits.
Introduction to expert systems; components of an ideal expert system: knowledge base,
rules, interpreter; secondary components: justifier, scheduler, consistency enforcer,
blackboard; search space size, exhaustive search, single line of reasoning, hierarchical,
generate and test, combining evidence from multiple sources; utilizing metaknowledge;
metarules and their source; detecting simple errors in rules; justification of rules; expert system tools: EMYCIN,
OPS5, HEARSAYIII.
Prerequisite: COMP 3544.
3772
Computer Graphics. 3 credits.
Software, hardware, and mathematical tools for the representation, manipulation, and
display of topological and two- and three-dimensional objects; display devices; problems
and objectives of computer graphics; point, vector, curve, and character generation;
interactive vs. passive graphics; graphics data structures, graphics packages and graphics
languages; two-dimensional graphics: generation, transformation, window clipping,
segmented display files and display procedures; interactive graphics: input devices, input
techniques, event handling, and input functions; raster graphics fundamentals;
three-dimensional graphics: hidden-line problems, windowing, transformations, perspective
projections, and shading.
Prerequisite: COMP 1336C, 1502, and 3544.
4541
Numerical Analysis. 3 credits.
Arithmetic and precision; finite difference calculus; interpolation; approximation:
numerical integration and differentiation; solution of nonlinear equations, differential
equations; linear systems of equations; iterative methods; computation of eigenvalues and
eigenvectors.
Prerequisite: COMP 1336C; MATH 1413.
4901,
4902 Independent Study
See Academic Regulations section.
4911,
4912 Honors
See Academic Regulations section.
back to top