Our department offers four distinct programs:  three undergraduate degrees and a master’s degree in computer science. The three undergraduate programs are related, but focused on different aspects of development.

Undergraduate Programs

The BS in Computer Science is our broadest degree. Its goal is to give the student experiences across the discipline. The courses in this program cover everything from the organization of the hardware to high-level applications like graphics and artificial intelligence. The capstone project for this degree is an individual research project of the student’s selection. Graduates of this program will be able to work in a wide variety of companies that develop, maintain, or sell software.

The B. S. in Software Engineering (SE) sacrifices some of the breadth of the BS in Computer Science to focus on what it takes to build REALLY big software systems. When a system is too big for a couple of people to develop, two things become really important. First, we have to be careful how we design the internals of the system. Working code is no longer good enough. We need to design those internals so that different people can develop different aspects of the system while knowing that their parts will fit together when they are complete. We also need to be able to add functionality to the system. No big system has only one release – there is always something new it can do. Second, when a team is developing together, we need to understand team management and tools. We need to be able to plan who should work on what and when things will be complete, to track our progress against that plan, and to understand the tools that allow a lot of people to modify the system at the same time.  So, our SE program has courses in the design of systems from small to very large (too large to fit on one machine) and in software process management. The capstone experience is a team development project on a large-scale system. Graduates of this program are sought after by companies and government agencies that develop software.

The BS in Computer Engineering (CE) also sacrifices some of the breadth of the BS in Computer Science to focus on the interface between the hardware and the software. This degree combines Physics courses that cover analog and digital circuitry with CE courses that focus on the software right above that hardware. Students in this program not only develop software, but also build printed circuit boards for a variety of control applications.  We think that it is critical that our CE students understand the process of manufacturing printed circuit boards because that can help them design efficient boards. Therefore, we have a suite of equipment that allows our students to do every step of building their own systems, starting from the blank copper and ending with a working control system. Graduates of this program will be well prepared to develop control systems for industry or government applications.

The new BS in Electrical Engineering (EE) focuses on electrical devices, their theory of operation, and the related science.  The program combines advanced Physics including courses in Electricity & Magnetism, Quantum Physics, Electronics, and Semiconductors.  The program includes advanced study in Non-Linear Electronics, Micro-controllers, Control Systems, Signals and Systems, Digital Logic and Reconfigurable Computing.  Graduates of the program will be well prepared to develop electronic systems for industry or government applications; and be prepared to purse advanced study at the graduate level.

4+1 BS/MS Program

With careful planning, our advanced undergraduate students can complete our MS in Computer Science with only one additional year of study. The details of how this works depend on the interest areas of the student, but leveraging both degrees can give a graduate a combination of breadth and depth that employers will appreciate.

Master’s Program

We offer a broad MS in Computer Science program that helps students pursue the discipline in more depth than an undergraduate degree. With foundation courses like Operating System and Algorithms combined with advanced courses in Software Engineering, High Performance Computing, and Data Visualization, graduates of this program will be able to lead software development in challenging applications.