Graduate Department of Computer Science

College of Arts and Sciences

Website: https://cs.fsu.edu/

Chair: Xiuwen Liu; Professors: Aggarwal, Burmester, Duan, Kumar, X. Liu, Mascagni, Schwartz, G. Tyson, A. Wang, Whalley, Yu, Yuan, Z. Zhang; Associate Professors: Haiduc, Z. Wang, Yang, Zhao; Assistant Professors: Chakraborty, Fedyukovich, Gubanov, Hoang, Y. Liu, Mallory, G. Wang, X. Zhang; Courtesy Professors: Baker, De Medeiros, Jones, Lacher, Levitz, Li, Oral, Pakin, X. Wang; Computing Resources Manager: Y. Wang; Teaching Faculty I: Jayaraman, Mills, Uh, Works; Teaching Faculty II: M. Myers; Teaching Faculty III: Gaitros, Langley, B. Myers, A. Tyson; Professors Emeriti: Baker, Hawkes, Lacher, Leach, Levitz

In Computer Science education, whether graduate or undergraduate, being current is essential. Computer Science is an exceptionally fast-moving field, where knowledge is subject to rapid obsolescence and ideas progress swiftly from research to practice. The department, therefore, seeks to offer technical instruction that keeps on the cutting edge of new developments, while simultaneously providing each student with a core of intellectual tools that will never become obsolete. The department views skills in communication, mathematics, and algorithmic reasoning as central and the understanding of underlying principles as more important than familiarity with specific technical products. Still, direct hands-on experience is essential to mastering these skills and principles. If students are to be adequately prepared for careers in Computer Science, they should have extensive experience with machines and software that are state-of-the-art.

The Department of Computer Science offers graduate programs leading to the Master of Science (MS) and Doctor of Philosophy (PhD) degrees. The department has a number of active research programs in core disciplines such as programming languages, compilers, storage systems, networks, parallel computation, databases, fault tolerance, and foundations: scientific and engineering applications areas, including scientific problem-solving environments and large-scale scientific computation and databases; offensive and defensive security for computers and networks, trusted computing, cryptography; and other areas including but not limited to: random number generation, software maintenance, cloud computing, big data, mobile programming, deep learning, machine learning, artificial intelligence, expert networks and fuzzy sets and systems. These research programs enjoy external support from agencies ranging from the National Science Foundation to the private sector.

The Department of Computer Science has a full range of computing facilities available for a variety of instructional and research needs. Faculty and graduate students share high-performance workstations, file servers, and compute servers. Students and faculty whose research requires higher computational power have access to a variety of state-of-the-art machines, including supercomputers and computer clusters, across the University.

Other affiliated research laboratories include the following:

The Center for Security and Assurance in Information Technology (C-SAIT) Laboratory was established in 2000. Its mission is to serve as a focal point for members of different academic disciplines, government, and industry to carry out world-class research and to advance the practice and public awareness of information technology security and assurance through education and public service. C-SAIT is dedicated to the synthesis of education and research through combined focus on the theory and applications of Information Security. The primary research function of the Center is to provide an environment that fosters world-class applied research in information security technology, with a focus on innovation and learning.

The Computer Architecture and SysTems Laboratory (CASTL) has broad research interests in novel architectural and system technologies for big data analytics, cloud computing, high-performance computer and network systems, and the use of these technologies for fast scientific discoveries on computational biology and climate changes.

The EXPLORER Laboratory (Extreme-Scale Computing, Modeling, Networking & Systems Research) is a group of researchers who share common interests in exploring cutting-edge technologies for designing, evaluating, constructing, programming, and using extreme-scale distributed computing systems including super-computing systems, cloud computing data centers, networked computing systems, heterogeneous computing systems, and Internet of things, and developing, implementing, and evaluating techniques at the architecture, systems, and applications levels that advance the state-of-the-art distributed computing in cost-effectiveness, scalability, power-efficiency, reliability, security, and ease-of-use.

The Serene Lab (Software Engineering: Evolution and Maintenance Lab @ FSU) is dedicated to research in the field of Software Engineering and focusing on novel approaches and techniques to assist software developers in undertaking tasks common to the creation, understanding, and maintenance of increasingly large software systems. The main research topics of the group are: Software maintenance and evolution, Programming Comprehension, Mining of Software Repositories, Source Code Analysis, Empirical Studies in Software Engineering, Applications of Information Retrieval and Natural Language Processing in Software Engineering, Online Software Documentation, and Developers' Performance.

Requirements

Please review all college-wide degree requirements summarized in the "College of Arts and Sciences" chapter of this Graduate Bulletin.

Please refer to https://cs.fsu.edu/admissions/graduate-admissions/ for the most current information.

A student who proposes to do graduate work in the department is required to take the aptitude test of the Graduate Record Examinations (GRE).

Unless specifically admitted into the part-time graduate program, all students are required to maintain full-time enrollment (excluding Summers) in courses related to their program of study throughout the entire program of study. The student must receive a grade of "B–" or better on all graduate courses counting toward the graduate degree. All work for the master's degree, including any transferred credit, must be completed within seven calendar years of the date of graduation.

All candidates for doctoral degrees in the department are required to participate in teaching activities at some time during their graduate careers unless waived by the department chair. All students are required to complete an exit survey for both the Department of Computer Science and the College of Arts and Sciences during their term of graduation.

Master's Degree

MS in Computer Science

The department offers three majors at the master's level: Computer Science, Computer Network and System Administration, and Cyber Security. Each major offers thesis, project, and course-based options.

Eligible PhD students wishing to pursue the MS must have the intention of continuing their PhD program and must first pass the PhD Qualifying Exam, CIS 8962, before applying for the MS.

Depending on the major of choice, a student must complete the following undergraduate majors prerequisite requirements before graduating:

Undergraduate Prerequisites for the MS/PhD in Computer Science degree programs:

CDA 3100 Computer Organization I (3)

COP 4530 Data Structures, Algorithms, and Generic Programming (3)

COP 4610 Introduction to Operating Systems (3)

COT 4420 Theory of Computation (3)

Undergraduate Prerequisites for the MS Cyber Security Degree Program

CDA 3100 Computer Organization I (3)

COP 4530 Data Structures, Algorithms, and Generic Programming (3)

COP 4610 Introduction to Operating Systems (3)

