COMPUTER SCIENCE - Dept. Code: CSC

www.cs.miami.edu

DEGREE PROGRAMS

The department of Computer Science offers a Master of Science in Computer Science and a Doctor of Philosophy in Computer Science.

Master of Science in Computer Science

The Master of Science program in Computer Science is overseen by the Computer Science Graduate Committee (CSGC). The basic guidelines for approval of a student’s program are recommendations appearing in the Communications of the Association for Computing Machinery (ACM), the professional society in Computer Science.

Prerequisites for Admission

Completion of the following courses, or their equivalents, is prerequisite to entry into the program: CSC 120, CSC 220, CSC 314, CSC 517, CSC 527, MTH 111, MTH 224, and MTH 309. Students may be admitted with deficiencies; these must be completed in addition to the degree requirements.

Requirements for Graduation

Students must complete the Graduate School requirements, and the Departmental requirements described here.

Students must complete either the thesis option or the coursework option.

1. Thesis option:

• CSC 710 – Master’s Thesis (6 credits)

and coursework:

• At least 9 credits from CSC6XX courses and at least 15 credits from other approved courses.

• 2. Coursework option:

At least 36 credits from approved courses.

At least 18 credits, excluding thesis credits, must be from courses offered by the Department of Computer Science, and may not include more than 6 credits from CSC 670. CSC 5XX and CSC 6XX courses can be approved for a program, and certain non-Computer Science graduate courses may be considered for approval.

Each program must include both theoretical and experimental topics. By graduation students will have knowledge in the areas of Programming Languages, Algorithm Design and Analysis, Theory of Computing, Operating Systems, Computer Networks, and Software Engineering. Each program is approved by the CSGC and the Department Chairman or designate. Programs may be individually tailored to meet varied backgrounds and objectives. It is recognized that there are individuals with undergraduate degrees in other fields wishing to pursue graduate work in Computer Science, and individuals with work experience in the field wishing to advance their formal training in Computer Science.

5-year Bachelor of Science + Master of Science in Computer Science

The 5-year Bachelor of Science + Master of Science program in Computer Science provides research training for students who wish to work in a computing research lab, or possibly continue to PhD studies.

Students must complete the requirements for a Bachelor of Science in Computer Science, and the requirements for a 30 credit Master of Science in Computer Science with thesis. No credits may be counted towards both requirements.

Students enter the “MS-phase” of the program when they have met the following requirements:

• They have achieved senior status, i.e., earned 89 credits towards their Bachelor of Science in Computer Science.

• Within the requirements for a Bachelor of Science in Computer Science, they have completed the prerequisites for entry into the regular Master of Science program, i.e., CSC120, CSC220, CSC314, CSC517, CSC527, MTH161, MTH224, and MTH309.

• They have completed 3 credits of CSC410/1 in a research-oriented project.

• They have a GPA of at least 3.0 in the CSC courses taken towards their BS in Computer Science.

• They have advised the Director of Graduate Studies of their eligibility for the MS-phase.

Students in the MS-phase must complete 3 further credits of CSC410/1 in a research-oriented project, as part of their Bachelor of Science in Computer Science (this project will normally be the starting point for the Master of Science research). Students in the MS-phase may take 600 level courses that count towards completing the requirements for the Master of Science in Computer Science. When students have completed the requirements for a Bachelor of Science in Computer Science they will be awarded that degree, and when they have completed the requirements for the Master of Science in Computer Science they will be awarded that degree. Students in the MS-phase must submit their GRE scores before they are admitted to graduate student status.

Incoming students can be admitted to the program if their mathematics placement is MTH108 or higher. Existing Bachelor of Science in Computer Science students can switch into the program when they have met the requirements for entering the MS-phase of the program. Students can be removed from the program if they have not met the prerequisites for admission to the MS-phase by the time they have achieved senior status. If a student is removed or decides to withdraw from the program, any 600 level courses taken may be used to fulfill the requirements for a Bachelor of Science in Computer Science.

DOCTOR OF PHILOSOPHY IN COMPUTER SCIENCE

The Doctor of Philosophy program in Computer Science is overseen by the Computer Science Graduate Committee (CSGC). The basic guidelines for approval of a student’s program are recommendations appearing in the Communications of the Association for Computing Machinery (ACM), the professional society in Computer Science.

Prerequisites for Admission

Completion of the following courses, or their equivalents, is prerequisite to entry into the program: CSC 120, CSC 220, CSC 314, CSC 517, CSC 527, MTH 111, MTH 224, and MTH 309. Students may be admitted with deficiencies; these must be completed in addition to the degree requirements.

Requirements for Graduation

Students must complete the Graduate School requirements, and the Departmental requirements described here.

Written Qualifying Exam:

The student must pass a three-hour written exam of general knowledge of Computer Science at the end of the first year. Upon failure, the student may petition the CSGC to allow a second attempt at the end of the second year. The exam will be administered once a year in the early weeks of the summer session. It will cover expected knowledge of all first-year graduate students. Included in this material are a fundamental understanding of algorithm analysis and design, advanced skills in programming, basic knowledge of computer architecture, and a general understanding of computer systems.

Classroom Courses:

In the first two years, the student must take eight CSGC-approved classroom courses, for a total of 24 credits. At least four of these courses (12 credits) must be CSC 6XX courses. The eight courses must include two courses from each of the areas of Analysis, Applications, and Systems. The student must work with the Director of Graduate Studies to select a cohesive set of courses as approved by the CSGC. The CSGC will have sole authority in designating the areas to which each course belongs. In the case that a course is designated in more than one area, a student may apply the course to only one area. The designation of current CSGC-approved courses appears at the end of this description.

