Main content

Computer Science


Computer Science is central to all aspects of modern life. CS encompasses intrinsic issues of algorithms, data, and systems, as well as applications to society, health, science, and humanity. The Emory CS department conducts innovative research in these areas and offers bachelors, masters, and doctoral degrees in CS and several interdisciplinary areas. Undergraduate CS majors may pursue either a bachelor of arts or bachelor of science degree. The department also offers a joint BS in Math and Computer Science, another in Economics and Computer Science, and minors in CS and in Informatics. Although the BA and BS programs have different objectives, both emphasize the principles of computer science and underlying quantitative foundations. The department is home to a wide range of modern computing equipment and student laboratories, and all undergraduate programs include intensive immersive experiences in computer programming, system building, and contemporary topics in big data and artificial intelligence. 

Visit the Department Website

Concentrations

Faculty

Chair
James Nagy
Director of Undergraduate Studies
Steven La Fleur
Core

Courses

CS 100-Level Courses

A general introduction to computer science including an overview of hardware systems, programming essentials, algorithm design, data handling, and networking. Not intended for students needing a programming background for further work in computer science.


Credit Hours
3
GER
QR
Requisites
None
Cross-Listed
None

Introductory course in a rotating series of computer languages. Please see current atlas for language offering.


Credit Hours
2
GER
None
Requisites
None
Cross-Listed
None

An introduction to tools of computer science that are relevant to bioinformatics, with a focus on fundamental problems with sequence data. Practical topics will include Python programming, data management, and web services. Computational concepts are emphasized with examples from underlying biology.


Credit Hours
3
GER
SNT
Requisites
None
Cross-Listed
None

Intro to tools and concepts of computer science most relevant to business (enterprise) computing and e-commerce. An intro to basic programming principles, page layout and visual interface design, client/server computing, simple techniques for accessing databases, and their algorithmic foundations.


Credit Hours
3
GER
QR
Requisites
None
Cross-Listed
None

An introduction to Computer Science for students expecting to utilize serious computing in coursework, research, or employment. Emphasis is on computing concepts, programming principles, algorithm development and basic data structures, using the Java programming language and Unix operating system.


Credit Hours
4
GER
QR
Requisites
None
Cross-Listed
None

A second course in Computer Science, focusing on intermediate programming. Emphasis is on proficiency in the use and implementation of data structures, algorithms for classical programming paradigms, and object oriented design and programming with Java.


Credit Hours
3
GER
QR
Requisites
This course requires MUS 221 or equivalent transfer credit as a prerequisite.
Cross-Listed
None

An accelerated version of the second course Computer Science for students with advanced preparation e.g. AP CS-A. Emphasis is on proficiency in the use of implementation of data structures, algorithms for classical programming paradigms, and object oriented design and programming with Java.


Credit Hours
3
GER
QR
Requisites
None
Cross-Listed
None

Rotating topics in computer science. May be repeated for credit when the topic varies. Prerequisites and co-requisites depend on the topic offered.


Credit Hours
1
GER
None
Requisites
None
Cross-Listed
None

Topics will be anounced each semester when the course is offered.


Credit Hours
3
GER
FS
Requisites
None
Cross-Listed
None

CS 200-Level Courses

Fundamentals, modern concepts, and practices in Artificial Intelligence including computational decision making, knowledge-based agents, propositional logic, search, heuristics, and machine learning. Assessment includes exams and hands-on projects based on real-world problems.


Credit Hours
3
GER
None
Requisites
(MATH 111 or MATH_OX 111 or QTM 100 or QTM_OX 100) and (CS 110 or CS 170 or CS_OX 170) or equivalent transfer credit as prerequisites.
Cross-Listed
None

An introductory course in the theory of Computer Science, focusing on analysis of discrete structures with applications. Emphasis is on developing familiarity with notation, computational acuity and creative problem solving skills.


Credit Hours
3
GER
QR
Requisites
(CS 170 or CS_OX 170) and (MATH 111 or MATH_OX 111) or equivalent transfer credit as prerequisites.
Cross-Listed
None

A third course in Computer Science, focusing on advanced programming. Emphasis is on mastery in the use and implementation of data structures and algorithms for classical programming paradigms, using the Java programming language and object oriented design.


Credit Hours
3
GER
QR
Requisites
CS 171 or 171Z or CS_OX 171 or equivalent transfer credit as a prerequisite.
Cross-Listed
None

Introductory systems course in Computer Science, with a focus on high level computer architecture and assembler programming. Emphasis is on comprehension of von Neumann computer architecture, information encoding and data representation, and assembler equivalents of high level programming constructs.


Credit Hours
3
GER
QR
Requisites
This course requires CS 171 or CS 171Z or CS_OX 171 or equivalent transfer credit as a prerequisite.
Cross-Listed
None

Rotating topics in computer science. May be repeated for credit when the topic varies. Pre and co requisites depend on the topic offered.


Credit Hours
1 - 4
GER
None
Requisites
None
Cross-Listed
None

CS 300-Level Courses