COT 4420 Theory of Computation (3)

COP 4521 Secure Parallel and Distributed Computing with Python (3)

CIS 4360 Introduction to Computer Security (3)

Undergraduate Prerequisites for the MS CNSA Degree Program

CDA 3100 Computer Organization I (3)

COP 4530 Data Structures. Algorithms, and Generic Programming (3)

COP 4610 Introduction to Operating Systems (3)

In all three majors in the MS in Computer Science programs, a student must complete thirty semester hours in computer science courses numbered 5000 or above, including approved CIS 5930 and CIS 6930. At most one course outside the department at the 5000 or 6000 level can also count towards the thirty hours if approved by the major professor and the department chair. Supervised teaching, supervised research, seminars, directed individual study, and courses with prefix CGS are excluded. For the Computer Science major, at least one course from each of the following three core areas must be taken to satisfy the area requirements:

Software

COP 5570 Concurrent, Parallel, and Distributed Programming (3)

COP 5621 Compiler Construction (3)

COP 5725 Database Systems (3)

Systems

CDA 5155 Computer Architecture (3)

CNT 5505 Data and Computer Communications (3)

COP 5611 Advanced Operating Systems (3)

Theory

COT 5310 Theory of Automata and Formal Languages (3)

COT 5405 Advanced Algorithms (3)

COT 5507 Analytical Methods in Computer Science (3)

Note: The Cyber Security and the Computer and Network System Administration majors have a different set of course requirements that are defined below..

Cyber Security Major

A student in the cyber security major is required to complete the aforementioned undergraduate prerequisites before graduating and take the following courses:

CIS 5370 Computer Security (3)

CIS 5371 Cryptography (3)

CNT 5412 Network Security, Active and Passive Defenses (3)

CNT 5505 Data and Computer Communications (3)

CNT 5605 Computer and Network Administration (3)

CIS 5627 Offensive Computer Security (3)

CAP 5137 Software Reverse Engineering and Malware Analysis (3)

Computer Network and System Administration Major

CNSA students have to complete the aforementioned undergraduate prerequisites, before graduating, and the following required courses for the CNSA major of the MS in Computer Science degree:

CDA 5155 Computer Architecture (3)

CNT 5412 Network Security, Active and Passive Defenses (3)

CNT 5505 Data and Computer Communications (3)

CNT 5605 Computer and Network Administration (3)

COP 5570 Concurrent, Parallel, and Distributed Programming (3)

COP 5611 Advanced Operating Systems (3)

In addition to the required courses, the CNSA program has an experience requirement, and students are required to complete system administration internship(s) to complete this requirement. The CNSA program works with various departments and colleges on the FSU campus to provide local systems administration internships for students.

Cyber Criminology Major

The general degree requirements will include 4 graduate criminology courses and 6 graduate computer science courses related to information assurance and computer security for a total of 30 hours.

Criminology courses from which computer criminology students are required to take at least three:

CCJ 5016 Crimes of the Powerful (3)

CCJ 5285 Survey of Criminal Justice Theory and Research (3)

CCJ 5606 Survey of Criminological Theories (3)*

CCJ 5607 History of Criminological Thought (3)

CCJ 5636 Comparative Criminology and Criminal Justice (3)

Computer Science Courses Required for MS CC Students:

CIS 5370 Computer Security (3)

CNT 5412 Network Security, Active and Passive Defenses (3)

CNT 5505 Data and Computer Communications (3)

CNT 5605 Computer and Network Administration (3)

COP 5611 Advanced Operating Systems (3)

COP 5725 Database Systems (3)

MS in Interdisciplinary Data Science

This is an interdisciplinary degree offered by the College of Arts & Science with concentrations in Computer Science, Mathematics, Scientific Computing, and Statistics. The Interdisciplinary Data Science (IDS) master's degree with a major in computer science emphasizes the effective and efficient algorithms of big data along with cyber security, data mining, and machine learning. Students will learn the computational background necessary to understand how and why data science algorithms work and how to develop and apply them effectively on real large datasets. For more details, see https://ds.fsu.edu and the entry for Interdisciplinary Master's Degree in Data Science in this Bulletin.

The MS-IDS graduate program appeals directly to students with undergraduate degrees in math, computer science, or statistics, but will also attract students with less traditional backgrounds, e.g., physics or engineering. Therefore, the admissions requirements are designed to select students with strong training in mathematics, statistics, and computer science that would be common across a range of undergraduate degrees. In addition to meeting all of the University and College admission requirements for graduate study, each applicant for the MS-IDS program must:

  • Have earned a bachelor's degree from an accredited institution and possess a minimal background consisting of Calculus 2 (MAC 2312 or equivalent), Introductory Statistics (STA 2023 or equivalent), and experience with an object-oriented programming language, preferably Python or R. Coursework in linear algebra is desirable, but not mandatory;
  • Have a minimum of 3.0 GPA (B or better average) on the last 60 hours of undergraduate credits; and be in good standing at the institution of higher learning last attended;
  • Provide a statement of intent and CV or résumé; and
  • Provide three letters of recommendation discussing the student's aptitude for graduate study

The program requires at least 30 credits and 16 months to complete a course-based degree (3 academic semesters). All students will complete a common set of core courses (18 credits) and a minimum of 12 credits of electives that define the specific chosen major. For more details, see https://ds.fsu.edu.

Interdisciplinary Data Science Core Coursework:

This is a course-based Master's degree program. All students will complete 30 credit hours consisting of 18 hours of core courses and 12 additional hours of coursework that define a specific major. 18 hours of core courses consist of:

MAP 5196 Mathematics for Data Science (3)

CAP 5768 Introduction to Data Science (3)

STA 5207 Applied Regression Methods (3)

STA 5635 Machine Learning (3)

CAP 5771 Data Mining (3)

PHI 5699 Data Ethics (2)

STA 5910 Professional Development Seminar (1)

Required Electives:

The 12-hour additional coursework consists of four graduate courses and they are major-specific. For MS-IDS in Computer Science, the additional four courses are:

CAP 5769 Advanced Topics in Data Science (3)

CAP 5778 Advanced Data Mining (3)

Restricted Electives:

One course in Cybersecurity chosen from the following, based on student background:

CIS 5379 Computer Security Fundamentals for Data Science (3)

CIS 5370 Computer Security (3)

One course from the following:

