http://www.cs.miami.edu

Dept Code:  CSC

Introduction

The Department of Computer Science offers undergraduate and graduate education in Computer Science, and performs research in various areas of Computer Science. The Department has faculty with strong accomplishments in the fields of algorithm engineering, automated reasoning, bioinformatics, computational complexity, computational geometry & computer graphics, cryptography & network security, data mining, data science, molecular computation, multimedia systems, music information retrieval, robotics, scientific computing, scientific visualization, semantic web, and wireless & mobile computing.

Educational Objectives

The Department of Computer Science educates students in the science of software development: the analysis of domain problems, the development of algorithms and programs, the use of specialist computing techniques, the system-software and hardware platforms, and the production and deployment of efficient and robust computer software. Instruction ranges from introductory programming classes and laboratories, through to research in various areas of computer science.

Degree Programs

The Department of Computer Science offers

Computer Science as a Second Major

A second major in Computer Science is available to all students. A second major in Computer Science requires completion of the requirements of a Computer Science major, either the Second Major in Computer Science, Fundamentals or the Second Major in Computer Science, with Tracks.

Writing within the Discipline

To satisfy the College of Arts and Sciences writing requirement in the discipline, students whose first major is Computer Science must take at least one of the following courses for a writing credit:  CSC 405CSC 431ENG 233.

Departmental Honors

In addition to the University’s requirements for Departmental Honors, Departmental Honors in Computer Science requires completing a major and 6 additional approved credit hours (all CSC 4XX and CSC 5XX courses are approved). The major or additional credit hours must include at least 3 credit hours from CSC 410 and CSC 411.

Notes

  • A grade of C- or better in all CSC courses is required in a major or minor.
  • An overall GPA of 2.5 or better in all CSC courses is required in a major or minor.  This GPA is computed using only courses from this department.  If a course is repeated only the highest grade for the course is used.
  • For a Computer Science major, at least 15 credit hours of CSC courses must be completed at the University of Miami.
  • For a Computer Science minor, at least 9 credit hours of CSC courses must be completed at the University of Miami.

Minor in Computer Science

Joint Degrees in Computer Science

CSC 115. Social and Ethical Issues in Computing. 3 Credit Hours.

History, social context and methods and tools of analysis. Professional and ethical responsibilities. Intellectual property. Privacy and civil liberties.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 118. Information Technology and Society. 3 Credit Hours.

A variety of topics on information technology and society through various course activities including research papers, experiments, and by reading articles. The topics covered include but are not limited to: history of computing, hardware mechanisms, algorithms design, software development principles, software tools, security, and artificial intelligence.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Summer.

CSC 119. Computers and Society. 3 Credit Hours.

Basic concepts of computer systems. Installing, configuring, and managing computer software. Internet information retrieval. Application software. HTML, programming for the www in JavaScript. E-commerce, cryptography, computer security. Social, legal, ethical issues and the future.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 120. Computer Programming I. 4 Credit Hours.

History of computing. Fundamental programming constructs. Algorithms and problem solving. Object-oriented programming. Recursion.
Prerequisite: MTH 108. Or Corequisites: MTH 140 or Higher or MAS 110.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 200. Cybersecurity: An Introduction to Security in Cyber Space. 3 Credit Hours.

An introduction to cybersecurity, for all students. Recent incidents. The internet. Cyberattacks. Defending against cyber attacks. Tools to protect individual users and computernetworks. Legal, moral, and social aspects of cyber security.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 210. Computing for Scientists. 3 Credit Hours.

Computing applications in science. Tools and algorithms for applications. Implementation of algorithms. Storage, retrieval analysis and visualization of data in science.
Prerequisite: MTH 141 or MTH 151 or MTH 161 or MTH 171.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 220. Computer Programming II. 4 Credit Hours.

Common APls including list, priority queue, set, and map, and their efficient implementations in an object-oriented language using fundamental data structures. Sorting and other applications of recursion. Combining asymptotic analysis and experiments to extrapolate running times. Using APls in a software project.
Prerequisites: CSC 120 or CIS 324 or ECE 218, MTH 108 or MTH 140 or MTH 141 or MTH 161 or MTH 162 or MTH 171 or MTH 172 or MAS 110.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 314. Computer Organization and Architecture. 3 Credit Hours.

