Graduate Course Catalog

Year:
Subject:

Graduate CS 2016 classes

CS524 Theory Of Computing Credits: 3
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.
CS526 Algorithms Credits: 3
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.
CS534 Machine Learning Credits: 3
Content: This course covers fundamental machine learning theory and techniques. The topics include basic theory, classification methods, model generalization, clustering, and dimension reduction. The material will be conveyed by a series of lectures, homeworks, and projects.
Prerequisites: Cross-listed with BIOS 534. Knowledge of linear algebra, multivariate calculus, basic statistics and probability theory. Homework and project will require programming in Python, Matlab, C/C++ or R. Or permission by the instructor.
CS540 Software Engineering Credits: 3
Content: Software engineering principles and practice is taught by using materials from the classic textbook by Roger Pressman, guest lectures from industry practitioners from the Atlanta area, and a collection of essays from author-practitioners, like Joel Spolsky and Steve McConnell. Software engineering as a discipline has evolved in conjunction with computer hardware and programming tools. Despite its infancy, SW Engineering has some fundamental processes that are recognized as essential to the production of quality software that meets customer requirements. Both the ACM (as "SE2004") and the IEEE (as "Software Engineering Body of Knowledge" or "SWEBOK") have defined a set of skills that practitioners of software development should possess. These include Requirements, Design, Construction, Testing, Quality Control, and Configuration Management. This course seeks to teach principles of software engineering through hands-on experience in constructing a real-life project. See the course website at http://www.mathcs.emory.edu/~cs540000/index.html for information on textbooks, schedule, presentation materials, grading and assignments.
CS551 Systems Programming Credits: 3
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.
CS552 Computer Architecture II Credits: 3
CS553 Data Structure & Algorithms I Credits: 3
CS554 Database Systems Credits: 3
Content: This course covers recent advances in data management systems and their applications to biomedical problems. Topics include advanced database design, complex queries, data storage and indexing, XML data management, spatial data management, temporal data management, ontologies and semantics, parallel data management and MapReduce. Biomedical use cases will be used for course discussion and projects.
Prerequisites: Basic data structures and database background (CS 377 or equivalent), familiar with a programming language preferred, or permission of the instructor.
CS555 Parallel Processing Credits: 3
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: CS 255, CS 450
CS556 Compiler Constuction Credits: 3
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 323, CS 255, and CS 424, or their equivalents.
CS557 Artificial Intelligence Credits: 3
Content: This course covers core areas of Artificial Intelligence including perception, optimization, reasoning, learning, planning, decision--making, knowledge representation, vision and robotics.
Prerequisites: Undergraduate level of Artificial Intelligence or Machine Learning.
CS558 Networking Credits: 3
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: CS 450
CS559 Distributed Processing Credits: 3
CS560 Computer Graphics Credits: 3
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.
CS561 Software Systems Credits: 3
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).
CS563 Digital Image Processing Credits: 3
CS570 Data Mining Credits: 3
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.
CS571 Natural Language Processing Credits: 3
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.
CS572 Information Retrieval Credits: 3
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.
CS573 Data Privacy and Security Credits: 3
Content: This course will introduce students to the legal and ethical issues of data privacy and security and computational technologies for protecting privacy and security while allowing society to collect and share person-specific data for many worthy purposes. The main topics include privacy and anonymity models, data anonymization, privacy preserving data mining, access control, secure computations, privacy in social networks and privacy in clinical and public health research. The foundations are drawn from a number of sub-disciplines of Computer Science including: database systems, data mining, computer security, cryptography, and statistics.
CS580 Operating Systems Credits: 3
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.
CS581 High Performance Computing: Tools and Applications Credits: 3
CS584 Topics in Computer Science: Digital Image Processing Credits: 3
Content: This course introduces the fundamental algorithms, concepts, and applications of image analysis with special focus on familiarizing students with contemporary techniques and applications in biomedical image analysis. Theoretical and practical knowledge concerning image analysis algorithms will be developed through short lectures, paper discussions, and a team project exercise. Following this course, students will understand the process of image formation, how information is extracted from images, and the role of this information in biomedical applications from diagnostics to molecular cell biology.
CS584 Topics In Computer Science: Computer Security Credits: 3
CS584 Topics in Computer Science: Neural Computation Credits: 3
Content: This course will explore the intersection between the computational and biological study of neural networks. Topics will include history of artificial neural networks, vision and convolutional networks, recurrent networks, network refinements, and biological analogues. This course will have homeworks to be completed using the Python toolkit Theano, but beyond that no advanced programming is required. Students will be required to read 1 paper/wk in addition to bi-weekly homework assignments.
CS584 Topics in Computer Science: Computational and Life Science Seminar Credits: 3
CS584 Topics in Computer Science: Advanced Information Retrieval: Intelligent Assistants Credits: 3
Content: Applications such as the Apple's Siri, Google Now, and Amazon's Alexa rely on decades of research in Information Retrieval and Natural Language processing, and more broadly AI and Human-Computer Interaction. This course will focus on both classical works in this area and the current state of the art. The course will be based largely on research papers and focused around a group project on one of the current Question Answering challenges.
CS584 Topics in Computer Science: Info Retrieval Credits: 3
CS584 Topics in Computer Science: Deep Learning Credits: 3
CS584 Topics in Computer Science: Professional Development Credits: 1
Content: This course is provided to assist graduate students better prepare for their transition from the university into a first-destination career by enhancing the professional development and leadership skills necessary to be successful. The course will cover topics such as: career exploration, resume/CV creation, cover letters, interviewing, negotiation, networking and general job search strategies, as well ask keys to success in a new professional role.
Particulars:
CS584R Topics in Computer Science: Advanced Computer Systems Credits: 3
Content: This course will cover seminal recent research papers across topics in distributed computer systems, with a focus on managing big data. Topics may include communication paradigms, process management, naming, synchronization, consistency and replication, fault tolerance, storage architectures, high-performance file systems, data provenance, and next-generation storage devices and architectures, including those at Google, Yahoo, and Amazon. Throughout the course, we will discuss the tradeoffs made between performance, reliability, scalability, robustness, and security. Students will be expected to critically read scientific papers, present at least 2 papers during the semester, and complete and present a final project.
CS584R Topics in Computer Science: mHealth Informatics Credits: 3
CS584R Topics in Computer Science: HPC + DA Credits: 3
CS584R Topics in Computer Science: Big Data Analytics Credits: 3
Content: The course covers scalable machine learning and data mining algorithms for large/complex data. Topics include large-scale optimization techniques, hashing, recommendation systems, and tensor factorization. This will be structured as a seminar course with emphasis on public data sets such as Kaggle competitions, MovieLens, and various healthcare datasets. The instructor will provide introductory lectures that set the context and provide reviews of relevant material.
Prerequisites: Graduate Data Mining (CS 570) and familiarity with Python, Matlab, or R.
CS590 Teaching Seminar Credits: 1
Content: This course explores theoretical and practical approaches for effective teaching, with particular emphasis on the discipline of Computer Science. After this course, students will be able to demonstrate knowledge of multiple pedagogical strategies, write a syllabus, develop assessment items, and design and deliver lectures and presentations for a variety of different audiences.
CS597R Directed Study Credits: 1-9
CS597R Directed Study Credits: 1-9
CS598R Rotation Project Credits: 3
Content: Computer Science and Informatics PhD students are required to complete two rotation projects prior to their qualifying exams and dissertation research. Projects often involve interdisciplinary work, and can be co-supervised by a Math/CS faculty and an external faculty member or researcher (e.g., Schools of Medicine and Public Health, the CDC). Students are required to submit a project proposal and a final report.
CS598R Rotation Project Credits: 3
Content: Computer Science and Informatics PhD students are required to complete two rotation projects prior to their qualifying exams and dissertation research. Projects often involve interdisciplinary work, and can be co-supervised by a Math/CS faculty and an external faculty member or researcher (e.g., Schools of Medicine and Public Health, the CDC). Students are required to submit a project proposal and a final report.
CS599R Research Credits: 1-9
CS700R Graduate Seminar Credits: 1
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.
CS700R Graduate Seminar Credits: 1
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.
CS710 Topics in Systems Credits: 3
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.
CS720 Topics in Algorithms Credits: 3
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.
CS730 Topics in Data and Inforamtion Management Credits: 3
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.
CS740 Topics in Computational and Life Sciences Credits: 3
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.
CS797R Directed Study Credits: 1-9
CS799R Dissertation Research Credits: 1-9
CS799R Dissertation Research Credits: 1-9