Understanding ethical and societal concerns introduced by computing and AI into human life, including privacy, online influence and disinformation, information ownership and responsibility, fairness and bias in computer and AI technologies such as facial recognition and robotic systems.


Credit Hours
3
GER
None
Requisites
CS 211 or CS 323 or CS 325 or CS 334 or CS 470 or equivalent transfer credit as prerequisite.
Cross-Listed
None

Machine learning techniques and their use in solving problems from multiple real-world domains. Topics covered include data analytics, regression, classification, clustering, decision trees, and neural networks using Python libraries. Focuses on applications and use rather than algorithms or theory.


Credit Hours
3
GER
None
Requisites
None
Cross-Listed
None

Foundations and problems of machine intelligence, application areas, representation of knowledge, constraint processing, AI programming languages, expert systems, design of an intelligent system.


Credit Hours
3
GER
MQR
Requisites
(CS 224 or CS_OX 224) and CS 253 or equivalent transfer credit as prerequisite.
Cross-Listed
None

This course explores the formal underpinnings of computational complexity, and studies how to mathematically characterize the efficiency and running times of different computer algorithms.


Credit Hours
3
GER
MQR
Requisites
(CS 170 or CS_OX 170) and (CS 171 or CS_OX 171) and (CS 224 or CS_OX 224) and CS 253, or equivalent transfer credit as prerequisite.
Cross-Listed
None

This course will focus on the analysis of syntactic and semantic structures, ontologies and taxonomies, distributional semantics and discourse, as well as their applications in computational linguistics. Assignments will include advanced programming implementations.


Credit Hours
3
GER
MQR
Requisites
This course requires CS 171 or CS 171Z or CS_OX 171 or equivalent transfer credit as a prerequisite.
Cross-Listed
  • LING 329

This course will cover the underpinnings, algorithms, and practices that enable a computer to learn. Emphasis will be on fundamental theory and algorithms in statistical machine learning, and approaches to applying machine learning in a variety of domains.


Credit Hours
3
GER
MQR
Requisites
(CS224 or CS_OX 224) and (CS 253 or CS_OX 253) and (MATH 221 or MATH_OX 221 or MATH 275 or MATH 321) or equivalent transfer credit as prerequisite.
Cross-Listed
None

System programming topics are illustrated by the POSIX API to the Linux operating system. Topics include: file i/o, the TTY driver, window systems, processes, shared memory, message passing, semaphores, signals, and interrupt handlers.


Credit Hours
3
GER
MQR
Requisites
CS 253 and CS 255 or equivalent transfer credit as prerequisites.
Cross-Listed
None

A second course in computer organization and architecture. Emphasis is on combinatorial and sequential circuits, advanced characteristics of CPU and memory, and micro programming. Multiprocessors, GPUs and selected parallel algorithms will be discussed.


Credit Hours
3
GER
MQR
Requisites
CS 253 and CS 255 or equivalent transfer credit as prerequisite.
Cross-Listed
None

This course introduces basic concepts and techniques of software engineering, and applies these in the context of a semester-long group programming project.


Credit Hours
3
GER
None
Requisites
CS 253 or equivalent transfer credit as prerequisite.
Cross-Listed
None

This course guides students in developing the ability to conduct high-quality research in Artificial Intelligence (AI). Throughout the course, students will work on team projects, write research papers (both individually and in groups), peer-review papers from others, and give public presentations.


Credit Hours
3
GER
None
Requisites
CS 325 or CS 334 or equivalent transfer credit as prerequisites.
Cross-Listed
None

This course guides students in developing the ability to conduct high-quality research in Artificial Intelligence (AI). Throughout the course, students will work on team projects, write research papers (both individually and in groups), peer-review papers from others, and give public presentations.


Credit Hours
4
GER
CW
Requisites
CS 325 or CS 334 or equivalent transfer credit as prerequisites.
Cross-Listed
None

Prerequisite: permission of instructor. Credit, variable. An independent study course devoted to the development of software projects. Cannot be used to meet course requirements for a CS major.


Credit Hours
1 - 3
GER
None
Requisites
None
Cross-Listed
None

Introduction to storage hierarchies, database models, consistency, reliability, and security issues. Query languages and their implementations, efficiency considerations, and compression and encoding techniques.


Credit Hours
3
GER
MQR
Requisites
CS 253 or equivalent transfer credit as prerequisite.
Cross-Listed
None

Rotating topics in computer science. May be repeated for credit when the topic varies. Pre and co requisites depend on the topic offered.


Credit Hours
1 - 4
GER
None
Requisites
None
Cross-Listed
None

CS 400-Level Courses

Theory underlying computing concepts, including regular languages, pushdown automata, Turing machines, decidability of problems, time and space complexity and notions of P vs NP and NP-completeness.


Credit Hours
3
GER
MQR
Requisites
CS 326 or equivalent transfer credit as prerequisite.
Cross-Listed
None

Explores the theory, design, & implementation of programming languages. Topics include syntax specification, parsing, formal semantics, functional & logic programming, pattern matching, backtracking, higher-order function, lambda calculus, continuation, parameter passing, meta-circular evaluation.


