Software Engineering
Software engineers develop software applications while focusing on delivering quality software that meets the customers' needs.
What is a Software Engineer?
Software engineers develop software applications while focusing on delivering quality software that meets the customers' needs. In addition to developing software applications, software engineers select and track the processes that will be used throughout the development of an application. They apply statistical process control techniques to plan the project, estimate risk, and refine the process. Students studying software engineering complete a core of computer science courses to ensure they have solid software development skills. Specialized courses in the software engineering track include technical writing, formal methods, and statistics in addition to advanced computer science courses.
Where is Software Engineering used?
Software engineering graduates are sought by organizations that have rigorous demands on their software. This includes military applications and fault tolerant applications like airplane control systems. Also, large software development organizations employ software engineers to coordinate the activities of many software developers. This means that software engineers can work on anything from PC-based applications to real-time embedded control systems. Since they are well-versed in computer science techniques, software engineers can work in any software development activity.
What kind of career choices can I expect?
Most software engineers work within software development organizations. However, that doesn't mean they spend their days huddled in front of a computer. Developing software in a large organization requires that all developers work together. This means they must agree about what they are building, how they will build it, and how they will track their progress. Since these things differ from one project to the next, software engineers spend a good amount of time discussing and debating alternatives. In addition, large organizations require a wide variety of skills. In addition to software developers, they need managers, testers, marketers, and customer supporters. Software engineers can choose to provide one or more of these skills.
What are the internship opportunities?
Software engineering at Shippensburg requires an industrial internship. This experience enables students to encounter actual work situations. Usually, the internship is during the summer before the senior year. Some students choose six-month internships during both their junior and senior years and graduate after five years with one year of practical experience under their belts. These internships are with leading companies and national and state agencies.
How should I prepare for this field?
Typically, students who plan to study software engineering in college take four years of math in high school: algebra I and II, geometry and trigonometry. Advanced Placement credit is available for those who were successful in calculus in high school. Students should have some experience with computers, but no programming experience is required. Communication skills, both oral and written, are also critical for students entering the program.
What courses will I take?
The first two years consist of a core of computer science and mathematics courses including calculus, discrete mathematics, programming and data types, and software engineering.
In the upper-division courses, students will continue to learn advanced computer science techniques like database management or graphics. In addition, they will take courses in software engineering techniques and technical communications. All software engineering students must participate in our internship program.
Can non-majors take these courses?
The department offers a computer science minor, which is especially attractive to students seeking to combine other disciplines with computer science.
What are the university's computing resources?
The Mathematics and Computer Technologies Center is home to the Department of Computer Science (CS) and the university's Information and Computing Technologies Center (ICTC). The CS and ICTC departments work together to provide state-of-the-art computing facilities for our students. All computing facilities on campus have access to the Internet, and students are provided with e-mail accounts and space for web pages. In addition, 24x7 labs are available around campus.
CS students in have many computing resources available to them. Each of our classrooms provides a Pentium 4 computer with Windows and Linux at each seat. Our advanced computing lab provides high-end Sun and Apple workstations with a Gigabit network for tasks that require high performance computing including graphics rendering and distributed computing. There is an 802.11 wireless network that covers all of our classrooms, labs, and study areas. CS students are also given an account on the dedicated CS servers which allow students to store their files in a central location. The CS department is an academic partner with Microsoft, IBM, Sun, and Oracle. Most of the software used in the classrooms is also installed in the labs or available for student's personal computers. There are also resources to support specific parts of our program, including robot toolkits and Palm pilot hand held computers.
What student organizations are available to the computer science major?
The department has a student chapter of the Association for Computing Machinery (ACM). It is active in bringing in speakers from firms involved in computing, assisting with department and university activities, and holding annual game-a-thons.
The Programming Team is a unique student organization at Shippensburg. Our team competes with teams from other colleges and universities on the basis of members' ability to write correct programs as quickly as possible. The team consistently places well in the ACM regional contest. In recent years, the team has placed in the top 20 out of more than 100 colleges and universities, beating teams like Princeton, University of Delaware, and University of Pennsylvania. WiCS (Women in Computer Science) promotes an inclusive community within the department and provides a place for our female students to meet and share experiences. Through podcasts showcasing our female students, WiCS actively promotes an increase in the percentage of women in the discipline (http://webspace.ship.edu/wics).