Graduate Computer Science Courses
CSCI 611. Advanced Programming in C++.
2 lec. 2 lab hr.; 3 cr.
Prereq.: CSCI 111 or 112.
Systematic treatment of object-oriented algorithmic problem solving in
C++ beyond the level of introductory programming, with attention to
general as well as language-specific issues including pointer and pointer
arithmetic; linked lists; heap memory management including effective use
of destructors; recursion; operator overloading; inheritance, polymorphism
and dynamic binding of function code, virtual functions; stream and
file I/O; exception handling; templates and STL; applications of data
structures; testing and debugging techniques.
CSCI 612. Advanced Programming in Java.
2 lec. 2 lab hr.; 3 cr.
Prereq.: CSCI 111 or 112.
Systematic treatment of object-oriented algorithmic problem solving in
Java beyond the level of introductory programming, with attention to general as well as
language-specific issues including applications, event-driven programming; elements of
graphical user interfaces (GUIs); linked lists; heap memory management and garbage collection;
recursion; inheritance, polymorphism and dynamic binding of function code, abstract classes;
file I/O; exception handling; packages; applications of data structures; applets; concept of
multithreading; testing and debugging.
CSCI 613. Data Structures.
3 hr.; 3 cr.
Prereq.: CSCI 611, 612, and 620.
Fundamental data structures and their implementations: stacks, queues,
trees (binary and AVL), heaps, graphs. Hash functions and hash tables. Algorithms for searching,
sorting, graph traversal, and topological sorting. Best, worst, and average-case runtime
analysis. Examples of problem-solving using greedy algorithm, divide-and-conquer, and
backtracking.
CSCI 620. Discrete Structures.
3 hr.; 3 cr.
Prereq.: CSCI 111 or 112; MATH 120 or 220; and MATH 141 or 151.
Algorithms, recursion, counting problems, recurrences and their closedform
solutions, asymptotic analysis of functions, relations, graphs and trees, applications to
computational problems.
CSCI 640. Computer Organization and Assembly Language.
3 hr.; 3 cr.
Prereq.: CSCI 111 or 112.
Elements of digital logic, combinational and sequential circuits. Data
representation. Principles of computer design and implementation. Instruction set architecture
and register-transfer level execution. Memory hierarchy and storage formats. Bus structures.
Assembly language programming.
CSCI 655. Internet and Web Technologies.
3 hr.; 3 cr.
Prereq.: CSCI 613.
Internet protocol stack, analysis of representative protocols;
Internet applications: client-server architecture,
popular Internet application protocols, Internet application design,
client side programming, server side programming, Web application
and Web site design; programming projects.
CSCI 688. Advanced Productivity Tools for Business.
2 lec. 2 lab hr.; 3 cr.
Prereq.: CSCI 12 or equivalent.
Computing technology for students in business and finance-related disciplines.
Advanced analytic techniques with an emphasis on speadshet topics such as
financial functions and formulas, pivot tables, charting, and macro
programming. Integration of spreadsheets, databases, and presntation tools for
analysis and report generation.
CSCI 700. Algorithms I.
3 hr.; 3 cr.
Fundamental
algorithms, their use, analysis,
and the data structures used in their formulation.
Programming paradigms such
as dynamic programming, divide and
conquer, greedy algorithms, branch and
bound, backtracking, and their applications.
Parallel algorithms.
CSCI 701. Software Design.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
Techniques
and principles of systematic software development.
Review of current software
development tools. Top-down design
and structured programming. History
and concepts of modular design. Graphical
user interfaces. Object-oriented design
including data abstraction by classes
and type polymorphism. Significant programming
projects will be assigned.
CSCI 707. Compiler Construction.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
Theory and practice of compiler construction.
Topics include theoretical and practical
studies of lexical analysis, syntax analysis,
type checking, semantic analysis, object
code generation and optimization.
CSCI 711. Database Systems.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
In-depth review
of data base systems and extensive
survey of the current literature on the
topic.
CSCI 715. Distributed Computing.
3 hr.; 3 cr.
Distributed systems design and implementation.
Concurrency and modularity.
Operating system considerations. Transport-
level communication protocols.
RPCs. Examples of distributed systems.
CSCI 718. Computer Graphics.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
Digital image fundamentals, scan-conversion algorithms, organization of
graphics systems, 2D/3D primitives and their attributes, curve and surface
representations, transformations, projections, hidden line/surface removal
and clipping algorithms, color and illumination models, shading methods,
interactive devices and techniques, graphics API. Significant programming
projects to illustrate the rendering process as well as the design of user
interfaces will be assigned.
CSCI 722. Computability and Complexity.
3 hr.; 3 cr.
Prereq.: CS 320.
Models of computation such as Turing machines,
random access machines, and circuits.
Time complexity classes, including P and
NP, space complexity classes, including
L and NL, and the interrelationships
among them. Mapping reducibility and
its specializations, including polynomial time
and log-space reducibility. Establishing
a first NP-complete problem,
such as circuit satisfiability or Boolean formula
satisfiability. P-complete decision
problems; NP-complete decision
problems; and related approximation algorithms.
CSCI 731. Software Development Practicum.
Hours to be arranged; 3 cr.
Prereq.: Completion of 21 credits, including
any software semi-core course.
Each student
will complete a significant software development
project, either of his/her own
choosing or one selected by the instructor.
In general, projects will incorporate
the following features in their design: A
graphical user interface, concurrent processing,
and persistent state across invocations.
All projects will include
complete and separate documentation
for end-users, for installation, and for
software maintenance. Project management
tools for version and module management,
and a complete record of the
development stages are required.
CSCI 732. Research Practicum.
3 hr.; 3 cr.
Prereq.: Completion of 21 credits.
Critical
review of research in computer science.
Students will conduct research on one of
the topics given by the instructor, and
gain experience in writing research proposals,
actual research process (including
the use of libraries and the reading of papers),
and in writing research reports.
The instructor will give lectures on the
selected topics as well as on general research
methods, and closely monitor the
students' research process.
CSCI 733. Master's Thesis.
3 cr.
Prereq.: Completion of 21 credits.
A master's thesis
must be accepted by a sponsoring member
of the department and by a thesis
committee chosen by the department.
(For college requirements regarding theses,
see section on Degree & Certificate Offerings in QC’s Graduate Bulletin.)
CSCI 734. Hardware Design Practicum.
Hours to be arranged; 3 cr.
Prereq.: completion of 21 credits, including
a hardware semicore course.
Each student will complete a
significant hardware development project
approved by the instructor. Projects
may be based on existing development
platforms, or may involve construction
of a hardware platform specific to the
project. Designs may involve various
areas of digital design, such as signal
processing, robotics, networking, or peripheral
interfacing.
CSCI 744. Computer Architecture and Networks.
3 hr.; 3 cr.
The design of CPU,
memory, and I/O systems. Performance
evaluation. Pipeline processor design.
SIMD architecture. Communication issues
in a distributed computing system.
Design of interconnection networks and
their applications. Fault-tolerant computer
systems.
CSCI 745. Switching Theory.
3 hr.; 3 cr.
Boolean algebra. Symmetric and iterative
circuits. Fault detection and location.
State equivalence and reduction of completely
and incompletely specified machines.
State identification and
experiments. Linear sequential circuits.
Current research topics.
CSCI 746. Computer Systems.
3 hr.; 3 cr.
Prereq.: Computer Science 744.
Parallel computer
models. Program and network
properties. Performance metrics and measures.
Advanced processor technology,
RISC and CISC processors. Software for
parallel programming. Current research
topics.
CSCI 748. Computer Networks.
3 hr.; 3 cr.
Prereq.: Computer Science 744.
Basic
communication concepts, connectivity
analysis, delay analysis, and the International
Standards Organization Reference
Model of Open Systems Interconnection
(ISO-OSI).
CSCI 761. Numerical Methods.
3 hr.; 3 cr.
Prereq.: CSCI 220 and 313, MATH 143 (or 152) and 231.
Error analysis, propagation of input and machine errors,
interpolation, functional approximation, numerical differentiation,
integration and summation, numerical solution of
systems of linear equations and systems of nonlinear
equations, numerical solutions of differential equations.
CSCI 762. Algorithms II.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
A continuation
of the material of 700, including algorithms
for numerical computation, algorithms
for parallel or distributed
computers, and probabilistic analysis of
algorithms.
CSCI 764. Topics in Systems Simulation.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
Introduction
to simulation and comparison
with other techniques. Discrete simulation
models and introduction to, or review
of, queuing theory and stochastic
processes. Comparisons of discrete
change simulation languages. Simulation
methodology including generation of
random numbers and variates, design of
simulation experiments for optimization,
analysis of data generated by simulation
experiments and validation of simulation
models and results. Selected applications
of simulation.
CSCI 765. Computational Finance.
3 hr.; 3 cr.
Prereq.: CSCI 700 or the equivalent of CSCI 314 and Econ 249 for students in the Risk Management Program.
Valuation of financial derivatives as a family
of algorithmic computations. Analysis of interactions
between the underlying financial models (assumptions
and constructions) and the efficiency (time and
resources) of implementation of these algorithms.
Hands-on implementation practice. Topics include
concept of a derivative contract and the problem of
its pricing; time value of money; market risk and
the concept of risk-free portfolio; arbitrage as
a valuation axiom; valuation of forward and futures
contracts on stock, currencies, interest-rates,
indices, commodities; collateral, marking-to-market,
margining, and netting; fundamentals of capital asset
pricing model and correlations as a valuation
assumption; translations among yield curves, bond
prices and forward interest rates; valuation of
swaps (interest-rate and currency); arbitrage-based
valuation of options, option contract as a basic
non-linear element in claim construction; binomial
trees for option pricing, and the concept of risk-free
valuation and recursion from the final claim value;
modeling stochastic behavior with Weiner processes,
It’s Lemma, the Black-Scholes-Merton model for options;
Greeks; volatility smiles and the concept of market-implied
computational context; credit risk, estimates of default
probabilities from prices of corporate bonds and equity,
translations between credit default spreads and
default intensities; introduction to issues in valuation
of some path dependent and exotic derivatives.
CSCI 766. Probabilistic Models in Computer Systems.
3 hr.; 3 cr.
Prereq.: Computer Science 700.
This course deals with analytical
modeling as a means of analyzing
computer hardware and software
through the application of fundamental
concepts of probability theory, statistics,
random processes such as queuing theory
and Markov chains to problems encountered
in queuing models of time-sharing
systems, multiprocessor interference, statistical
evaluation of sorting techniques,
and reliability of computer systems and
networks.
CSCI 780, 782, 783, 784, 786. Special Topics in Computer Science.
3 hr.; 3 cr.
May be repeated for credit for differing titles.
CSCI 788.1-3. Computer Science: Cooperative Education Placement.
1-3 hr.; 1-3 cr.
Prereq.: Completion of at least three 700-level
Computer Science courses and approval by the
Departmental Graduate Curriculum and Advisement
Committee of a detailed project description
submitted by the student.
Experiential learning
through job placements developed by the
Queens College Cooperative Education
Program. Opportunities are provided to
test, demonstrate, and expand on academic
learning in an organizational setting.
This course does not count toward the 30
credits required for the Master of Arts degree
in Computer Science. The grade for
this course will be given on a Pass/Fail
basis.
CSCI 790, 792, 793, 794, 796. Seminars in Computer Science.
3 hr.; 3 cr.
May be repeated for credit if the topic changes.
CSCI 799.1-3. Research.
1-3 hr.; 1-3 cr.
Prereq.: Permission of department.
May be
repeated for credit for different topics, to
a maximum of 3 credits. Student research
reports shall be written; they will
be placed on file with departmental technical
reports. The 799.3 can be used to
satisfy the capstone requirement if the
proposal is approved for such by the department.
Students may take such a
course only after they have completed at
least 21 credits of 700-level courses with
a cumulative GPA of 3.3 or better, and
the research involved must be an individual
work.