CAP 5619 Deep and Reinforcement Learning Fundamentals (3)

CAP 5605 Artificial Intelligence (3)

CDA 5125 Parallel and Distributed Systems (3)

CDA 5155 Computer Architectures (3)

CNT 5505 Computer and Network Administration (3)

COP 5570 Concurrent, Parallel and Distributed Programming (3)

COP 5611 Advanced Operating Systems (3)

COP 5725 Database Systems (3)

COT 5405 Advanced Algorithms (3)

ISC 5318 High-Performance Computing (3)

Thesis, Project, and Course-Based Master of Science (MS) Degrees

For each major of the previously mentioned major options in the MS in Computer Science degree, a student must select one of the three options (thesis, project, or course-based) to complete the degree. Each option has a specific number of required courses as well as other requirements, as described below.

Thesis Option

In any major, a student under the thesis option must take seven courses (twenty-one semester hours) at or above the 5000 level, plus at least nine semester hours of CIS 5970r, Thesis. At most, nine semester hours of CIS 5970r may be counted toward the required thirty semester hours for the Master of Science (MS) degree. Approved CIS 5930/6930 courses are counted among these, but supervised teaching, supervised research, seminars, directed individual study (DIS), and CIS 5915 may not be included. The thesis is defended by registering for CIS 8976, Master's Thesis Defense (0).

The student in the thesis option is required to propose and create an individual thesis topic of appropriate focus, size and complexity and to write a document discussing it. The thesis is to be written in accordance with the University standards. Upon completion, a thesis must be defended successfully to the department in an open forum and be approved by the major professor and supervisory committee. An electronic version of the thesis must be submitted to the Graduate School, the CS graduate coordinator, and the CS webmaster.

Project Option

In any major, a student under the project option must take eight courses (twenty-four semester hours) at or above the 5000 level, plus at least six semester hours of CIS 5915r, Graduate Software Project. At most six semester hours of CIS 5915 may be counted toward the required thirty semester hours for the Master of Science (MS) degree. Approved CIS 5930/6930 courses are counted among these, but supervised teaching, supervised research, seminars, directed individual study (DIS), and CIS 5970 may not be included. The student also must register for CIS 8974, Master's Project Defense (0), to defend the project. An electronic version of the project must be submitted to the CS graduate coordinator and the CS webmaster.

Course-Based Option

In any major, a student under the course-based option must take ten courses (thirty semester hours) at or above the 5000 level. A student must earn a "B+" or higher for at least six of the ten courses in order to graduate under the course-based option. Approved CIS 5930/6930 courses count toward the ten-course requirement, but supervised teaching, seminars, directed individual study (DIS), supervised research, CIS 5915, and CIS 5970 may not be included. A student must also register for CIS 8966, Master's Comprehensive Examination (0), the semester of graduation.

Supervisory Committee

For the thesis and project options, it is the student's responsibility to form a supervisory committee regardless of his or her selected major. No later than the beginning of work on the thesis or project, the student must secure the consent of an eligible computer science faculty member to serve as the major professor. In consultation with the major professor, the student must secure the consent of at least two additional graduate faculty members to serve as the supervisory committee, chaired by the major professor.

Doctoral Degree

The Doctor of Philosophy is regarded as a research degree and is awarded on the basis of accomplishment in a recognized specialty in computer science. Such accomplishment should include scholarly mastery of the field, significant contributions to new knowledge in the field, and written and oral communication skills appropriate for the field. All doctoral degree requirements can also be found at https://cs.fsu.edu/academics/graduate-programs/phd-degree-info/.

