Software Engineering focuses on how to design and build software products that reliably deliver valuable services year after year. You will take many of the same courses as you would in computer science, but you will take additional courses that teach you about topics like software requirements, software design, and software testing. You will also learn about working with people (communication, management, working with non-technical customers), methodologies for developing software, and how to measure and analyze a software system. The Software Engineering degree is accredited by the ABET (Accreditation Board for Engineering and Technology) EAC (Engineering Accreditation Commission).
The Software Engineering degree begins with a Freshman Seminar course designed to introduce first year students to the fields of computer science and software engineering, the research of department faculty, and to professionals in the field. The students are introduced to programming and calculus in their first year. In the sophomore year students study discrete structures, embedded systems, and database management. Students build on their programming knowledge with a full year of data structures and analysis of algorithms. In upper division courses students branch into areas such as software engineering, computer architecture, operating systems, theory of programming languages, software architecture, requirements and specifications, verification and validation, networking, web science and a senior deign project.
As a Software Engineering major, you may select a focus area, or concentration, in your junior and senior year, in consultation with your advisor.
A breakdown of the curriculum is given in the four-year curriculum worksheet. Your advisor will provide you with assistance regarding your choice of electives.