The Computer Science program is about problem solving and the ability to learn new ideas and apply them. That's because the heart of software design is not the language or the developer environment, but the ability to define a problem, analyze various components, and project and evaluate potential solutions, all of which are subject to limitations and constraints inherent in a given computer.
Students must understand that in industry there must be more than just a working program. Good software must not only work but must be fully documented, clearly written, and easily modifiable to meet changing and more extensive requirements.
The field of computer science is undergoing great changes as technology advances and the need for computer software increases. Students entering this field must not see a bachelor's degree in computer science as the culmination of study in the field. Rather, they must see it as the first step in a continuing education process that will last as long as they choose to stay in the field. The goal of the Computer Science major is to provide students with a strong foundation upon which they can continue to build as the field changes. Students can receive instruction in areas such as software design and project management, object-oriented programming, design of algorithms, operating systems, database management systems, neural networks, computer graphics, network programming, and more.
Computer science courses are often mistaken for programming courses. In reality, they require much more than learning and mastering a programming language. The heart of software design is not the language, but the ability to define a problem, analyze various components, and project and evaluate potential solutions, all of which must be scalable and robust. This must also be done under the constraint that they are subject to limitations and constraints inherent in a given computer. Students must understand that in industry there must be more than just a working program. Good software must not only work but must be fully documented, clearly written, easily modifiable to meet changing and more extensive requirements, and engineered for stability, security, and correctness.
Equally important, the program provides a theoretical base for computer science and helps students understand there is more to computer science than software development. Students develop skills they can use upon graduation but they must be prepared to enter a field which is both diverse and rapidly changing and they must be able to adapt to new technologies. This requires a solid theoretical foundation with knowledge of how computers work and how they carry out tasks specified in applications software. It requires that students think beyond writing software and explore areas such as neural networks, computer graphics, algorithm analysis, or scientific applications. This knowledge is an important ingredient to professional development as it gives them the tools they need to analyze efficiency and evaluate various programming and data design options and to see the possible futures as computer science evolves. Simply providing them with skills necessary to enter the computing profession is not sufficient. Each student must be prepared to apply what he or she has learned in order to adapt to the inevitable changes that will occur. Each must also have the ability to learn new ideas and apply them.
Graduates of the Computer Science program are prepared to continue their education at the graduate level or to apply for entry-level positions in industry. Typical entry-level jobs are programmer or programmer/analyst positions.
Students majoring in Computer Science have two options. The first is the disciplinary track and is designed for those interested in pursuing careers in fields such as software development immediately after graduation. It has an emphasis on core computer science topics including fundamental theory and software engineering. Students choosing this track must also choose a minor from the list of interdisciplinary minors offered by the University. The most common choices are Information Sciences and Business Administration but there are other options. The second track is an interdisciplinary track combining Computer Science and Mathematics courses. It is designed to help students understand some of the more complex principles that form the foundation of topics such as algorithm analysis, number systems, coding, formal language, and encryption. Although it also serves students who are career bound after graduation, those students with interest in pursuing graduate studies in computer science are strongly encouraged to choose this track. Students taking this track are not required to choose an interdisciplinary minor.
All registered students have access to the University's computing facilities. Student accounts allow students to access a wide variety of both PC-compatible and Macintosh computers, Linux and database servers (for select courses), various software developer environments, and of course the internet. Also, because of the department's participation in the Microsoft Academic Alliance, those enrolled in Computer Science courses are also entitled to home-use rights for a variety of Microsoft products. Labs are open seven days per week and are staffed by consultants who provide assistance in using the facilities. Classrooms also have network connections which allow demonstrations of software and internet applications to be integrated with classroom lectures. There is also a Computer Science teaching lab with 28 workstations and display facilities that support Computer Science instruction.
Computer Science courses have a strict prerequisite structure. It is imperative that students learn what courses are prerequisites for others and when they are offered. Students are strongly encouraged to talk to an adviser very early in their college career.
Students seeking information on teacher certification should contact the Education Office.
- Students must be able to design the logic and information structures necessary to create software capable of solving problems subject to specified constraints.
- Students must develop both written and verbal communication skills that support the design and documentation of software products and help utilities.
- Students must be able to analyze software to determine correctness and, if incorrect, be able to determine the cause of errors and fix them.
- Students must understand fundamental principles and theory of both computer hardware and software and the mathematical foundations on which Computer Science is built.