The requirements for the PhD include the following: passing CIS 8962, the qualifying examination (portfolio defense), and CIS 8964, preliminary examination (area survey); satisfaction of the course requirements; successfully defending a dissertation prospectus; and successfully defending a dissertation. All candidates for doctoral degrees in the department are required to participate in teaching activities at some time during their graduate careers unless waived by the department chair. Additionally, each doctoral student must complete at least one oral research presentation which is critiqued by at least one faculty member. This can be at the departmental research conference or any discipline-related conference. Each candidate must also meet the Publication Requirement, where the student is required to be the primary (e.g., first) author for at least one accepted or published regular paper (six or more pages) in a conference or journal that is ranked B or higher by the Computing Research and Education Association (CORE) [https://www.core.edu.au].

Course Requirements

Doctoral students must complete four core courses (twelve hours), one course in each of the three areas (Software, Systems, and Theory) plus one additional core course from any of the three core areas. Equivalent courses taken at other institutions must be approved by the Portfolio Evaluation Committee (PEC).

Students entering the program after earning a master's degree in Computer Science or related area must take at least four additional courses (twelve hours) beyond those taken for the MS degree, at the 5000 or 6000 level, as advised by the student's major professor and supervisory committee. These courses must be taken at FSU and a maximum of two courses (six hours) may come from outside of the department that were not previously used in the completion of a previous degree. Core courses can also be used to meet this "four additional courses" requirement provided they are taken at FSU and were not completed as part of an MS program. Supervised teaching, supervised research, DIS, and courses with prefix CGS do not count towards this requirement.

Students entering the program after earning a bachelor's degree in computer science or related area must take at least nine courses (twenty-seven hours) at the 5000 or 6000 level, as advised by the student's major professor and supervisory committee. Four of these courses (twelve hours) must meet the PhD core course requirement. The four courses (twelve hours) must be taken at FSU and cannot be part of an MS degree program outside of the FSU Computer Science Department. A maximum of two courses (six hours) may come from outside of the Computer Science Department. Supervised teaching, supervised research, DIS, and courses with prefix CGS do not count towards this requirement that were not used in the attainment of a previous degree.

The student's PhD committee can require the student to take more than the aforementioned number of courses. The student must receive a grade of "B–" or better on all graduate courses taken to satisfy the minimum course requirements of the degree. Once these minimum requirements are met, however, it is permissible to take any subsequent courses on an S/U basis.

The doctoral student must also complete at least twenty-four hours of CIS 6980r, Dissertation. A student may enroll in CIS 6980r only after being admitted to candidacy. Once admitted to candidacy, students must be enrolled for a minimum of two dissertation hours each semester until completion of the degree. The student must graduate with the doctoral degree within five years of being admitted to doctoral candidacy.

Major Professor and Supervisory Committee

As early as is feasible in the student's program, the student should identify an area for dissertation research and secure an informal agreement with a faculty member to serve as the student's major professor. This agreement should include an understanding as to the area and timeline of the dissertation research. This agreement is formalized when the department chair appoints that faculty member to serve in this capacity. In a similar manner, the student must secure agreements with, and the chair must approve, the remaining members of the student's supervisory committee. This committee must consist of one additional faculty member of the department and one member of the graduate faculty in another department as the University Representative. In addition, the chair will appoint a member to serve as departmental representative. All members must hold graduate faculty status and the University Representative must be a tenured member of the faculty.

The supervisory committee is responsible for approving an individual program of study, possibly including additional course requirements, and verifying that the student satisfies the following departmental requirements. The area examination, prospectus, and dissertation defenses must be unanimously approved by the major professor and supervisory committee.

Qualifying Examination (Student Portfolio Defense)

The PhD Portfolio is intended to provide the department with a complete view of the student's accomplishments and abilities that relate to likelihood of success as a PhD professional. The portfolio is reviewed regularly by the Portfolio Evaluation Committee to determine whether the student is making suitable progress towards the degree and must be completed with a list of the satisfactory grades ("B" or higher) for the four core graduate courses when the student takes the Doctoral Qualifying Exam. Based on the completion of the portfolio, a student can enroll in CIS 8962, Doctoral Qualifying Exam. A passing grade "P" for the CIS 8962, Doctoral Qualifying Exam, is one of the two required components of admission to candidacy.

The student should be enrolled in CIS 8962 (Doctoral Qualifying Exam) when he or she has completed the four core graduate courses, completed the portfolio, and both the student and major professor agree that the student is ready to take the Doctoral Qualifying Exam. (Doctoral Qualifying Exams may be scheduled for Fall or Spring semester, but not Summer semester). The Portfolio Evaluation Committee will schedule and conduct the Doctoral Qualifying Exam during the semester. The exam will be oral and will cover the four core graduate courses taken by the student. The student will be tested on the four core graduate course topics. The student is strongly advised to study the core course topics well in advance in preparation for the Doctoral Qualifying Exam. Students that obtain an "A or A-" in any of the core subjects will be exempt from that portion of the oral exam. If a student gets all "A or A-"s in the four core classes used for the Qualifying Exam, that student will still need to submit a copy of the portfolio to the Portfolio Review Committee.

All students admitted to the program but not yet admitted to candidacy, are required to compile and keep current a portfolio containing information relevant to the student's progress in the program. Required contents of the portfolio, submission dates, and guidelines for preparing the portfolio are found at https://www.cs.fsu.edu/academics/graduate-programs/portfolio.

A student cannot take the Doctoral Qualifying Exam if he or she has not completed the four core graduate courses. However, there is one exception to this rule. A student who has received satisfactory grades with a cumulative GPA of 3.5 or higher for all but one of the core courses can take the Qualifying Exam in the Spring term in which the last core course is being taken, assuming that the Qualifying Exams take place after spring break. In that case, the student is expected to be able to answer questions about all of the four core courses, including the core course currently being taken. If the student passes the oral, the exam is not recorded as passed until after the end of the term and the chair of the Portfolio Evaluation Committee has verified that the remaining core course has been passed with an acceptable grade.

The portfolio of any student not yet in candidacy is reviewed annually by the departmental Portfolio Review Committee (PRC). This committee consists of a core that is appointed by the Department Chair and normally meets in the Spring. Feedback to the student on the contents of the portfolio and on progress toward admission to candidacy is provided after each review.

The final review occurs in conjunction with the defense of the portfolio. Thus, when a student and his or her major professor agree the portfolio is complete, the student should register for the Doctoral Qualifying Exam, CIS 8962 (0), for the next semester. At most, students can take the Qualifying Exam twice. A student either passes or fails; there is no conditional pass.

Preliminary Examination (Area Survey)

The preliminary examination (area survey), CIS 8964, covers the student's intended area of research. It has both written and oral parts. Both parts of the examination are conducted by the student's supervisory committee, which may delegate the responsibility to a larger area committee. It is strongly recommended that the student write an area survey paper as part of this exam. The oral part is open to all department faculty members having doctoral status who elect to participate. The oral part of the examination is held in an open forum that other students are invited to attend and is followed by a closed session if the committee so desires.

Satisfactory completion of a preliminary examination shall be required for admission to candidacy for the PhD degree. No student may register for dissertation hours prior to the point in the semester in which the preliminary examination was passed. An admission to candidacy form must be completed and filed in the Office of the University Registrar prior to registration for dissertation hours. After completion of the admission to candidacy process, the student may retroactively add dissertation hours for that semester in which the preliminary examination was completed. Retroactive changes are only permitted if the preliminary examination is passed by the end of the seventh week of the semester. For term specific deadline dates, please refer to the "Academic Calendar" in the Registration Guide.

The preliminary examination is designed to test scholarly competence and knowledge and to afford the examiners the basis for constructive recommendations concerning the student's subsequent formal or informal study. The form and content of this examination will be determined by the department, college, school, or examining committee (typically, but not necessarily the same composition as the supervisory committee) administering the degree program. Prior to the examination, the student's examining committee will determine whether the student 1) has a 3.0 average, and 2) has progressed sufficiently in the study of the discipline and its research tools to begin independent research in the area of the proposed dissertation.

The chair of the Computer Science department, the academic dean, and the Dean of The Graduate School may attend any session of the supervisory or examining committee as nonvoting members. A member may be appointed to the examining committee at the discretion of the academic dean or Dean of The Graduate School or on recommendation of the major professor. Normally, the examining committee will be identical with the supervisory committee. The examining committee will report the outcome of the examination to the academic dean: passed, failed, additional work to be completed, or to be re-examined; the report following the reexamination must indicate the student either passed or failed. The results of the examination will be reported to the Office of the University Registrar for inclusion in the student's permanent record.

If a student fails the preliminary examination before being admitted to candidacy, a re-examination may be offered by the student's supervisory committee or other relevant decision making body within each department or unit, per that department or unit's doctoral student handbook. The Academic Dean's office should be notified of the outcome of any preliminary exam attempt.

