|CS 524: Theory Of Computing||Credits: 4||− Description|
Content: This course gives mathematical methods to classify the complexity of computational problems. Topics include regular languages, grammars, decidability, NP-completeness, and corresponding models of computation.
Prerequisites: CS 124 and 253.
|CS 526: Algorithms||Credits: 4||− Description|
|CS 551: Systems Programming||Credits: 4||− Description|
Content: Systems programming topics will be illustrated by use of the Unix operating system. Topics include: file i/o, the tty driver, window systems, processes, shared memory, message passing, semaphores, signals, interrupt handlers, network programming and remote procedure calls.
Programming examples and assignments will illustrate the system interface on actual computer hardware. All assignments will be in written in C. The department's computing lab will be used in the course to allow students to get hands-on experience with operating system and hardware topics that cannot effectively be pursued on a central timesharing computer.
|CS 552: Computer Architecture II||Credits: 4||− Description|
|CS 553: Data Structure & Algorithms||Credits: 4||− Description|
|CS 554: Database Systems||Credits: 4||− Description|
Content: Database implementation as well as advanced database concepts and emerging database applications will be covered. Topics include: data storage and indexing, database recovery, transaction concurrency control, distributed databases, web data management, and database security and privacy.
Particulars: An introduction level database systems course. We will use a database textbook as well as papers from recent database literature. Grades will be based on assignments, a midterm exam, and a course project.
|CS 555: Parallel Processing||Credits: 4||− Description|
Content: Principles of parallel and concurrent processing. Algorithm classes including sorting, graph algorithms, matrix computations, alpha-beta search, fourier transforms, and numercial analysis. Study of parallel architectures and concurrent computing models. Assignments include programming distributed and shared memory multiprocessors, cluster systems, and analysis of performance and speedup curves.
Prerequisites: CS255, CS351.
|CS 556: Compiler Construction||Credits: 4||− Description|
Content: An introduction to the algorithms and data structures used to construct a high level language compiler. Topics include: formal language specification, lexical analysis, parsing, and code generation.
Particulars: A substantial portion of this course will involve a student project to construct a compiler for a simplified programming language. Working knowledge of C or C++ is highly recommended.
Prerequisites: CS 253, CS 255, and CS 424, or their equivalents.
|CS 557: Artificial Intelligence||Credits: 4||− Description|
|CS 558: Networking||Credits: 4||− Description|
Content: Principles of computer networking and data communications, physical transmission, data link control, network and transport layer protocols, application protocols, standards.
Particulars: Available to undergraduates with consent of instructor.
|CS 559: Distributed Processing||Credits: 4||− Description|
|CS 560: Computer Graphics||Credits: 4||− Description|
|CS 561: Software Systems||Credits: 4||− Description|
Content: The goal of this course is to impart working knowledge on how to develop computer programs for scientific applications. 1. We will briefly discuss the computer archtecture and how data are represented within a computer system. 2. Software development methodology with structured diagrams 3. Software development in programming languages C and Fortran, with emphasis on applying the software development methodologies in these languages. Examples used in the discussion will be numerical in nature; relying on the students' background in numerical analysis 4. Scientific libraries (LAPack) 5. Parallel software systems with multi-threading (in C and Fortran).
|CS 580: Operating Systems||Credits: 4||− Description|
Content: The structure and organization of computer operating systems. Process, memory, and I/O management; device drivers, inter-machine communication, introduction to multiprocessor systems.
An important portion of the course is a course long programming project that implements a simple operating system in stages. Each stage takes about three weeks, and is used as a basis for the next stage.
|CS 584: Computational and Life Science Seminar||Credits: 4||− Description|
Content: This course will concentrate on how biological problems are formulated into computational, mathematical, and statistical problems. This will enable the student to understand interdisciplinary computational and life science research possibilities at Emory. For each topic covered in the course, there will be a background lecture, a research seminar, and possibility a student-led discussion. By the end of the course students will have been exposed to a variety of interesting projects and will be in an informed position to explore summer or possibly longer-term computational research projects with Emory's life science researchers.
|CS 584: Information Retrieval||Credits: 4||− Description|
Content: Basic and advanced techniques for text-based information systems: text indexing; Boolean, vector space, and probabilistic retrieval models; evaluation, feedback, and interface issues; Web search including crawling, link-based algorithms, and Web metadata; text/Web clustering, classification; information extraction and text mining.
|CS 597R: Directed Study||Credits: 1 - 12||− Description|
|CS 599R: Master's Thesis Research||Credits: 1 - 12||− Description|