The Department of Computer Science, Queens College, City University of New York Welcome Undergraduate Studies Graduate Studies Courses and Schedule People Research Student Resources Contact and Visit Us

Overview: Master of Arts (M.A.) in Computer Science



Introduction



The dynamic and growing field of computer science provides opportunities for intellectual activity, research, and future employment. The aim of the master's program is to prepare students for professional careers in private industry, government, and academe. For those who seek academic careers and opportunities for more advanced research, the master's program may constitute a significant portion of the PhD program offered by the CUNY Graduate Center. The department's faculty members conduct a wide range of research in computer science, and received external funding from such federal agencies as the National Science Foundation, National Institutes of Health, and Department of Defense, as well as from corporate sources. Current areas of faculty research include bioinformatics, computer vision, information retrieval, data mining, instructional technology, medical and document imaging, networking, and parallel processing, among others. We have about 230 computers running various operating systems (Solaris, Linux, IRIX, Microsoft Windows, etc.) networked in the department, available for research and instruction, and the college provides many additional PCs and servers.

Curriculum



The Master of Arts in Computer Science requires the total of 30 graduate credits, including courses in four areas of study: Software, Theoretical Foundations, Hardware, and Scientific and Statistical Computing. The Software area is the primary focus of the program, and includes courses in fundamental algorithms, software design, database systems, distributed software systems, operating systems, compiler design, graphics, information organization and retrieval, and artificial intelligence. The Theoretical Foundations courses include the mathematical treatment of such topics as formal language theory, automata theory, and computability and complexity theory. The Hardware area course offerings cover topics including computer systems design, networking principles, and distributed hardware systems. The Scientific and Statistical area includes courses in such areas as sequential and parallel numerical algorithms, applications of probability and statistics to the study of hardware and software systems, and principles of simulation and modeling. The program offers a variety of special-topics courses.

Additional Opportunities



The 700-level courses in the department are applicable to the CUNY Doctoral Program in Computer Science. Some graduate courses are open to students who are not matriculated in the master's program.

The department maintains close ties with the CUNY Institute for Software Design and Development which offers internship opportunities and gateways to software industry in the New York region.

Admissions



For admission, applicants must have a U.S.-equivalent bachelor's degree with a minimum grade point average (GPA) of 3.0. Applicants whose native language is not English and whose post-secondary education was not in English are required to submit a minimum TOEFL score of 500. Applicants need to have an adequate knowledge of each of the following subjects:

  • differential and integral calculus,
  • probability and statistics,
  • discrete mathematical structures,
  • theory of computation,
  • C++ and Java,
  • assembly language programming,
  • data structures,
  • principles of programming languages,
  • operating systems,
  • computer organization.

Those with insufficient background in these fields may be accepted with a condition to take several undergraduate-level courses in order to make up for any deficiencies. The Graduate Admissions Officer will determine what courses need to be taken.

Application packets and copies of the Graduate Bulletin may be obtained from the Graduate Admissions Office (Tel: (718) 997-5200, Email: graduate_admissions@qc.cuny.edu).

Additional Resources



Office of Graduate Studies

Registrar's Office

Computer Science Graduate Students Mailing List

Tuition

Health Services Center

International Students & Scholars Office

Graduate Student Handbook (pdf)



Letter to Applicants



Thank you for your interest in our Master's program in Computer Science. While you can read about the degree requirements and the description of courses from the College's Graduate Bulletin, we provide here some additional information regarding the application process, transfer credits, and financial aid. For admission, the Department requires each applicant to have a U.S.-equivalent Bachelor's Degree with a minimum grade point average (GPA) of 3.0. In addition, applicants who received their degree abroad need to submit a minimum TOEFL score of 500. Please contact the College's Graduate Admissions Office (Phone: (718) 997-5200, Email: graduate_admissions@qc.edu) to get an application package. Be sure to follow the instructions to complete your application and send it to the Graduate Admissions Office (not the Department). You will be notified by them if any information or document is missing. Once your application folder is complete, the Graduate Admissions Office will forward it to the Department for evaluation.

We evaluate each applicant on a case-by-case basis. The applicant needs to have an adequate knowledge of each of the following areas: differential and integral calculus, probability and statistics, discrete mathematical structures, theory of computation, C++ and Java, assembly language programming, data structures, principles of programming languages, operating systems, and computer organization. Those with insufficient background in these areas are still considered for acceptance, although, if accepted, remedial courses will be required in addition to the 30 Master's credits. The number of required remedial courses ranges from one to 13 (3 or 4 credits each), depending on the individual's background. The required remedial courses will not count toward a Master's degree.