Students can take the preliminary examination for admission to candidacy only two times. A second failure on the preliminary exam makes the student ineligible to continue in the degree program. The second attempt at the preliminary exam shall occur no sooner than six full class weeks after the results of the first attempt are shared with the student. For the purpose of this policy, a "full class week" is defined as a week with five days during which classes are held at FSU. Students must be registered separately for their first and second attempt, if necessary within the same semester, and must receive either a "pass" or a "fail" grade for each attempt.

An exception request regarding the timing of the re-examination can be submitted for consideration to the Academic Dean's Office by either the student or the supervisory committee. Students who allege that academic regulations and/or procedures were improperly applied for the re-examination of their preliminary exam may have their grievances addressed through the general academic appeals process. The full preliminary exam policy as listed here must be added to all doctoral student handbooks.

A Ph.D. CS student can be exempt from writing the document for the area exam if the student was the primary author on an accepted or published paper in the general intended research area and the student's Ph.D. committee deems the paper and the publication venue to be acceptable. However, an oral examination for the area exam is still required. The student's Ph.D. committee may allow the student to present the accepted or published paper in place of the normal presentation of the research area, but the Ph.D. committee can still ask the student questions about the intended area of research.

Admission to Candidacy

In order to be advanced to candidacy for the doctoral degree, the student must: pass CIS 8962, the qualifying examination, which consists of passing the defense of the portfolio and completion of the four core courses with a grade of "B" or better pass CIS 8964, the preliminary exam, which consists of passing the area examination. Once completed the Graduate Coordinator will submit the admission to candidacy form located at the registrar's Website (https://registrar.fsu.edu/forms/admission_to_candidacy.pdf) to the Dean's office for approval and processing.

A student who has passed the preliminary examination and has been certified by the Office of the University Registrar (with an admission to candidacy form) is considered a candidate for the doctoral degree and is eligible to register for dissertation credits. A student must be admitted to candidacy at least six months prior to the granting of the degree. The purpose of this requirement is to ensure a minimal lapse of time for effective work on the dissertation after acquisition of the basic competence and after delineation of the problem and method of attack. More realistically, the student should expect to spend a year or more of work on the dissertation.

Prospectus

After passing the preliminary examination, the student is required by the Computer Science department to submit to the major professor, supervisory committee, and departmental chair a prospectus which consists of much of the background work for the dissertation, including: a thorough literature review, preliminary computational results, and/or bases for the feasibility of the research, and a proposal for research to be completed for the dissertation.

Students are reminded to seek Institutional Review Board (IRB) and/or Animal Care and Use Committee (IACUC) approval prior to commencing any research involving human or animal subjects. The student's name must appear on the IRB approval and/or application form as a PI or associate/co-investigator for the period of time when the student's research was conducted (i.e., data collections and analyses). Students must be listed on an ACUC protocol in order to conduct any animal research. Failure to be listed or obtain the required approvals may result in the dissertation being permanently embargoed and unpublishable in any form.

In addition, as an appendix to the prospectus, publication plans should be presented. The research proposed should make clear and substantial advances in the state of knowledge in computer science, and the publication plans should be designed to affirm the quality and nature of the research. Publication should be in nationally recognized conferences and journals in the field. The prospectus must be successfully defended before the student's supervisory committee in an open meeting.

Dissertation

After completing the research proposed in the prospectus, the student must write a dissertation. The dissertation represents the fulfillment of the proposals made in the prospectus. The dissertation document must comply with all current University standards for style. The dissertation must be successfully defended before the student's committee in an open meeting. The dissertation must be successfully defended within five years of passing the preliminary exam (CIS 8964).

To be acceptable it must be an achievement in original research constituting a significant contribution to knowledge and represent a substantial scholarly effort on the part of the student. It is the responsibility of the major professor to supervise the preparation of the prospectus and the dissertation. The manuscript must be prepared according to the style and form prescribed by the department and must conform to the University requirements regarding format. The dissertation should be in the hands of the major professor and the examining committee at least four weeks before the date of the defense. At the same time, the dissertation should be submitted electronically to the Manuscript Clearance Advisor in The Graduate School so that the clearance advisor can provide the student with a critique of the manuscript with respect to the Graduate School's formatting requirements. Electronic submission instructions can be found on The Graduate School's website under Thesis, Treatise and Dissertation.

A student who has completed the required coursework, passed the Preliminary Examination and submitted an Admission to Candidacy form to the Office of the Registrar, and continues to use campus facilities and/or receives faculty supervision, but has not been cleared by the Manuscript Clearance office shall include in the required full-time load a minimum of two credit hours of dissertation per semester, including Summer term, until completion of the degree. A student must be enrolled in a minimum of two hours of dissertation in the semester of graduation. Those with underload permission must register for at least two credit hours of dissertation per semester (or term). Underloads must be approved by the student's academic dean. Before registering for dissertation hours, the student must consult the major professor as to the proportion of time to be devoted to dissertation work.

Prior to degree conferral, all doctoral students must have completed a minimum of twenty-four credit hours of dissertation. Doctoral students, after completion of the preliminary exam and twenty-four credit hours of dissertation, must be enrolled for a minimum of three credit hours per semester (of which at least two must be dissertation hours) until completion of the degree. For more information on the full-time load for doctoral students, see the "Student Course Load" section of this Graduate Bulletin. For more specific information on final-semester registration, see the section "Registration for Final Term."

As a condition of undertaking a dissertation program, the student agrees that the completed dissertation will be archived in the University Libraries system. The student will make the electronic dissertation available for review by other scholars and the general public by selecting an access condition provided by The Graduate School.

Definition of Prefixes

CAP—Computer Applications

CDA—Computer Design/Architecture

CEN—Computer Software Engineering

CGS—Computer General Studies

CIS—Computer Science and Information Systems

CNT—Computer Networks

COP—Computer Programming

COT—Computing Theory

ISC—Interdisciplinary Sciences

Graduate Courses

CAP 5137. Software Reverse Engineering and Malware Analysis (3). Prerequisite: CDA 3100. This course covers fundamental problems, principles, and techniques in software reverse engineering of binaries including static analysis techniques, disassembly algorithms, dynamic analysis techniques, automated static and dynamic analysis techniques, malware analysis techniques, anti-analysis techniques, and malware obfuscation and packing techniques; many of the techniques will be demonstrated and practiced using IDA. The course also involves research opportunities to analyze new malware samples and firmwares and develop new analysis tools.