Digital logic and digital systems. Machine level representation of data. Assembly level machine organization. Memory system organization and architecture. Interfacing and communication. Functional organization. Multiprocessing and alternative architectures
Prerequisite: CSC 220. Or BTE 324. Or ECE 218. And Corequisite: MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 317. Data Structures And Algorithm Analysis. 3 Credit Hours.

Basic algorithmic analysis. Algorithmic strategies. Fundamental computing algorithms. Distributed algorithms. Cryptographic algorithms. Geometric algorithms.
Prerequisite: CSC 220 or ECE 318, and MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 322. System Programming. 3 Credit Hours.

C programming: Program structure, core language elements, pointers. System tools for C programming. Programming for UNIX: The system call interface, interfaces to the internet. Scripting.
Prerequisite: CSC 220 or ECE 318.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 329. Introduction to Game Programming. 3 Credit Hours.

Fundamental programming issues in game design: Software design; Version control; Basic graphics; GUI programming. Large-scale game project: Team development of a functional game; Graphics and GUI component; Networking component; Core game engine.
Prerequisite: CSC 220 or ECE 318.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 330. Android Programming. 3 Credit Hours.

The android/Eclipse programming environment. The Android execution model. User interfaces. Media. Data storage areas. Sensors and actuators. The Android market.
Prerequisite: CSC 220.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 401. Computer Science Practicum I. 1 Credit Hour.

Implementation of techniques, algorithms, and data structures being taught in a co-requisite computer science course.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 402. Computer Science Practicum II. 1 Credit Hour.

Implementation of techniques, algorithms, and data structures being taught in a co-requisite computer science course.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 403. Computer Science Practicum III. 1-3 Credit Hours.

Implementation of techniques, algorithms, and data structures being taught in a co-requisite computer science course.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 405. Computer Science Seminars. 1 Credit Hour.

A range of topics in Computer Science, as embodied in the seminars hosted by the Department.
Components: SEM.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 410. Computer Science Project Planning. 1-3 Credit Hours.

Planning for the implementation of a Computer Science project, including: Problem analysis, System architecture design, Algorithm and data structure selection, User interface design, Verification and validation plan, and Prototyping.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 411. Computer Science Project Implementation. 1-3 Credit Hours.

Implementation of a Computer Science project, including: Hardware preparation, Component implementation, System integration, Verification and validation, and Documentation.
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 412. Computer Science Internship. 1-3 Credit Hours.

A commercial computing environment. Normally 50 internship hours are required per credit earned (the host company must supply documentary evidence of hours worked).
Components: PRA.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 419. Programming Languages. 3 Credit Hours.

Overview of programming languages. Fundamental issues in language design. Virtual machines. Introduction to language translation. Models of execution control. Declaration, modularity, and storage management. Programming language semantics. Programming paradigms.
Prerequisite: CSC 317 or CSC 517.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 421. Principles Of Computer Operating Systems. 3 Credit Hours.

Process management. Scheduling and dispatch. Interprocess communication. Memory management. File systems. Device management.Security and protection. System programming for UNIX.
Prerequisite: CSC 314 and CSC 322.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 423. Database Systems. 3 Credit Hours.

Information models and systems. Database systems. Data modeling. Relational databases. Relational database design. Database query languages, Data mining concepts, Web database programming.
Requisite: CSC 322 Or ECE 322.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 424. Computer Networks. 3 Credit Hours.

Introduction to computer networks and network applications. The protocol stack. Routing, switching and bridging technologies. Models of network computing. Internet standards and protocols.
Prerequisite: CSC 314 and CSC 322.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 427. Theory Of Computing. 3 Credit Hours.

Sets, relations, and languages. Automata theory. Basic computability theory. Turing machines. The complexity classes P and NP.
Prerequisite: CSC 220 or ECE 318, and MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 431. Introduction To Software Engineering. 3 Credit Hours.

Software processes, requirements and specifications, design, validation, evolution. Project management, tools and environments. Foundations of human-computer interaction. Risks and liabilities of computer-based systems. Intellectual property.
Prerequisite: CSC 317 or CSC 322 or CSC 517.
Components: LEC.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 481. Teaching Assistant Training in Computer Science. 1-3 Credit Hours.

Training and teaching assistant for a specific course, in computer laboratories . May be taken multiple times, assisting maximally twice for a given course.
Components: PRA.
Grading: GRD.
Typically Offered: Fall & Spring.