Once we have made our decision, we inform the Graduate Admissions Office and they will in turn inform the applicant. The Graduate Admissions Office will also inform the International Student Services (ISS) if the accepted student is a foreign student. Please contact ISS at (718) 997-4440 if you have any question regarding student visa.

Please note that graduate credits in computer science from other institutions do not necessarily transfer into our program as Master's credits. A transfer course must be equivalent to our Master's course or at the same level as our Master's courses. The number of transfer credits cannot exceed 12.

The Department may provide financial aids in the form of Teaching Assistantships and Research Assistantships. However, they are given based on academic merits, and students pursuing a Ph.D. degree receive a first priority. Master's students with demonstrated excellence can apply through the Department Office. In most cases, the amount of money awarded is limited and will only partially offset the cost of tuition and living expenses. Those who are interested in other forms of financial aid should contact the Financial Aid Services at (718) 997-5100.



Guide for New Master's Students



Welcome to the Master's Program in Computer Science. We are happy to have you with us and wish you a rewarding study during your stay at the Queens College.

Plan of Study



You should make a study plan based on the following degree requirements.


Please be sure that you have the necessary prerequisites for courses you'd like to take.

Note for International Students



All international students are required to take at least 9 credits in a semester to maintain the F1 visa.

All international students are required to see an advisor at International Students & Scholars Office, Frese Hall, Room 211. (718) 997-4440.



Registering for Courses



All new students will register through the Department. You may email registration requests (full name, student ID, course number, 4-digit course code) to Ms. Xiu Yi Huang at   or fill out the form below and bring it to the Department office.

In case you have general questions about the Master's Program or your study plan, you may email to Dr. Yukawa at  .

ALL mathematics courses (MATH 120, 151, 152, 241) must be registered by Mathematics department in Kiely 237 (718-997-5800).


FORM FOR REGISTRATION



Student ID (9-digit):  
Last Name:  
First Name:  
Email:  


Fill in the courses you want in the table below. Rank the courses in order of preference (e.g. 1 for most desired course/section). For example:

Course# Code Section# Rank
CSCI 700 3364 E6TBA 1


Course# Code Section# Rank
       
       
       
       


End of FORM FOR REGISTRATION.





Master's Courses in Computer Science



A full listing of graduate level courses is available on the Courses and Schedules page.

Each student must complete 30 credits of 700-level courses, including the core courses (Algorithms I, Distributed Computing, Computability and Complexity, and Computer Architecture and Networks). In addition, the student must choose one course in each of the three semi-core categories: Software, Hardware, and Mathematical Applications and Algorithms. Each student must satisfy a "Capstone Requirement" by completing a Software Development Practicum, a Hardware Design Practicum, a Research Practicum, an approved Research Project, or a Master's Thesis. The remaining courses may be freely chosen from a variety of special topics and seminar courses as well as other courses listed below but which have not been used to meet the student's core, semi-core, and capstone requirements.

The second digit of each course number represents a particular area.
  • 0 or 1: Software
  • 2: Foundations
  • 4: Hardware
  • 6: Scientific and Statistical Computing

Any course for which the title begins "scs", "sch", and "scm" (respectively: software, hardware, and mathematical applications and algorithms) satisfies the semi-core requirement in that particular area.

Core Courses (students must take all four)



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.

715. Distributed Computing. 3 hr.; 3 cr. Distributed systems design and implementation. Concurrency and modularity. Operating system considerations. Transport-level communication protocols. RPC's. Examples of distributed systems.

722. Computability and Complexity. 3 hr.; 3 cr. 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.

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.

Software Semicore Courses (students must take at least one)



701. Software Design. 3 hr.; 3 cr. Prereq.: CS 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.

707. Compiler Construction. 3 hr.; 3 cr. Prereq.: CS 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.

718. Computer Graphics. 3 hr.; 3 cr. Prereq.: CS 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.

Hardware Semicore Courses (students must take at least one)



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.

746. Computer Systems. 3 hr.; 3 cr. Prereq.: CS 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.

748. Computer Networks. 3 hr.; 3 cr. Prereq.: CS 744. Basic communication concepts, connectivity analysis, delay analysis, and the International Standards Organization Reference Model of Open Systems Interconnection (ISO-OSI).

Mathematical Applications and Algorithms Semicore Courses (students must take at least one)



