Software engineering is the application of the principles of mathematics and computer science to design, implement, test, and evaluate software systems. Software engineers design and develop software that is involved in almost every facet of today's modern society, including computer gaming, business applications, military applications, telecommunication systems, operating systems, network control systems, and middleware. For this reason, software engineers must have a high degree of expertise in the theory of computing systems, the structure of software, and the nature and limitations of hardware to ensure that the underlying systems work properly. Another important dimension of software engineering includes the ability to manage software projects to deliver products with the upmost quality, on schedule, and within cost. As software engineers mature in the profession, they are required to assume leadership roles where skills in project management, leadership, and engineering economics become essential.
Accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org
Why Software Engineering at UVa-Wise
The software engineering program at UVA-Wise prepares students for careers as practicing professionals in software architecture, design, implementation, testing, project management, or for graduate study. The core curriculum gives students a unique opportunity to learn both the technical skills of computer science and the professional skills required of software engineers. At UVa-Wise, software engineering students benefit from a world class education in a small classroom environment. The educational objectives of the software engineering bachelor of science program are to graduate students who will be able to effectively analyze, design, and develop high-quality software systems using appropriate theory, principles, tools, and processes; solve problems in a team environment and effectively communicate with their peers, customers, and supervisors; apply engineering processes and practices to software components and systems; demonstrate professionalism in their work and embrace lifelong learning; and contribute to society in a meaningful manner and behave ethically and responsibly. The top reasons to join the UVa-Wise Software Engineering program are:
- Develop a strong foundation in science and mathematics
- Learn the fundamental theory of computing systems
- Learn how to design, develop, test, and maintain software systems
- Acquire the necessary skills in project management, leadership, and engineering economics
- Students have the opportunity to work with faculty on undergraduate research projects
- Software Engineering faculty have significant industrial experience. Lectures and labs are taught by professors, not graduate students.
- Acquire a world class UVA education in a small classroom environment
- UVa-Wise is ranked by U.S. News & World Report among the nation's top public liberal-arts colleges
Words from the Faculty
The field of software engineering deals with developing software through a practice, very similar to that of a writing process when composing a paper. Just like in the writing process, there is a planning period that takes place; but different from writing, the field is focused on "planning" quality software, by an examination of problems that could arise with the software, as well as critical thinking about how to resolve said problems. The key points of software engineering are developing software and systems that are robust, as well as teamwork, and remembering that the customer is the number one priority.
Someone earning a degree in software engineering will be marketable to software companies, as there is a continual shift to developing software using a process." -- Robert Hatch
Careers in Software Engineering
From the Bureau of Labor and Statistics
Computer software engineers apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the software and systems that make computers work. The tasks performed by these workers evolve quickly, reflecting new areas of specialization or changes in technology, as well as the preferences and practices of employers.
Software engineers can be involved in the design and development of many types of software, including computer games, word processing and business applications, operating systems and network distribution, and compilers, which convert programs to machine language for execution on a computer.
Computer software engineers often work as part of a team that designs new hardware, software, and systems. A core team may comprise engineering, marketing, manufacturing, and design people, who work together to release a product.
Job prospects should be excellent, as computer software engineers are expected to be among the fastest-growing occupations through the year 2016.
Association for Computing Machinery
Bureau of Labor and Statistics page on Computer Software Engineers
IEEE Computer Society