what
Computer Science and Software Engineering Program Mission
The mission of the Computer Science and Software Engineering programs at the University of Central Missouri is to
- Provide up-to-date undergraduate and graduate programs which enable students to enrich their knowledge and prepare them for careers in computing and engineering professions and/or advanced graduate study;
- Provide computer-related service courses to enhance student learning and fulfill the needs of the 21st century workforce;
- Support and encourage the professional development of its faculty in areas of service, leadership roles in professional organizations, scholarly research, and grant writing.
Computer Science
Computer Science spans a wide range, from its theoretical and algorithmic foundations to cutting-edge developments in robotics, computer vision, intelligent systems, bioinformatics, and other exciting areas. We can think of the work of computer scientists as falling into three categories:
- They design and implement software. Computer scientists take on challenging programming jobs. They also supervise other programmers, keeping them aware of new approaches.
- They devise new ways to use computers. Progress in the CS areas of networking, database, and human-computer-interface enabled the development of the World Wide Web. Now, researchers are working to make robots be practical aides that demonstrate intelligence, are using databases to create new knowledge, and are using computers to help decipher the secrets of our DNA.
- They develop effective ways to solve computing problems. For example, computer scientists develop the best possible ways to store information in databases, send data over networks, and display complex images. Their theoretical background allows them to determine the best performance possible, and their study of algorithms helps them develop new approaches that provide better performance.
--- Computing Curricula 2005
In summary, CS prepares students to create new technology infrastructure (the theory behind things, how things function, why things are the way they are, how you can make things better). If you are interested in learning computer-related skills, and not just satisfying how to do it but why it works, then a computer science major is for you.
Software Engineering
Software Engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. Software engineering is based on computer science in the same way other engineering disciplines are based on physical or life sciences. However, it adds an emphasis on issues of requirements, process, design, measurement, analysis and verification, providing a strong foundation in engineering principles and practice as applied to software development. Drawing on computing as one of its foundations, software engineering seeks to develop and use systematic models and reliable techniques to produce high-quality software. The study and practice of software engineering is influenced both by its roots in computer science and its emergence as an engineering discipline. Some critical characteristics common to every other engineering discipline are equally applicable to software engineering. They are
- Whereas scientists observe and study existing behaviors and then develop models to describe them, engineers use such models as a starting point for designing and developing technologies that enable new forms of behavior.
- Engineers proceed by making a series of decisions, carefully evaluating options, and choosing an approach at each decision point that is appropriate for the current task in the current context. Appropriateness can be judged by trade-off analysis, which balances costs against benefits.
- Engineers measure things, and when appropriate, work quantitatively. They calibrate and validate their measurements, and they use approximations based on experience and empirical data.
- Engineers emphasize the use of a disciplined process when creating and implementing designs and can operate effectively as part of a team in doing so.
- Engineers can have multiple roles: research, development, design, production, testing, construction, operations, and management in addition to others such as sales, consulting, and teaching.
- Engineers use tools to apply processes systematically. Therefore, the choice and use of appropriate tools is a key aspect of engineering.
- Engineers, via their professional societies, advance by the development and validation of principles, standards, and best practices.
- Engineers reuse designs and design artifacts.
Excerpted from ACM Software Engineering 2014