CAP 5415. Principles and Algorithms of Computer Vision (3). Prerequisite: COP 4530. This course examines the basic computational principles and algorithms to extract information from images and image sequences. Topics include imaging models, linear and nonlinear filtering, edge detection, stereopsis and motion estimation, texture modeling, segmentation and grouping, and deformable template matching for recognition.

CAP 5540. Bioinformatics: Sequence Analysis (3). This is an interdisciplinary course between computer science and biology. Students do not have the prior knowledge of the algorithms and biology for taking this course. All algorithms and biology will be covered from scratch.

CAP 5605. Artificial Intelligence (3). Prerequisite: COP 4530. This course is an introduction, representing knowledge, controlling attention, exploiting constraints, basic LISP programming, basic graph searching methods, game-playing and dealing with adversaries, understanding vision, theorem proving by computer, computer programs utilizing artificial intelligence techniques.

CAP 5619. Deep and Reinforcement Learning Fundamentals (3). Prerequisite: Senior or grad standing in science or engineering; or instructor permission. Requires some familiarity with basic concepts in linear algebra and probability theory, some basic knowledge of algorithm design, and programming experience with Python. This course covers fundamental principles and techniques in deep and reinforcement learning, as well as convolutional neural networks, recurrent and recursive neural networks, backpropagation algorithms, regularization and optimization techniques for training such networks, dynamic programming, Monte Carlo, and temporal difference, and function approximation reinforcement learning algorithms, and applications of deep and reinforcement learning. The course also covers active research topics in deep and reinforcement learning areas.

CAP 5638. Pattern Recognition (3). Prerequisites: Knowledge of probability and at least one programming language. This course explores applications of mathematical tools, in particular, probabilistic, algebraic, and linguistic tools, to problems in pattern recognition and classification. Feature selection procedures, syntactic pattern recognition. Applications of fuzzy set theory to pattern recognition and classification.

CAP 5726. Introduction to Computer Graphics (3). Prerequisite: COP 4530. This course covers fundamental principles and algorithms underlying computer graphics, and also provides a brief introduction to openGL. The course is intended for computer-science graduate students who are interested in computer-graphics related careers or in learning and applying computer-graphics techniques.

CAP 5768. Introduction to Data Science (3). Prerequisite: Graduate standing in science or engineering, or instructor permission. Students should be familiar with basic linear algebra concepts, probability theory, algorithm designs, and should have some Python or Java programming skills. This course is an introduction and overview of the fundamentals of Data Science. In this course, students become familiar with the Data Science process and how to use the methodologies and algorithms to approach real world problems.

CAP 5769. Advanced Data Science (3). Prerequisite: COP 4530 (Computer Science undergraduate students); or IDC 4104 and graduate standing in science or engineering majors; or instructor permission. Familiarity with basic linear algebra probability, algorithms, some Python or Java skills. This course is an intensive, advanced guide to Data Science. In this course, students become data scientists, capable of bother advanced data analysis and critical evaluation of the results.

CAP 5778. Advanced Data Mining (3). Prerequisite: Students should have working knowledge of probability theory, linear algebra and common data mining algorithms; and should have taken a course covering the fundamentals of data structures, algorithms, and generic programing. This course discusses advanced techniques for processing and mining large-scale digital data.

CAP 6606. Fundamentals of Machine Learning Algorithms (3). Prerequisite: Familiarity with sets and logic, basic linear algebra, statistics, and calculus. Proficiency in a programming language, such as Python or C, at the level of COP 3014 or equivalent. This course is a rigorous introduction to the design and analysis of machine learning algorithms, including algorithms for supervised, unsupervised, and reinforcement learning tasks. Students explore how bounds on the generalization ability of a given algorithm are formulated and proven. A variety of classical machine learning algorithms are analyzed in depth.

CDA 5125. Parallel and Distributed Systems (3). Prerequisite: COP 4610. This course introduces various systems aspects of parallel and distributed computing. Topics include parallel computer architectures, interconnects, parallel programming paradigms, compilation techniques, runtime libraries, performance evaluation, performance monitoring and tuning, as well as tools for parallel and distributed computing.

CDA 5155. Computer Architecture (3). Prerequisite: CDA 3101. This course focuses on computer system components; microprocessor and minicomputer architecture; stack computers; parallel computers; overlap and pipeline processing; networks and protocols; performance evaluation; architecture studies of selected systems.

CEN 5035. Software Engineering (3). Prerequisites: CEN 4021, COP 4020, and COP 4530. This course surveys software engineering and a detailed study of topics from requirements analysis and specification, programming methodology, software testing and validation, performance and design evaluation, software project management, and programming tools and standards.

CEN 5526. Wireless and Mobile Computing (3). This course introduces students to the design, implementation, and analysis of mobile systems and applications in various domains, including urban sensing, mobile healthcare monitoring, security and privacy, location-aware services, and vehicular computing. Integral to the course are the course projects in which students develop mobile applications on mobile devices. Through the course projects, students gain hands-on experience on building mobile applications and validate their research ideas in practice.

CGS 5267. Principles of Computer Organization (3). (S/U grade only). Corequisites: COP 3330 and MAD 2104. This course is for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. Basic computer structure and design, register transfer and micro operations, central processor organization, microprogramming, arithmetic processor design, input-output, memory organization, virtual memory, microprocessors and microcomputer architecture.

CGS 5268. Principles of Computer Organization II (3). (S/U grade only). Prerequisite: CDA 3100 or CGS 5267. This course explores fundamental concepts in processor design, including data path and control, pipelining, memory hierarchies, and I/O.

CGS 5409. Object-Oriented Programming in C++ for Non-majors (2). Prerequisite: COP 3014 or a comparable course in C or C++ Programming. Pre- or corequisite: COP 3353. In this course, topics include basics of C++ language, objects and classes, programming with classes, constructors and destructors, dynamic memory allocation, function and operator overloading, master classes, the class iostream, base and derived classes, and templates. May not be applied toward a degree in computer science.

CGS 5425. Object-Oriented Programming with Data Structures (3). (S/U grade only). Prerequisites: COP 3330 and MAD 2104. Pre- or corequisite: CDA 3100. This course is for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. Structured and object-oriented programming; invariant relations, stepwise refinement; text processing, internal sorting methods, linear tables, pointers and linked data structures, recursive programming and recursion elimination, sequential file processing; trees and graphs; program verification and running time analysis; application of concepts through programming projects.

