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 hrs.; 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 hrs.; 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 hrs.; 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 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 polynomialtime and log-space reducibility. Establishing a first NP-complete problem, such as circuit satisfiability or Booleanformula 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 page 11 of this 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.