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.
Concentrations
Faculty
- Chair
- James Nagy
- Director of Undergraduate Studies
- Steven La Fleur
- Core
- Yevgeny AgichteinDorian ArnoldJinho ChoiNosayba El-SayedDavide FossatiMichelangelo GrigniJoyce HoWei JinChinmay KulkarniJoon-Seok KimSteven La FleurFei LiuKenneth MandelbergYolanda RankinLars RuthottoKai ShuVaidy SunderamShengpu TangNirmalya ThakurAlessandro VenezianiYmir VigfussonEmily WallKristin WilliamsLi XiongJi (Carl) YangLiang ZhaoAndreas Zufle
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