CSC 498. Senior Topics in Computer Science. 3 Credit Hours.


Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 506. Logic. 3 Credit Hours.

Propositional and first order logic: completeness. Computational logic: Robinson's resolution. Formalized theories: arithmetic, Godel's incompleteness theorem , Tarski's theorem on undefinability of truth.
Prerequisite: MTH 230 or PHI 210 or PHI 510.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 507. Data Security and Cryptography. 3 Credit Hours.

Access, information flow, and inference controls. Network security and management. Encryption algorithms. Cryptographic techniques.
Prerequisite: CSC 317 Or CSC 427.
Components: LEC.
Grading: GRD.
Typically Offered: Spring.

CSC 518. Interpreters and Compiler Theory. 3 Credit Hours.

Translation of higher-level languages into machine language. Grammars, parsing, scanners, precedence relations. Run-time storage and symbol table organization . Semantic routines. Chaining and hashing. Code generation and optimization. Macro implementation.
Prerequisite: CSC 419.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 528. Introduction to Parallel Computing. 3 Credit Hours.

Parallel computing systems shared-memory parallel programming, with open MP, distributed-memory parallel programming, software with open MPI software package. Applications: vector and matrix operations, sorting, image processing.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 529. Introduction to Computer Graphics. 3 Credit Hours.

Graphic systems. Graphic communication. Geometric modeling (2D and 3D representations). Rendering. Advanced techniques. Display and input devices. Software packages.
Prerequisite: CSC 220 or ECE 318, and MTH 210.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 540. Algorithm Design and Analysis. 3 Credit Hours.

Design techniques include divide-and-conquer, greedy method, dynamic programming, backtracking. Time and space complexity. Sorting, searching, combinatorial and graph algorithms.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 545. Introduction to Artificial Intelligence. 3 Credit Hours.

Search and constraint satisfaction. Knowledge representation and reasoning. Natural language processing. Machine learning and neural networks. Game theory. AI programming.
Prerequisite: CSC 220 and MTH 309.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 547. Computational Geometry. 3 Credit Hours.

Algorithms for solving geometric problems arising from application domains including graphics, robotics, and GIS.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 548. Bioinformatics Algorithms. 3 Credit Hours.

The complexity of bioinformatics computations. Introduction to perl and bioperl. Pattern matching and sequence homology. Genome assembly. Transcription factor Binding Site recognition and motif finding. Gene prediction. Phylogeny..Micro-array analysis. RNA folding. Gene design and synthesis.
Prerequisites: CSC 120 or CSC 210, BIL 150 or BIL 104 or BIL 352 or BIL 552 or CSC 552.
Components: LEC.
Grading: GRD.
Typically Offered: Fall.

CSC 549. Biomedical Data Science. 3 Credit Hours.

The computational skills needed for analysis of genomic and biomedical data sets, including: The basics of a command line interface. Programming in (bio-)python. Running programs on Pegc:sus2 . Writing scripts for downloading, manipulating, and analyzing data. File sharing and version control using github. Analyzing a Next Generation Sequencing data set, and Interpreting the results. Responsible Conduct of Research.
Prerequisite: BIL 250.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 552. Bioinformatics Tools. 3 Credit Hours.

Databases and tools of bioinformatics, as relevant to research in genomics and molecular biology. Bioinformatics applications. Information retrieval, analytical tools, BLAST searches, promoter analysis, and protein structure- function analysis, and various applications.
Prerequisite: BIL 250 or BIL 150.
Components: LEC.
Grading: GRD.
Typically Offered: Fall.

CSC 555. Multimedia Systems. 3 Credit Hours.

Specification and requirements of a multimedia hardware system. Multimedia data technologies. Graphics file formats. Compression and decompression. Multimedia application development.
Prerequisite: CSC 317.
Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 595. Topics in Computer Science. 1-3 Credit Hours.


Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 596. Topics in Computer Science. 1-3 Credit Hours.


Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 597. Topics in Computer Science. 1-3 Credit Hours.


Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 598. Topics in Computer Science. 1-3 Credit Hours.


Components: LEC.
Grading: GRD.
Typically Offered: Offered by Announcement Only.

CSC 599. Topics in Computer Science. 1-3 Credit Hours.


Components: THI.
Grading: GRD.
Typically Offered: Offered by Announcement Only.