CGS 5426. Programming Language Concepts (3). (S/U grade only). Corequisite: COP 4530. This course is for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. A survey of programming languages and language features and an introduction to compilers. Languages to be discussed include FORTRAN, Pascal, Ada, PL/1, APL, and LISP. An oral presentation is required.

CGS 5427. Algorithm Design and Analysis (3). (S/U grade only). Prerequisites: COP 4530, MAD 3105, or MAD 3107. Corequisite: STA 4442, STA 4321 or STA 3032. This course is for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. Techniques for the analysis of computer algorithms; examples of well-designed algorithms and associated data structures; principles of algorithm design and application of programming projects.

CGS 5428. Relational Database Theory (3). (S/U grade only). Prerequisite: COP 3330 and MAD 2104. This course is for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. Basic file organization methods, indexed files, multi-key processing; architecture of database management systems; relational, hierarchical network, and semantic database models; normalization, distributed databases and file systems; practical use of a DBMS and the building of a database application.

CGS 5429. Introduction to Computer Theory (3). (S/U grade only). Prerequisite: MAD 3105. This course is for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. Regular expressions; regular, context-free, context-sensitive, and unrestricted grammars; foundations of language theory; finite automata and linear grammars; pushdown automata; Turing machines and non-solvability.

CGS 5466. Programming for Non-Majors (3). (S/U grade only). Prerequisite: MAC 1140. This course examines fundamental concepts and skills of programming in a high-level language. Flow of control topics such as sequence, selection, iteration, and subprograms are covered. Data structures topics such as arrays, strings, structs, and ADT lists and tables are also covered, along with algorithms using selection and iteration (decision making, finding maxima and minima, basic searching and sorting, simulation, etc). Good program design using a procedural paradigm, structure, and style are emphasized.

CGS 5765. Principles of Operating Systems (3). (S/U grade only). Prerequisites: CDA 3100 and COP 4530. This class if for graduate non-majors and graduate majors needing foundational work in computer science; credit may not be applied toward a graduate degree in computer science. Design principles of batch multi-programming and time-sharing operating systems. Linking, loading, input-output systems, interacting processes, storage management, process and resource control, file systems.

CGS 5935r. Special Topics in Computer Science for Non-Majors (1–3). (S/U grade only). Prerequisite: Instructor permission. This special-topics course is intended for non majors. Topics may vary. May be repeated within the same term, to a maximum of three semester hours.

CIS 5105. Computer Systems Performance Analysis (3). Prerequisite: COP 4610, MAD 3105, and STA 4442. This course covers empirical, simulation, and analytical methods to evaluate computer systems. The emphasis is on the empirical methods. Through the course project, the students gain experience measuring and evaluating a system using proper experimental design, metrics, workloads, and statistical analysis techniques.

CIS 5370. Computer Security (3). Prerequisites: COP 4610. In this course, topics include computer security threats and attacks, covert channels, trusted operating systems, access control, entity authentication, security policies, models of security, database security, administering security, physical security and TEMPEST, and brief introductions to network security and legal and ethical aspects of security. A research paper or project is required.

CIS 5371. Cryptography (3). Prerequisite: MAD 3105. This course addresses issues of modern cryptography covering theory and practice. Algorithms such as the RSA, ElGamal, and the Digital Signature Standard are covered in depth.

CIS 5379. Computer Security Fundamentals for Data Science (3). Prerequisite: CGS 3465. This course is an introduction to computer security, targeted towards graduate students in data science. This course covers a broad range of topics within computer security, such as cryptographic algorithms, security protocols, network authentication, and software security.

CIS 5627. Introduction to Offensive Computer Security (3). Prerequisite: CDA 3100. This course takes a hands-on approach to train students in the fundamental principles in computer security, including software security and web security. Its goal is to help students understand how various attacks work, what their fundamental causes are, how to defend against them, and how various defense mechanisms work. These key concepts are reinforced by various hands-on projects.

CIS 5900r. Directed Individual Study (1–9) (S/U grade only). May be repeated to a maximum of twenty-seven semester hours.

CIS 5910r. Supervised Research (1–5). (S/U grade only). This course cannot be applied to the master's degree. May be repeated to a maximum of five semester hours.

CIS 5915r. Graduate Software Project (1–12). (S/U grade only). A minimum of six semester hours of credit is required for project option MS students.

CIS 5920r. Colloquium (0-1). (S/U grade only). This course is for PhD CS students who will be required to attend a specified number of research colloquium offered by either faculty or students within the CS Department or visitors to the department. The main goal of this course is to help the PhD CS students fulfill in part the CS Department's scholarly engagement requirement. May be repeated to a maximum of ten semester hours.

CIS 5930r. Selected Topics in Computer Science (1–3). May be repeated to a maximum of twelve semester hours.

CIS 5935. Introductory Seminar on Research (2). (S/U grade only). Prerequisite: Admission to the MS or PhD in Computer Science degree program. This seminar is a series of lectures given by faculty on the research being conducted by the Department of Computer Science. Other lectures include guidelines on the preparation of the doctoral portfolio, and on the use of library research tools.

CIS 5940r. Supervised Teaching (1–5). (S/U grade only). May be repeated to a maximum of five semester hours.

CIS 5949r. Internship in Computer Science (0–9). (S/U grade only). Prerequisite: COP 4610. This internship is a field placement in an approved industry or government entity having a significant information technology or computer science component. May be taken for variable credit and repeated with departmental approval. Credits do not count towards graduation. Successful completion requires satisfactory job evaluation and demonstration of educational value of placement via a paper. May be repeated to a maximum of thirty-six semester hours.

CIS 5970r. Thesis (1–12). (S/U grade only). A minimum of nine semester hours of credit is required for thesis option MS students.

CIS 6628. Offensive Network Security (3). Prerequisites: CIS 4626 or CIS 5627. This course provides comprehensive coverage of fundamental problems, principles, techniques, and commonly used tools for offensive network security. The course also covers real world policy (legal) and implementation issues in network penetration testing.

CIS 6900r. Directed Individual Study (1–12). (S/U grade only). May be repeated to a maximum of twenty-four semester hours.

CIS 6930r. Advanced Topics in Computer Science (1–3). May be repeated to a maximum of twelve semester hours.