762. Algorithms II. 3 hr.; 3 cr. Prereq.: CS 700. A continuation of the material of 700, including algorithms for numerical computation, algorithms for parallel or distributed computers, and probabilistic analysis of algorithms.

764. Topics in Systems Simulation. 3 hr.; 3 cr. Prereq.: CS 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.

766. Probabilistic Models in Computer Systems. 3 hr.; 3 cr. Prereq.: CS 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.

Elective Courses



711. Database Systems. 3 hr.; 3 cr. Prereq.: CS 700. In-depth review of database systems and extensive survey of the current literature on the topic.

780, 782, 783, 784, 786. Special Topics in Computer Science. 3 hr.; 3 cr. May be repeated for credit for differing titles.

790, 792, 793, 794, 796. Seminars in Computer Science. 3hr.; 3 cr. May be repeated for credit if the topic changes.

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.

Note: In the seminar and special topic courses the third digit represents the subject area. The numbers 783 and 793 will be given to courses that resist categorization with respect to subject area.

Capstone Courses (students must take one, after completing 21 credits)



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.

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 experiences 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.

733. Master's Thesis. 3 cr. 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, consult the Graduate Bulletin.)

734. Hardware Design Practicum. Hours to be arranged; 3 cr. Prereq.: Completion of 21 credits, including any hardware semi-core 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.

799.3. Research. This option may be used only subject to departmental approval; see the description of this course under "Elective Courses".

Note (i) The programming project reports, research reports, and Master's theses submitted by the students shall be placed in the departmental files. (ii) Each capstone course may be taken only after the student has completed 21 credits.

Other Courses



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 organization setting. No more than 3 credits of Cooperative Education Placement may be taken. 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.



Special Topics Courses for Semicore Requirement



These courses are only open to students that have already completed ALL their conditional courses.

CSCI 780: SCS: Advanced Object-Oriented Programming (Waxman). This course counts as software semicore.

CSCI 780: Artificial Intelligence (Chen/Hunerfauth). This course does not count as any semicore.

CSCI 780: Bioinformatics (Reddy). This course does not count as any semicore.

CSCI 780: Computational Finance (Obrenic). This course does not count as any semicore.

CSCI 780: SCM: Cryptography (Boklan). This course counts as mathematical applications and algorithms semicore.

CSCI 780: SCM: Data Mining/Warehousing (Sy). This course counts as mathematical applications and algorithms semicore.

CSCI 780: Genetic Algorithms (Goldberg). This course does not count as any semicore.

CSCI 780: Information Orgranization & Retrieval (Chen/Kwok). This course does not count as any semicore.

CSCI 780: Internet Security (Sy). This course does not count as any semicore.

CSCI 780: Internet Technologies & Web Design (Chen). This course does not count as any semicore.

CSCI 780: SCH: Logic Design Laboratory (Vickery). This course counts as hardware semicore.

CSCI 780: Mobile Computing (Zheng). This course does not count as any semicore.

CSCI 780: Next Generation Networking Services (Sy/Tse). This course does not count as any semicore.

CSCI 780: SCM: Numerical Methods (Smith-Thompson). This course counts as mathematical applications and algorithms semicore.

CSCI 780: Object-Oriented Databases (Yukawa). This course does not count as any semicore.

CSCI 780: Performance Evaluation of Communication Networks (Zheng). This course does not count as any semicore.

CSCI 780: SCM: Quantum Computing I (Whitehead). This course counts as mathematical applications and algorithms semicore.

CSCI 780: SCS: Software Engineering (Haigh/Tse). This course counts as software semicore.

CSCI 780: Software Reliability Engineering (Zheng). This course does not count as any semicore.

CSCI 780: SCH: Voice Over Internet Protocols / Wireless Local-Area Networks (Sy). This course counts as hardware semicore.

CSCI 780: SCH: Wireless Networking (Sy). This course counts as hardware semicore.



Frequently Asked Questions (FAQ) on Conditional Courses







Prerequisite Tables



Prerequisite Table for Conditional Courses



