Concentrations
The information below is for the current academic year. For information on specific catalog years, see the yearly Guides to Course Selection for CS or CSE.
Algorithms and Theory
Theoretical computer science asks the most fundamental questions about computing: What does it mean to compute something? How difficult is it to do specific computations? How can we compare the “difficulty” of different computational problems? What problems cannot be solved by computers, no matter how powerful they are? At the same time, theoretical computer science gives a toolset and vocabulary for making good design decisions in real computing situations. It helps the students to recognize patterns and abstractions from classic problems that can be applied to new problems. It gives a framework for explaining why one approach is better than another without having to try both and see.
The Theory and Algorithms concentration prepares students who want to specialize in theoretical computer science. It requires a strong background and comfort level with math. Students completing the concentration requirements will graduate from UConn with an understanding of the theoretical foundations of computation, an appreciation for the limits of computation, and an ability to design efficient algorithms that scale well with input size.
Courses
- CSE 3502: Theory of Computation or CSE 5503: Theory of Computation (Required)
- CSE 3802: Numerical Methods
- CSE 4100: Programming Language Translation
- CSE 4412: Introduction to Quantum Computing, Cryptography, and Networking
- CSE 4502: Big Data Analytics or CSE 5717: Big Data Analytics
- CSE 4702: Introduction to Cryptography
- CSE 4820: Introduction to Machine Learning or CSE 5819: Introduction to Machine Learning
- CSE 5500: Advanced Algorithms
- CSE 5506: Computational Complexity
- CSE 5512: Introduction to Quantum Computing
- CSE 5820: Machine Learning
- CSE 5854: Modern Cryptography: Primitives and Protocols
- CSE 6512: Randomization in Computing
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Systems and Networks
The Systems and Networks concentration focuses on the system aspects of computer science. How does a computer work? How and why did your program crash? How does the Internet work? These are just a few questions that this concentration answers. It includes a wide range of courses related to computer networking (principles on designing computer networks and their instantiation in various real networks, including the Internet, networked embedded systems and wireless networks), operating systems (principles and mechanisms for process creation, memory and resource management, and I/O management in a computer system), computer architecture (design principles and methodologies for modern microprocessors and computer memory system), and computer and network security (privacy and security issues related to computer and network systems).
This concentration equips students with both theory and practice on how computer systems (including both stand-alone and networked systems) are designed, organized, implemented and managed. It integrates software and hardware, covering a wide variety of topics related to performance, efficiency, reliability, fault tolerance, and security. This allows students to understand system related issues, which arise in many different contexts (e.g., data analytics, cybersecurity, software design).
Courses
- CSE 3300: Computer Networks and Data Communication or CSE 5299: Computer Networks and Data Communication (Required)
- CSE 3250: Introduction to Cloud Computing
- CSE 3400: Introduction to Computer and Network Security or CSE 5850: Introduction to Cyber-Security
- CSE 4300: Operating Systems or CSE 5305: Operating Systems
- CSE 4302: Computer Organization and Architecture or CSE 5302: Computer Architecture
- CSE 4412: Introduction to Quantum Computing, Cryptography, and Networking
- CSE 4709: Networked Embedded Systems or CSE 5309: Networked Embedded Systems
- CSE 5300: Advanced Networks
- CSE 5306: Advanced Operating Systems
- CSE 5312: Architecture of Internet of Things
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Cybersecurity
Cybersecurity is concerned with security in a computing environment. The concentration offers a blend of courses that investigate multiple dimensions. Specifically, it addresses questions related to software engineering, networking and the fundamental cryptographic primitives and protocols used in computer systems to provide authenticity, privacy and resistance to tampering. In the process, it investigates the mathematical foundations that form the basis of modern cryptography.
If Buffer overflows, SSL, X509 certificates, DDoS, Honeypots, MITM, Exploits, Advanced Persistent Threats, multi-party computation, homomorphic encryption, or quantum resistant cryptography are mysterious ideas or techniques that you wish to master, the cybersecurity concentration is for you.
The concentration equips students with skill sets that blend theory and practice and serves a population intent on becoming cybersecurity professionals. It is a fast-paced and rapidly evolving subfield of computing in which practitioners must be ready to engage in continuing education.
Courses
- CSE 3400: Introduction to Computer and Network Security or CSE 5850: Introduction to Cyber-Security (Required)
- CSE 3300: Computer Networks and Data Communication or CSE 5299: Computer Networks and Data Communication or CSE 3502: Theory of Computation or CSE 5503: Theory of Computation or CSE 4300: Operating Systems or CSE 5305: Operating Systems
- CSE 3550: Blockchain Technology
- CSE 4400: Computer Security or CSE 5400: Computer Security
- CSE 4402: Network Security or CSE 5402: Network Security
- CSE 4412: Introduction to Quantum Computing, Cryptography, and Networking or CSE 5512: Introduction to Quantum Computing
- CSE 4702: Introduction to Cryptography or CSE 5852: Modern Cryptography: Foundations
- CSE 5854: Modern Cryptography: Primitives and Protocols
- CSE 5910: Information Ecosystem Threats
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Bioinformatics
Bioinformatics is an important and growing engineering field that focuses on the design and development of new algorithms, computational methods, and tools for the analysis of complex biological data. With recent advances in high-throughput technologies, the rate of growth in the amount of biological data (genetic sequence data in particular) has greatly outpaced increases in computing power governed by Moore’s law. As a result, core computer science techniques including algorithms, data structures, data analytics, software engineering, statistical modeling, and machine learning, have become central to the analysis and interpretation of high-throughput data in both biology and medicine. Students taking the bioinformatics concentration will have the opportunity to deepen their knowledge of these computer science techniques and learn how they apply to biological data analysis.
Courses
- CSE 3800: Bioinformatics or CSE 5800: Bioinformatics (Required)
- CSE 3810: Computational Genomics or CSE 6800: Computational Genomics
- CSE 4502: Big Data Analytics or CSE 5717: Big Data Analytics
- CSE 4820: Introduction to Machine Learning or CSE 5819: Introduction to Machine Learning
- CSE 4830: Computer Vision and Machine Learning for Image Analysis
- CSE 5810: Introduction to Biomedical Informatics
- CSE 5815: Systems Biology: Constructing Biological Knowledgebase
- CSE 5820: Machine Learning
- CSE 5825: Bayesian Machine Learning
- CSE 5830: Probabilistic Graphical Models
- CSE 5840: String Algorithms and Applications in Bioinformatics
- CSE 5860: Computational Problems in Evolutionary Genomics
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Software Design and Development
The software design and development concentration is concerned with the study of methods, tools, and techniques used to design and develop software systems. The students will be exposed to both traditional and modern software engineering practices that span the entire software lifecycle, and the trade offs between these. The topics will include software architecture, procedural and object oriented software development paradigms, software requirements analysis, software testing and verification, software process models, software engineering process models, and formal methods. Emphasis will be placed on training the students in tools that embody these principles through hands on projects and exercises. SDD concentration will position the students competitively to seek employment in the ever growing software industry.
Courses
- CSE 2102: Software Engineering (Required)
- CSE 3150: C++ Essentials or CSE 3160: Functional Programming Fundamentals that was not used to meet core requirements
- CSE 3200: Mobile Application Development
- CSE 3250: Introduction to Cloud Computing
- CSE 4100: Programming Language Translation
- CSE 4102: Programming Languages or CSE 5102: Advanced Programming Languages
- CSE 4300: Operating Systems or CSE 4701: Principles of Data Bases or CSE 5305: Operating Systems
- CSE 5095 as Social Media Mining and Analysis
- CSE 5103: Performance Engineering
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Software Design for Mobile Computing
Mobile computing has become an ubiquitous aspect of our daily lives. The Software Design for Mobile Computing concentration prepares students for a career in the rapidly growing field of software development for mobile computing. Emphasis of this concentration is on building the skills to design, develop, and deploy scalable and secure back-end mobile computing infrastructure and engaging interactive mobile applications using a variety of languages and development frameworks.
The concentration is only available on catalog year 2024-2025 or later.
Courses
- CSE 3200: Mobile Application Development (Required)
- CSE 2102: Software Engineering
- CSE 3150: C++ Essentials or CSE 3160: Functional Programming Fundamentals that was not used to meet core requirements
- CSE 3250: Introduction to Cloud Computing
- CSE 3300: Computer Networks and Data Communication or CSE 5299: Computer Networks and Data Communication
- CSE 3400: Introduction to Computer and Network Security or CSE 5850: Introduction to Cyber-Security
- CSE 4502: Big Data Analytics or CSE 5717: Big Data Analytics
- CSE 4701: Principles of Databases
- CSE 4705: Introduction to Artificial Intelligence
- CSE 4820: Introduction to Machine Learning or CSE 5819: Introduction to Machine Learning
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Computational Data Analytics
We live in an era of big data. In every domain of science and engineering voluminous data gets generated. Processing these datasets is a big challenge. A great deal of useful information is hidden in this data. Effective techniques are needed to unravel this information. For instance, the analysis of genomic data could lead to the discovery of causes for various diseases and subsequently the development of relevant drugs. Accurate weather forecasting is possible with the analysis of appropriate atmospheric data.
In this concentration, the students will be trained in analyzing various kinds of data. Examples include visual data, text data, sequence data, etc. The students will also be exposed to the principles of databases. Recently, Artificial Intelligence (and machine learning in particular) techniques have been employed to solve many challenging problems efficiently. Students will also get exposure to discrete optimization which lies at the core of decision making, i.e., Business Analytics.
Courses
- CSE 4502: Big Data Analytics or CSE 5717: Big Data Analytics (Required)
- CSE 4701: Principles of Databases
- CSE 4705: Introduction to Artificial Intelligence
- CSE 4820: Introduction to Machine Learning or CSE 5819: Introduction to Machine Learning
- CSE 4830: Computer Vision and Machine Learning for Image Analysis
- CSE 5095 as Social Media Mining and Analysis
- CSE 5520 Data Visualization and Communication or BADM 3302: Data Visualization
- CSE 5707: Discrete Optimization or BADM 3301: Spreadsheet Modeling for Business Analysis
- CSE 5713: Data Mining or BADM 3203: Analytics for Business Intelligence
- CSE 5820: Machine Learning
- CSE 5825: Bayesian Machine Learning or CSE 5830: Probabilistic Graphical Models or CSE 5835: Machine Learning for Physical Sciences and Systems
- CSE 5910: Information Ecosystem Threats
In addition to the courses listed above, one special topics course (CSE 4095 or CSE 5095) or one independent study course (CSE 4099) on a topic related to this concentration may be counted towards the 12 credits concentration requirement with prior approval by one of the concentration coordinators and either the School Director or the Associate Director of Undergraduate Programs.
Concentration coordinators
For questions regarding the concentration and pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:
Naval Science and Technology
The concentration in Naval Science and Technology is designed to expose students to engineering concepts and topics of importance to the Navy and industries that support naval science and technology. It is focused on facilitating interactions between students and naval professionals as well as hands-on and experiential activities related to senior design projects or independent study projects that have naval science and technology connections.
All Computer Science majors must also complete nine credits of Naval Science and Technology Coursework topics, distributed as follows:
- At least three credits of ENGR 3109.
- Six credits from the following courses with at least one course outside the senior design sequence: CSE 4095, 4099, 4939W, 4940.
Students electing to complete the concentration must do so in their primary major, and as such select elective coursework from their primary discipline. Students electing to use their Senior Design course sequence must have their project topic approved by both their departmental senior design coordinator and either the director of the Navy STEM Program or the Associate Dean for Undergraduate Education.
Students electing to use Special Topics courses or Independent Study/Research courses must have the course or research topic approved by both their department and either the director of the Navy STEM Program or the Associate Dean for Undergraduate Education. Other courses relevant to naval science and technology may be considered for the concentration by petition to the director of the Navy STEM Program or the Associate Dean of Undergraduate Education. Students may not apply courses used in this concentration to fulfill requirements for other concentrations or minors. The concentration in Naval Science and Technology is restricted to U.S. citizens.
Unspecialized
The various concentrations above focus on particular areas within computer science. An alternative to these is the Unspecialized concentration, which requires students to take fundamental courses in a number of the above areas, thus gaining a broader perspective of the field. If you are interested in more than one of the above areas, or if you are unwilling to commit to a single area, this concentration is a good choice for you.
For the Unspecialized concentration, students must take 3 courses from the following list plus a 3-credit CSE course at the 2000-level or higher that is not used to meet core requirements for the major.
Courses:
- CSE 2102 :Software Engineering
- CSE 3200: Mobile Application Development
- CSE 3300: Computer Networks and Data Communication or CSE 5299: Computer Networks and Data Communication
- CSE 3400: Introduction to Computer and Network Security or CSE 5850: Introduction to Cyber-Security
- CSE 3502: Theory of Computation or CSE 5503: Theory of Computation
- CSE 3800: Bioinformatics or CSE 5800: Bioinformatics
- CSE 4502: Big Data Analytics or CSE 5717: Big Data Analytics
Individually Designed
Students may propose an individually-designed concentration to fit their academic or career interests. This will be a minimum of 12 credits at the 2000+ level, proposed by the student and approved by the student’s advisor and the CSE Department Undergraduate Committee. The expectation is that such a concentration will have a strong unifying theme. This may include non-CSE courses, but the student will still be subject to the overall requirement of 43 CSE credits for CS students and 50 CSE credits for CSE students.
Individualized concentration form
Concentration coordinator
For questions regarding the individualized concentration please contact the concentration coordinator: Dr. Zhijie Jerry Shi