Courses
BMI 500: Introduction to Biomedical Informatics
- Contents: An introduction to the fundamentals of biomedical informatics, and the scope, extent and impact of biomedical informatics. Presents a survey of the various standards, management strategies, and issues around interoperability, for the data types in play. Issues around data security and integrity, confidentiality and HIPAA are covered. Topics in clinical informatics include EMRs, CPOE, and CDS. Next the course covers Imaging Informatics, including acquisition modalities (CT, MR, PET), data representation standards (DICOM) and the emerging fields of Radiomics and Pathomics. Finally, the course presents a survey of related fields such as public health informatics, critical care informatics and bioinformatics.
- Credits: 3.
CS 523: Data Structure & Algorithms I
- Content: This course introduces practical algorithms and data structures, for students entering graduate computer science from other fields of study.
- Prerequisites: The prerequisites are introductory programming and some discrete mathematics, which we expect our entering students already have. Students who have taken an undergraduate algorithms course (similar to our CS323), and typically included in a Computer Science major) may place out.
- Credits: 3.
CS 524: Theory of Computing
- 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.
- Credits: 3.
CS 526: Algorithms
- Content: Covers standard techniques: divide-and-conquer, greedy algorithms, dynamic programming, randomization, search techniques. Aill also consider reductions to some general-purpose problems, such as linear programming. In the second half of the course, students present recent algorithmic research papers.
- Prerequisites: Undergraduate level exposure to data structures, discrete mathematics, and a semester of basic algorithms. Familiarity with hashing, sorting, search trees, and finding shortest-paths in graphs.
- Credits: 3.
CS 534: Machine Learning
- 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, homework, and projects.
- Prerequisites: 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.
- Credits: 3.
CS 540: Software Engineering
- 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 for information on textbooks, schedule, presentation materials, grading and assignments.
- Credits: 3.
CS 551: Systems Programming
- Content: Systems programming topics via modern UNIX-derivative operating system. Topics include: Files and input/ output, shells, terminals, memory hierarchy, process control, IPC, concurrency, exceptional control flow, interrupts, network programming, remote procedure calls and the basics of security.
- Prerequisites: Graduate standing or permission of instructor. Knowledge of programming expected.
- Credits: 3.
CS 554: Database Systems
- Content: This course covers tabular data storage and processing using the classic SQL language, query processing and optimization algorithms. Novel data formats are explored emphasizing commonly used key-value, document, RDF and graph representations. Storage and processing techniques for large quantity of data are presented.
- Prerequisites: Undergraduate level knowledge of data structures, algorithms and systems programming.
- Credits: 3.
CS 555: Parallel Processing
- 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.
- Credits: 3.
CS 556: Programming Languages & Compilers
- Content: This course provides an advanced study of programming languages concepts, paradigms, processors and translators. Covers foundations of functional and logic programming, study meta-linguistic techniques for specifying languages, and examine implementation techniques including translation and interpretation.
- Prerequisites: Undergraduate level data structures and theory of computing.
- Credits: 3.
CS 557: Artificial Intelligence
- 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.
- Credits: 3.
CS 558: Networking
- 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.
- Credits: 3.
CS 560: Computer Graphics
- 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.
- Credits: 3.
CS 561: Software Systems
- 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).
- Credits: 3.
CS 562: Advanced Computer Systems
- Content: This course covers advanced communication paradigms, naming, synchronization, consistency and replication, fault tolerance, storage architectures, high-performance file systems, data provenance and next generation storage architectures. Seminal research papers across topics in distributed computer systems, with a focus on managing big data will be discussed in class. Students will also present papers and a final project.
- Prerequisites: Graduate Systems Programming.
- Credits: 3.
CS 563: Digital Image Processing
- Content: Algorithms, concepts, and applications of image analysis, with a focus on biomedical applications. Imaging modalities, primitive operations in image processing, and algorithms for pre- and post-processing will be covered.
- Prerequisites: A strong interest in image analysis is required, a background in mathematics, statistics and optimization is recommended. Familiarity with Matlab, C/C++ or any language with image processing libraries.
- Credits: 3.
CS 570: Data Mining
- Content: This course focuses on data mining concepts and techniques. Topics include: data preprocessing, data mining algorithms and methods including association analysis, classification, cluster analysis, as well as emerging applications and trends in data mining.
- Prerequisites: Graduate Machine Learning (CS 534).
- Credits: 3.
CS 571: Natural Language Processing
- Content: This course covers natural language processing tasks such as part-of-speech tagging, dependency parsing, named entity recognition, coreference resolution, and sentiment analysis as well as machine learning algorithms such as adaptive gradient descent, structured prediction, clustering, and neural networks. Advanced topics such as abstract meaning representation, word embeddings, and deep learning are also discussed
- Prerequisites: Graduate Machine Learning (CS 534) or equivalent level of artificial intelligence, machine learning, natural language processing, information retrieval.
- Credits: 3.
CS 572: Information Retrieval
- Content: This course addresses fundamental techniques for text-based information systems in order to understand and develop search engines for text. Topics include text indexing; Boolean, vector space, and probabilistic retrieval models; structured and semi-structured search; evaluation, feedback and interface issues.
- Prerequisites: Graduate Machine Learning (CS 534) or equivalent level of artificial intelligence, machine learning, natural language processing, information retrieval.
- Credits: 3.
CS 573: Data Privacy and Security
- 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.
- Credits: 3.
CS 672: Advanced Information Retrieval and Web Search
- Content: This course expands on CS 572 to comprehensively study and techniques, algorithms and methods behind modern search engines for the Web, social media and other specialized content such as medical knowledge and multimedia. In addition to theory, experimental and practical issues will be considered up to open research questions in web search and IR.
- Prerequisites: Information Retrieval (CS 572), Natural Language Processing (CS 571).
- Credits: 3.
CS 580: Operating Systems
- 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.
- Credits: 3.
CS 581: High Performance Computing: Tools & Applications
- Content: Covers fundamental concepts of parallel programming, concurrent computing and network architectures, frameworks such as OpenMP and MPI. Performance monitoring, load balancing and communication will be addressed. MapReduce and Apache Spark and/or Stream Programming techniques will be discussed.
- Prerequisites: This class will have a significant implementation component. A high-level of comfort with C and Python is expected, as is working knowledge of Linux.
- Credits: 3.
CS 584: Topics in Computer Science: Big Data Analytics
- 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.
- Credits: 3.
CS 584: Topics in Computer Science: Computational and Life Science Seminar
- 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.
- Credits: 3,
CS 584: Topics in Computer Science: Intelligent Assistants
- 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.
- Credits: 3,
CS 584: Topics in Computer Science: Professional Development (MS)
- 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.Credits: 3,
CS 584: Topics in Computer Science: Semantic Web
- Content: The semantic web is primarily an approach to leveraging content and user metadata for an improved, “intelligent” web experience. The course will explore the role metadata plays in the world wide web via supporting models, tools and technologies: RDF (Resource Description Framework), OWL (Web Ontology Language), XML, relational data, and more. We will look at the limitations of HTML, and discuss the role that browsers play in supporting the web. Finally, we will look at some of the algorithms that contribute to the semantic web.
- Particulars: The course will include web development projects, homework, presentations, and 2 exams (mid-term and final). Graduate standing required.
- Credits: 3.
CS 584: Topics in Computer Science: Software Engineering
- Content: 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 a series of projects. In addition, the student will be introduced to applied concepts in software engineering through the blogs and writings of some of today's most noted practitioners.
- Particulars: Grading: 25% exams (10% mid-term, 15% final); 30% projects; 25% homework; 20% Presentations: Students will provide a brief (10-minute) presentation on each project (5% each for the first 2 projects and 10% for the last one). Homework: There will be 5 readings assigned during the semester. Students will provide a report on each paper, at a value of 5% each of the course grade.
- Prerequisites: Senior standing, graduate student, or permission from the instructor. The student should be familiar with at least one language used in web software development.
- Credits: 3.
CS 584: Topics in Computer Science: Streaming Databases
- Content: Traditional Database Systems manage persistent data sets and data content are relatively permanent. User queries vary over a wide range of topics and are relatively unstable. Stream Databases is a relatively recent topic where applications generate a stream of information. Some examples are stock tickers, network traffic monitoring, patient monitoring, etc. The data managed in Stream Databases is always in flux and data content changes constantly. The user queries are relatively fixed: the user queries monitor a small number of well-defined events (e.g., in stock tickers: "buy and sell signals"). These queries are called "Stream Queries" and traditional database system are ill-equipped to process stream queries. In this course, we study a number of proposed architecture to process stream queries and techniques to mine information in streaming data.
- Prerequisites: CS 377.
- Credits: 3.
CS 590: Teaching Seminar
- Credits: 1.
CS 596R: Computer Science Practicum
- Content: The course aims to expose students to real life problems that Computer Science and Informatics professionals face in their working environment and to help students to gain crucial experience in connecting their Computer Science and Informatics skills to understanding and solving practical problems. The course is repeatable up to 3 times, with the third time only by permission from the Director of Graduate Studies (DGS).
- Prerequisites: Successful completion of 2 semesters in MS program with B average or higher and permission by DGS.
- Credits: 1
CS 597R: Directed Study
- Credits: 1 - 9,
CS 598R: Rotation Project
- Content: Computer Science and Informatics MS students that choose the Project option for MS degree, are required to complete a Project course.. Projects often involve interdisciplinary work, and can be co-supervised by a CSI faculty and an external faculty member or researcher (e.g., Schools of Medicine and Public Health, the CDC, or another company or university). Students are required to submit a project proposal and a final report.
- Credits: 1 - 6
CS 598R: Rotation Project
- 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 CSI faculty and an external faculty member or researcher (e.g., Schools of Medicine and Public Health, the CDC, or another company or university). Students are required to submit a project proposal and a final report.
- Credits: 1 - 3.
CS 599R: Master's Thesis Research
- Credits: 1 - 9.
CS 700R: Graduate Seminar
- 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.
- Credits: 1.
CS 700R: Graduate Seminar: Open Problems in Genome Informatics
- Content: This course will explore key problems in the analysis of genomic data. Areas of discussion will include Genome assembly and alignment, with emphasis on the challenges posed by next generation sequencing technologies, and functional element detection (gene finding, regulatory motif identification). Particular attention will be given to methods for incorporating comparative genomic (between species) and population genomic (within species) datasets. Each class will explore one area -- both historical context and current challenges and developments. All readings will be taken from primary literature, and students will be expected to read, present, and lead discussion.
- Particulars: This section will be offered every other Friday.
- Credits: 1.
CS 710R: Topics in Computing Systems
- 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.
- Credits: 3.
CS 720R: Topics in Algorithms
- 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.
- Credits: 3.
CS 730R: Topics in Data and Information Management
- 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.
- Credits: 3.
CS 730R: Topics in Data & Information Management: Advanced Database Systems
- Content: The course Advanced Database Systems covers recent advances in DBMSs and their application to biomedical problems. The topics include extensions and extensibility of database systems, XML databases, spatial databases, temporal databases, biomedical data management and integration, semantics enabled data management, parallel and distributed databases. The course comes with projects from biomedical research environments, with real data and databases. Students will get hands-on research and development experience from these projects
- Prerequisites: Basic data structures and database background (CS 377 or equivalent), Familiar with a programming language (e.g., Java) preferred but not required, or permission of the instructor.
- Credits: 3.
CS 740R: Topics in Computational and Life Sciences
- 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.
- Credits: 3.
CS 797R: Directed Study
- Credits: 1 - 9.
CS 799R: Dissertation Research
- Credits: 1 - 9.