CIS 6935r. Advanced Seminar in Computer Science (1). This course is an advanced seminar in computer science. May be repeated, and duplicate registration allowed during the same term, for a total of twelve semester hours.

CIS 6980r. Dissertation (1–12). (S/U grade only).

CIS 8962r. Doctoral Qualifying Examination (0). (P/F grade only.) May be repeated twice at most.

CIS 8964. Preliminary Doctoral Examination (0). (P/F grade only.)

CIS 8966. Master's Comprehensive Examination (0). (P/F grade only.)

CIS 8974. Master's Project Defense (0). (P/F grade only.)

CIS 8976. Master's Thesis Defense (0). (P/F grade only.)

CIS 8985. Dissertation Defense (0). (P/F grade only.)

CNT 5412. Network Security, Active and Passive Defenses (3). Prerequisite: COP 4530. This course analyzes threats to computer networks, network vulnerabilities, techniques for strengthening passive defenses, tools for establishing an active network defense, and policies for enhancing forensic analysis of crimes and attacks on computer networks. Topics include private and public key cryptography, digital signatures, secret sharing, security protocols, formal methods for analyzing network security, electronic mail security, firewalls, intrusion detection, Internet privacy, and public key infrastructures. A research paper or project is required.

CNT 5415. Applied Computer and Network Security (3). In this course, students familiarize themselves with current and emerging threats to the security of computer systems and networks, including viruses, worms, and network intrusion; and with techniques for the prevention, detection, and recovery from such attacks, such as firewalls, intrusion detection systems, secure coding practices, and others. Attack and defense mechanisms are studied in a systematic way to develop students' practical and analytical skills to identify and correct or mitigate threats to computer systems and networks.

CNT 5505. Data and Computer Communications (3). Prerequisites: CDA 3100 and COP 4610. This course offers an overview of networks; data communication principles; data link layer; routing in packet switched networks; flow and congestion control; multiple access communication protocols; local area network protocols and standards; network interconnection; transport protocols; integrated services digital networks (narrowband and broadband); and switching techniques and fast packet switching

CNT 5529. Wireless Networking (3). This course is intended to cover a wide spectrum of topics on wireless networks, including the physical layer, the medium access control layer, and the network layer. The focus is on understanding, implementing, and experimenting with various wireless networking technologies in different layers with software.

CNT 5605. Computer and Network Administration (3). Prerequisite: COP 4610. This course covers UNIX user commands and shell programming. Also covered are problem solving and diagnostic methods, system startup and shutdown, device files and installing devices, disk drives and file systems, NFS, NIS, DNS, sendmail. Students also learn how to manage a WWW site, manage UNIX software applications, system security, and performance tuning. Legal and professional issues, ethics and policies are covered.

COP 5570. Concurrent, Parallel, and Distributed Programming (3). Prerequisite: COP 4610. This course covers UNIX and C standards, file I/O, file access and attributes, directories, the standard I/O library, systems administration files, the process environment, process control, process relationships, signals, terminal I/O, daemon processes, interprocess communication, and pseudo terminals.

COP 5611. Advanced Operating Systems (3). Prerequisites: CDA 3100, COP 4610, and introductory probability or statistics. This course focuses on design principles of batch, multiprogramming, and time-sharing systems; distributed systems; problems of concurrency.

COP 5621. Compiler Construction (3). Prerequisites: CDA 3100 and COT 4420. This course serves as an introduction to compiling, elements of language theory, syntax-directed translation, lexical analysis, symbol tables, LR(k) parsing, intermediate code generation, code optimization, code generation, error detection and recovery. There are a number of significant programming projects in this course.

COP 5641. Kernel and Device Driver Programming (3). Prerequisites: COP 4610 and COP 5570, or instructor permission. This course covers internals of the Linux operating system kernel, including virtual and physical memory management, scheduling, and device drivers. Focus is also placed on kernel modules, hardware interfaces, char and block devices, kernel debugging, interrupt handling, and memory mapping. Laboratory exercises include modifying example modules and project developing a new device driver.

COP 5659r. Mobile Programming (3). Prerequisite: COP 4530. This course teaches students how to program mobile devices. Students use event-based models to write and deploy an intent based application using a mobile computing software framework. May be repeated to a maximum of nine semester hours.

COP 5725. Database Systems (3). Prerequisites: COP 4610 and COP 4710. This course examines the use of a generalized database management system; characteristics of database systems; hierarchical, network, and relational models; file organizations.

COP 6622. Advanced Topics in Compilation (3). Prerequisite: COP 5621. This course covers attribute grammars and attribute grammar processors, formal methods of semantic analysis, generalized tree transformers, code selection, analysis and optimization, as well as error analysis and recovery.

COT 5310. Theory of Automata and Formal Languages (3). Prerequisites: COP 4020 and COT 4420. This course examines normal models of computation; automata; formal languages, their relationships, decidable and undecidable problems.

COT 5405. Advanced Algorithms (3). Prerequisite: COP 4530. This course covers algorithms, formal proofs of correctness, and time complexity analysis for network flow problems, approximation of NP hard combinatorial optimization problems, parallel algorithms, cache-aware algorithms, randomized algorithms, computational geometry, string algorithms, and other topics requiring advanced techniques for proof of correctness or time/space complexity analysis.

COT 5507. Analytic Methods in Computer Science (3). Prerequisite: COP 4530. This course teaches computer science students the fundamental discrete mathematics required for serious graduate work in algorithms and theoretical computer science. It specifically covers topics in recurrent problems, sums, integer functions, elementary number theory, binomial coefficients, special numbers, and generating functions.

COT 5715. Random Number Generation (3). Prerequisite: COP 4530. This course provides a graduate-level examination of all aspects of random number generation as used in simulation; specifically, the course concentrates on pseudorandom number generation and quasi-random number generation theory and practice.

ISC 5228. Monte Carlo Methods (3). Prerequisites: ISC 5305, MAC 2311, and MAC 2312. This course provides an introduction to probabilistic modeling and Monte Carlo methods (MCMs) suitable for graduate students in science, technology, and engineering. It provides an introduction to discrete event simulation, MCMs and their probabilistic foundations, and the application of MCMs to various fields. In particular, Markov chain MCMs are introduced, as are the application of MCMs to problems in linear algebra and the solution of partial differential equations.