Credit Hours
3
GER
MQR
Requisites
CS 224 and CS 253 or equivalent transfer credit as prerequisites.
Cross-Listed
None

This course studies connectedness of social, technological, and biological networks, covering models for information spread, formation of communities, the WWW graph, connection strength, and related topics, including methods to explain and exploit the structure of information and social networks.


Credit Hours
3
GER
MQR
Requisites
(CS 224 or CS_OX 224) and (CS 253 or CS_OX 253) or equivalent transfer credit as prerequisite.
Cross-Listed
None

In this course, students 1) will become acquainted with fundamental theories in perceptual psychology that drive visualization design, 2) will be introduced to basic principles of HCI which inform evaluation of interactive visualizations, and 3) will use D3 to develop interactive visualizations.


Credit Hours
3
GER
None
Requisites
CS 253 or CS_OX 253 or equivalent transfer credit as prerequisite.
Cross-Listed
None

The structure and organization of computer operating systems. Process, memory, and I/O management; device drivers, exception handling, and interprocess communication. Students write an operating system as a course-long project.


Credit Hours
3
GER
MQR
Requisites
CS 350 or equivalent transfer credit as prerequisite.
Cross-Listed
None

Understanding offense is key to better cyberdefense. We focus on advanced vulnerabilities, exploits and defense technologies. We teach the hacker mindset, ethics as well as C and assembly.


Credit Hours
3
GER
None
Requisites
CS 350 or equivalent transfer credit as prerequisite.
Cross-Listed
None

Intro to computer networks based on internal structure using the OSI layer model. Topics include: physical layer, data link layer, the network layer (routing algorithms, IP protocol, tunneling), and transport layer (UDP and TCP protocols, NS2 network simulation). Berkeley socket and pthreads APIs.


Credit Hours
3
GER
MQR
Requisites
CS 350 or equivalent transfer credit as prerequisite.
Cross-Listed
None

Syntax, semantics and pragmatics of computer programming languages, lexical analysis and parsing, code generation, and optimization. Design and implementation of a semester-long compiler project for a simple imperative language.


Credit Hours
4
GER
MQR
Requisites
CS 326 or equivalent transfer credit as prerequisite.
Cross-Listed
None

An introduction to qubits, quantum gates, quantum circuits, quantum key distribution, quantum teleportation, quantum dense coding, Grover's search algorithm, Shor's factoring algorithm, quantum entanglement and Bell's theorem, and quantum error correction.


Credit Hours
3
GER
SNT
Requisites
PHYS 220 or MATH 221 or MATH_OX 221 or equivalent transfer credit as prerequisite.
Cross-Listed
  • PHYS 463

Data mining techniques including data pre-processing, data warehousing and management, dimension reduction, clustering, similarity search, graphical models, spatiotemporal data mining.


Credit Hours
3
GER
MQR
Requisites
CS 224 and CS 253 or equivalent transfer credit as prerequisites.
Cross-Listed
None

This course introduces students to the use of advanced computer science techniques for the economic analysis of observational data. It covers multi-processing programming for economic policy simulation, web scraping for sentiment analysis, and network data and social interaction models.


Credit Hours
3
GER
None
Requisites
ECON 320 & CS 334 or equivalent transfer credit as prerequisites.
Cross-Listed
  • ECON 480

May be repeated for credit when topic varies. Pre/co-requisites vary with topic.


Credit Hours
1 - 4
GER
None
Requisites
None
Cross-Listed
None

May be repeated for credit when topic varies. Pre/co-requisites vary with topic.


Credit Hours
1 - 5
GER
CW
Requisites
None
Cross-Listed
None

Enrollment limited to departmental majors invited to participate in the Honors Program.


Credit Hours
1 - 4
GER
XA
Requisites
None
Cross-Listed
None

Enrollment limited to departmental majors invited to participate in the Honors Program.


Credit Hours
1 - 8
GER
CW
Requisites
None
Cross-Listed
None

Students conduct directed or supervised research in support of a faculty member's research project or agenda. Permission of the department and a supervising faculty member is required.Three combined credits of CS 497R, CS 498R and CS 499R may be used to fulfill a maximum of one 400-level elective for Computer Science majors.


Credit Hours
1 - 4
GER
XA
Requisites
None
Cross-Listed
None

Students study, read, and write on a topic under the direction or supervision of a faculty member. Permission of the department and a supervising faculty member is required. Three combined credits of CS 497R, CS 498R and CS 499R may be used to fulfill a maximum of one 400-level elective for Computer Science majors.


Credit Hours
1 - 4
GER
None
Requisites
None
Cross-Listed
None

Students conduct independent research in support of their own research agenda or question with guidance from a faculty member. Permission of the department and a supervising faculty member is required. Three combined credits of CS 497R, CS 498R and CS 499R may be used to fulfill a maximum of one 400-level elective for Computer Science majors.


Credit Hours
1 - 4
GER
XA
Requisites
None
Cross-Listed
None