Selecting an Advisor:

By the end of the second semester, the student must find a research supervisor. By the end of the third semester, the student must have made significant progress on a research project under the supervision of a faculty member. The student must write a detailed progress report that will become a public document and shall be kept on file by the Department. The student must present the report to a quorum of the CSGC at a time to be approved by the chairman of the Department. The supervisor and CSGC must approve the project as applicable toward candidacy for a Ph.D.

Annual Presentations:

After passing the written comprehensive exam, the student must make a public oral presentation to the Department at least once per year. These presentations include the thesis proposal and the thesis defense. The goals are to develop the student’s oral and presentation skills, to provide a means for the Department to check the research and progress of the student, and to present the opportunity for feedback to improve the student’s research.

Teaching Experience:

Each student must teach a lab-based course for a minimum of one semester. Lab-based courses typically require the student to present material in a relaxed lecture format, re-emphasizing material learned in the general lecture as well as introducing new material to the students.

Approved Courses for Doctor of Philosophy

Analysis

CSC 506 - Logic CSC 612 - Theory of Complexity

CSC 518 - Compiler Theory CSC 623 - Theory of Relational Databases

CSC 527 - Theory of Computing CSC 628 - Parallel Algorithms

CSC 540 - Algorithm Design and Analysis CSC 646 - Neural Computing

CSC 545 - Introduction to Artificial Intelligence CSC 647 - Computational Geometry

CSC 606 - Logic Programming EEN 634 - Modeling and Analysis of Computer Networks

CSC 609 - Cryptography and Data Security EEN 656 - Information Theory

CSC 611 - Theory of Computation MTH 509 - Discrete Mathematics II

CSC 540 - Algorithm Design and Analysis MTH 528 - Combinatorics

Applications

CSC 523 - Database Systems CSC 648 - Automated Reasoning

CSC 529 - Introduction to Computer Graphics CSC 655 - Advanced Multimedia Systems

CSC 545 - Introduction to Artificial Intelligence EEN 577 - Data Mining

CSC 555 - Multimedia Systems EEN 638 - Computer Vision

CSC 548 - Bioinformatics Algorithms EEN 653 - Pattern Recognition and Neural Networks

CSC 628 - Parallel Algorithms MTH 520 - Numerical Analysis I

CSC 645 - Expert System Design MTH 521 - Numerical Analysis II

CSC 646 - Neural Computing

Systems

CSC 518 - Compiler Theory CSC 655 - Advanced Multimedia Systems

CSC 523 - Database Systems EEN 514 - Computer Architecture

CSC 524 - Networks and Information Security EEN 534 - Computer Communication Networks

CSC 555 - Multimedia Systems EEN 614 - Advanced Computer Architecture

CSC 609 - Cryptography and Data Security EEN 634 - Modeling and Analysis of Computer Networks

CSC 645 - Expert System Design EEN 671 - Advanced Interactive Multimedia Information Systems

Approved Graduate Courses

CSC 506 - Logic CSC 647 - Computational Geometry

CSC 517 - Data Structures and Algorithm Analysis CSC 648 – Automated Reasoning

CSC 518 - Interpreters and Compiler Theory CSC 655 - Advanced Multimedia Systems

CSC 519 - Programming Languages CSC 670 - Directed Reading

CSC 521 - Principles of Computer Operating Systems CSC 685-689 - Topics in Computer Science

CSC 523 - Database Systems CSC 710 – Master’s Thesis

CSC 524 - Computer Networks CSC 725 – Continuous Registration – Master’s Study

CSC 527 - Theory of Computing CSC 730 – Doctoral Dissertation

CSC 529 - Introduction to Computer Graphics CSC 740 - Doctoral Dissertation Post Candidacy

CSC 531 - Introduction to Software Engineering CSC 750 – Research in Residence

CSC 540 - Algorithm Design and Analysis EEN 512 - Object-Oriented Software Engineering

CSC 544 - Computer Modeling EEN 514 - Computer Architecture

CSC 545 - Introduction to Artificial Intelligence EEN 532 – VLSI Systems

CSC 548 - Bioinformatics Algorithms EEN 534 – Computer Communication Networks

CSC 555 - Multimedia Systems EEN 538 - Introduction to Digital Image Processing

CSC 595-599 - Topics in Computer Science EEN 548 - Machine Learning

CSC 606 - Logic Programming EEN 572 - Object-Oriented and Distributed Database Management Systems

CSC 609 - Data Security and Cryptography EEN 614 - Advanced Computer Architecture

CSC 611 - Theory of Computation EEN 634 - Modeling and Analysis of Computer Networks

CSC 612 - Complexity Theory EEN 638 - Computer Vision

CSC 613 - Computer System Performance Evaluation EEN 656 - Information Theory

CIS 620 - Information Systems Analysis and Design MTH 509 - Discrete Mathematics II

CSC 623 - Theory of Relational Databases MTH 520 - Numerical Analysis I

CSC 624 - Mobile Wireless Systems MTH 521 - Numerical Analysis II

CSC 628 - Parallel Algorithms MTH 524 - Introduction to Probability Theory

CSC 644 - Advanced Computer Modeling MTH 525 - Introduction to Mathematical Statistics

CSC 645 - Introduction to Expert Systems MTH 528 - Combinatorics

CSC 646 - Neural Computing MTH 621 - Mathematical Probability

CSC 690 - Seminar for Beginning Graduate Students MTH 638 - Stochastic Processes

CSC 692 - Seminar