Computer software is the engine that drives the modern world. The need for software developers is outpacing the demand, especially here in Vermont, where a recent survey found an anticipated shortfall of hundreds of programmers over the next few years alone.
The Bachelor of Science in Software Engineering degree develops a student's programming expertise along with providing significant technical depth in multiple areas.
Software Engineering is just one of a range of computing degrees offered at Vermont Technical College. Degrees in Information Technology combine the software focus of Software Engineering with an understanding of business practices. Degrees in Computer Engineering complement the programming work with a solid grounding in computer hardware. Information Technology students may request to transfer to Software Engineering after the first semester without needing any additional courses. Transferring to Software Engineering after the first year may require additional coursework, possibly extending the time required for the degree. Computer Engineering students may request a transfer to Software Engineering after the first semester, but are likely to need to complete a few additional courses.
The Bachelor's Degree in Software Engineering requires all students to develop an understanding of a range of topics:
- Computer programming - All graduates must be fluent in multiple languages, including one object-oriented language and one scripting language.
- Computer hardware - All graduates must understand the fundamentals of computer hardware, including understanding the workings of assembly language.
- Web - All graduates must be able to develop complete websites.
- Networking - All graduates must understand the behaviors and implementation of computer networking and be able to develop systems that utilize computer networking.
- System development - All graduates must understand the requirements for developing and deploying high quality large scale software systems.
- User interfaces - All graduates must be able to design, implement and evaluate a user interface for a computer system.
- Databases - All graduates must understand the concepts and practice of relational databases.
- Security - All graduates must understand the security issues surrounding information technology and the appropriate tools and techniques to safeguard that security.
- Operating systems - All graduates must understand the workings of modern operating systems, both in theory and in practice, and be able to work with an operating system using administrative tools and programmatically, as appropriate.
- Technical depth - All students must develop significant technical depth in additional areas approved by the Department Chair.
- Groups - All graduates must be able to work effectively in a group software development effort.
- Theory - All graduates will have a sufficient background in the theory of computing to understand and fulfill the other requirements.
- Context - All graduates must understand the professional, historical and social context of information technology and be able to make reasoned judgments about the social and ethical implications of their actions.
In addition, all graduates must actively participate in the design, development and evaluation of a sizable software system and present the results of that effort.
Students can enter the degree program with a wide range of backgrounds. Students may apply directly to the bachelor's degree program. Alternatively, students successfully completing the associate's degree in either Information Technology or Software Engineering at Vermont Technical College may continue directly on to a Bachelor of Science in Software Engineer degree. Students may apply into the program following the completion of an associate's degree in a related field at an another institution. These students may require additional time to complete all the requirements.
The student, in conjunction with the Department Chair, may develop a sequence of courses to best meet his/her background and needs that satisfies these requirements. The typical curriculum taken by students is given below. Due to the dynamic nature of the software engineering field, the recommended sequence of courses may change.
The minimum number of credits required for the degree is 128.
Curriculum:


