Graduate catalog 2007 - 2008, Computer Science

Note: The class catalog is published every two years. Courses listed in the catalog may not be offered in a given term. For class offerings for each semester please click on the "Offerings" links.
CS 524: Theory Of ComputingCredits: 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: AlgorithmsCredits: 4− Description
Content: This course is a graduate level introduction to the design and analysis of algorithms. Although we will review some undergraduate level material, we will instead emphasize reading and experimentation at a level appropriate for the initiation of research. This course will have both theoretical and practical content. As course highlights, students will be expected to implement and analyze the performance of a fundamental data structure, starting with a close reading of the original research paper.
Particulars: There will be about six regular homework assignments, including both written and programming components, counting for at least half of the grade. There will be a take-home mid-term exam and a take-home final exam. The examinations will emphasize both analysis and reading.
Prerequisites: CS 224 and CS 253.
CS 551: Systems ProgrammingCredits: 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 IICredits: 4− Description
CS 553: Data Structure & Algorithms ICredits: 4− Description
CS 554: Database SystemsCredits: 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 ProcessingCredits: 4− Description
CS 556: Compiler ConstructionCredits: 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 IntelligenceCredits: 4− Description
CS 558: NetworkingCredits: 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.
Prerequisites: CS351.
CS 559: Distributed ProcessingCredits: 4− Description
CS 560: Computer GraphicsCredits: 4− Description
Content: This course is an introduction to the techniques of interactive computer graphics. The topics discussed include graphics hardware, software, data structures, mathematical transformations (both 2D and 3D), the user interface, and fundamental algorithms including hidden line and surface removal, shading and color techniques. The major emphasis of the course is on graphics algorithms and programming techniques, with assignments and demonstrations using the X window system for raster scan graphics.
Particulars: Programming assignments will be in C using OpenGl, and require C programming expertise at the same level as in CS351/CS551. Students should have a good background in Linear Algebra.
CS 561: Software SystemsCredits: 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 architecture 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 570: Data MiningCredits: 4− Description
Content: This course offers an introduction to data mining concepts and techniques. The goal is for the students to have a solid foundation in data mining that allows them to apply data mining techniques to real-world problems and to conduct research and development in new data mining methods. Topics include data processing, design and implementation of data warehouse and OLAP systems, data mining algorithms and methods including association analysis, classification, cluster analysis, as well as emerging applications and trends in data mining.
Particulars: Some familiarity with a programming language, such as Java or C++, is required for programming assignments and/or final project. Some knowledge about database systems and statistics will be helpful.
CS 571: Natural Language ProcessingCredits: 4− Description
Content: This course introduces the fundamental concepts and ideas in natural language processing (NLP). It develops an understanding of algorithms for processing linguistic information and the underlying computational properties of text. The focus is on modern quantitative techniques in NLP. Advanced topics will include introduction to information retrieval, text mining and knowledge discovery from text data, as well as applications of NLP to bioinformatics and medical informatics.
Particulars: Texts: Foundations of Statistical Natural Language Processing, Christopher Manning and Hinrich Schtze, MIT Press, 1999.
CS 572: Information RetrievalCredits: 4− Description
Content: This course will cover fundamental techniques for text-based information systems: text indexing; Boolean, vector space, and probabilistic retrieval models; structured and semi-structured search; evaluation, feedback and interface issues. Web search including algorithmic and system issues for crawling, link-based algorithms, web usage mining, and Web metadata. The goal of the course is to be exposed to current issues and trends in information retrieval and web search and to understand the fundamental algorithms behind modern web search engines.
Particulars: Text: Introduction to Information Retrieval, C.D. Manning, P. RAghavan, and H. Schtze. Cambridge University Press, 2007.
Prerequisites: Required: Proficiency in Java programming, basic probability and statistics, CS 253 or equivalent.
CS 573: Data Privacy and SecurityCredits: 4− Description
Content: Security and privacy are central concerns in managing biomedical and patient data. This course covers algorithmic techniques for preserving data security and privacy, and is a key elective in the Data and Information Management area.
Prerequisites: No formal prerequisite. Some familiarity with a high-level programming language (Java, C++) is required for the programming assignments and final project. Some knowledge with data bases and statistics will be helpful.
CS 580: Operating SystemsCredits: 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: Topics in Computer Science: Computational and Life Science SeminarCredits: 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: Topics in Computer Science: Information RetrievalCredits: 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 StudyCredits: 1 - 12− Description
CS 599R: Master's Thesis ResearchCredits: 1 - 12− Description
CS 700R: Graduate SeminarCredits: 1− Description
Content: This is a required course for all students in the PhD program. It comprises seminars given by faculty, invited guests, and students.
Particulars: This course is a one-credit course; the grading basis is S/U only.
CS 710: Topics in SystemsCredits: 4− Description
Content: This is an advanced graduate course in the focus area of the Computer Science and Informatics PhD program. Coverage and syllabus will vary according to the instructor and emphasis will be on current developments in the field.
CS 720: Topics in AlgorithmsCredits: 4− Description
Content: This is an advanced graduate course in the focus area of the Computer Science and Informatics PhD program. Coverage and syllabus will vary according to the instructor and emphasis will be on current developments in the field.
CS 730: Topics in Data and Inforamtion ManagementCredits: 4− Description
Content: This is an advanced graduate course in the focus area of the Computer Science and Informatics PhD program. Coverage and syllabus will vary according to the instructor and emphasis will be on current developments in the field.
CS 740: Topics in Computational and Life SciencesCredits: 4− Description
Content: This is an advanced graduate course in the focus area of the Computer Science and Informatics PhD program. Coverage and syllabus will vary according to the instructor and emphasis will be on current developments in the field.
CS 797R: Directed StudiesCredits: 1 - 12− Description
CS 799R: Dissertation ResearchCredits: 1 - 12− Description