Course Number Course Title Prerequisites
Math 151 Calculus/Differential and Integration None
Math 152 Calculus/Integration and Infinite Series Math 151
Math 120 Discrete Mathematics for Computer Science None
Math 241 Introduction to Probability and Mathematical Statistics Math 152 (this may be a corequisite)
CS 111 Algorithmic Problem Solving I (in C++ or Java) Math 120 or Math 151 (either may be a corequisite)
CS 211Object-Oriented Programming in C++ CS 111
CS 212 Object-Oriented Programming in Java CS 111
CS 220 Discrete Structures Math 120 and Math 151 and CS 111
CS 240 Assembly Language and Computer Organization CS 111
CS 313 Data Structures CS 211 and CS 220
CS 316 Principles of Programming Languages CS 240 and CS 313 and CS 320
CS 320 Theory of Computation CS 220
CS 340 Operating Systems Principles CS 240 and CS 313


Prerequisite Table for Core Courses



Course Number Course Title Prerequisites
CS 700 Algorithms I CS 220 and (CS 300 or 316) and Math 241
CS 715 Distributed Computing CS 220 and (CS 300 or 316) and CS 340 and Math 241
CS 722 Computability and Complexity CS 320 or 721
CS 744 Computer Architecture and Networks CS 220 and CS 240 and Math 241


Prerequisite Table for 700-level Courses



The following 700-level courses are only open to the students that have completed all their conditional courses.

Course Number Course Title Prerequisites
CS 701 Software Design CS 700
CS 707 Compiler Construction CS 700
CS 711 Database Systems CS 700
CS 718 Computer Graphics CS 700
CS 731 Software Development Practicum A software semicore course and completion of at least 21 credits of 700-level courses
CS 732 Research Practicum Completion of at least 21 credits of 700-level courses
CS 733 Master's Thesis Completion of at least 21 credits of 700-level courses
CS 734 Hardware Design Practicum A hardware semicore course and completion of at least 21 credits of 700-level courses
CS 745 Switching Theory  
CS 746 Computer Systems CS 744
CS 748 Computer Networks CS 744
CS 762 Algorithms II CS 700
CS 764 Topics in Systems Simulation CS 700
CS 766 Probabilistic Models in Computer Systems CS 700
CS 780, 782, 783, 784, 786 Special Topics in Computer Science As determined by the instructor
CS 790, 792, 793, 794, 796 Seminars in Computer Science As determined by the instructor




Graduation Checklist



To earn a Master's degree in Computer Science, you must be able to answer YES to each of the following questions.




Additional Policies



Grade Replacement Policy



The College has an explicit Grade Replacement Policy (quoted from the Graduate Bulletin):

Graduate students are entitled to the following grade replacement policy, which is limited to graduate courses: With the exception of courses that are designated as repeatable for credit, graduate students may repeat a graduate course and have the last grade received replace the previous grade in the cumulative grade-point average. No more than four credits may be replaced.

NOTE: CS 780s with differing topics are DISTINCT COURSES. This means that taking more than one CS 780 with differing topics is NOT "repeating" CS 780 -- their grades would all count in your GPA, and the Grade Replacement Policy is not applicable to them. The same is true for CS 790s and CS 799s.

Supplementary to the above, the Department has the following policy applicable to conditional courses:

Graduate students are entitled to the following grade replacement policy, which is limited to conditional courses: Graduate students may repeat a conditional course and have the last grade received replace the previous grade in the cumulative grade-point average. No more than two conditional courses may be repeated.

Grade Requirement



The Department imposes two different grade requirements for conditional courses and 700-level courses.

Conditional Courses: Every student must pass each of his/her conditional courses with a grade of at least B-, and must earn a GPA of at least 3.0 in all his/her conditional courses. Students who fail to meet this requirement will be reviewed by the Department, which will determine whether they should be allowed to continue, put on probation, or dismissed from the Program.

700-level Courses: Every student must pass each 700-level course with a grade of at least C-, and must earn a GPA of at least 3.0 in all the 700-level courses he/she has taken in order to graduate. Students whose GPA falls under 3.0 in the course of their study may be reviewed by the Department or the Graduate Studies Office.

Registration Adjustment and the C-Corequisite Rule for Conditional Courses



In the event that the student fails to pass any conditional courses with at least a B- in any semester, it is the student's responsibility to adjust his/her registration for the next semester properly: DROP all courses the student is no longer qualified for and RETAKE the conditional courses the student did not pass.

In this connection, the Department may allow students to use the following "C corequisite rule": if the student received a C-, C, or C+ in a conditional course X, he/she may take any course for which the course X is a prerequisite PROVIDED THAT the course X is retaken in the same semester.

The Department will not be responsible for any problems students may encounter because of their failure to adjust registrations properly, and will reserve the right to adjust students' registration whenever unsatisfactory grades are found.