Graduate Computer Science Courses
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 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 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 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.