CSE Web Menu mobileicon

Computer Science and Engineering

Program Description

This program produces graduates with a broad perspective in both software and hardware topics pertinent to computing systems. It provides the foundation and specialized knowledge necessary to analyze, design and evaluate system software, utility programs and software-hardware architectures. The program is supported by study in mathematics, science, and engineering. This allows students to design hardware and software solutions for a wide variety of application domains. Students gain hands-on experience in the laboratory courses accompanying classroom work, and develop design skills in course work beginning in the first two years. Design experience continues in junior and senior years in the areas of software engineering and in applications areas of the student’s choosing, culminating in the one semester Senior Design Project course.

This program leads to a Bachelor of Science in Engineering (BSE), and requires a minimum of 126 credits. See also, the Computer Science and Engineering Program Objectives, Student Outcomes & Population Data.

 

 

Requirements

For full requirements please see Guide to Course Selection for your appropriate Catalog Year. 2013-2014 2015-2016 2016-2017 2017-2018

Plan of Study Requirement

All Engineering students in the first semester of their Junior year, or for transfer students in their second semester at UConn, whichever is later, must prepare a written Plan of Study form. The Plan of Study form documents the program he/she intends to follow to satisfy the degree requirements.

 

Course Concentrations

 

Theory and Algorithms

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 (Required)
  • CSE 3802: Numerical Methods
  • CSE 4500: Parallel Systems
  • CSE 4702: Introduction to Cryptography
  • CSE 4704: Computational Geometry
  • CSE 5500: Advanced Algorithms
  • CSE 5820: 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 CSE Department Head or the Director of Undergraduate Computing Education.

Theory and Algorithms Concentration Coordinators:
In case of questions regarding this concentration and for pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:

Donald Sheehy
Alexander Russell


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:Networks (Required) 
  • CSE 3400: Intro to Computer and Network Security
  • CSE 4300: Operating Systems
  • CSE 4302: Computer Organization and Architecture
  • CSE 4709: Networked Embedded Systems
  • CSE 5300: Advanced Networks

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 CSE Department Head or the Director of Undergraduate Computing Education.

Systems and Networks Concentration Coordinators:

In case of questions regarding this concentration and for pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:

Song Han
Bing Wang
Reda Ammar


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
  • CSE 4400: Computer Security
  • CSE 4402: Network Security
  • CSE 4702: Introduction to Cryptography
  • CSE 5854: Modern Cryptography: Protocols and Primitives

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 CSE Department Head or the Director of Undergraduate Computing Education.

Cybersecurity Concentration Coordinators:

In case of questions regarding this concentration and for pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:

Alexander Russell
Laurent Michel


 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 (Required)
  • CSE 3810: Computational Genomics
  • CSE 4502: Big Data Analytics
  • CSE 5810: Introduction to Biomedical Informatics
  • CSE 5820: Machine Learning
  • 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 CSE Department Head or the Director of Undergraduate Computing Education.

Bioinformatics Concentration Coordinators:

In case of questions regarding this concentration and for pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:

Ion Mandoiu
Mukul S. Bansal


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
  • CSE 4102: Programming Languages
  • CSE 4701: Principles of Data Bases
  • CSE 5103: Software Performance Engineering
  • CSE 5104: Software Reliability 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 CSE Department Head or the Director of Undergraduate Computing Education.

Software Design and Development Concentration Coordinators:

In case of questions regarding this concentration and for pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:

Swapna Gokhale
Sridhar Duggirala


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 (Required)
  • CSE 4701: Principles of Databases or OPIM 3221 Business Database Systems
  • CSE 4095: Dynamic Data Visualization or OPIM 4895 Visual Analytics
  • CSE 4705: Introduction to Artificial Intelligence
  • CSE 5713: Data Mining or OPIM 3802: Data and Text Mining
  • CSE 5095: Discrete Optimization or OPIM 3803: Spreadsheet Modeling for Business Analytics

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 CSE Department Head or the Director of Undergraduate Computing Education.

Computational Data Analytics Concentration Coordinators:

In case of questions regarding this concentration and for pre-approval of special topics or independent study courses (CSE 4095/4099/5095), please contact any one of the following concentration coordinators:

Sanguthevar Rajasekaran
Jinbo Bi


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 different required concentration courses, plus any other 2000+ level CSE course not used to fulfill another requirement.

Courses:

  • CSE 3502: Theory of Computation
  • CSE 3300: Networks
  • CSE 3400: Intro to Computer and Network Security
  • CSE 3800: Bioinformatics
  • CSE 2102 :Software Engineering
  • CSE 4502: Big Data Analytics
  • CSE 2000+: CSE course not used to fulfill other requirement

Unspecialized Concentration Coordinators:

There are no specific coordinators for this concentration; its courses are the required courses in the other concentrations. If you have questions about these courses (or other courses contained in the concentrations above), please contact the concentration coordinator whose concentration includes that course.


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.

Individually Designed Concentration Coordinator:

Robert McCartney