The Department of Computer Science seeks to establish, maintain, and advance a broad understanding of computer science in order to fulfill the academic and professional goals. The department ensures that students have a solid foundation in the core concepts, equip them with problem solving skills, and prepare them for lifelong learning in the discipline.
The objectives of the program:
- Provide students with the fundamental skills and knowledge that all computing students must possess.
- Guide students to integrate theory and practice, recognize the importance of abstraction, and to appreciate the value of good design.
- Meet relevant trends in the evolution of the discipline of computer science that became apparent.
- Prepare graduates to succeed in a rapidly changing field.
- Provide students with the flexibility to work across many disciplines.
Through the variety of courses and projects, the program will enable students to attain, by the time of graduation:
- An ability to apply knowledge of computing and mathematics appropriate to the discipline
- An ability to analyze a problem, identify and define the computing requirements appropriate to its solution
- An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- An ability to function effectively on teams to accomplish a common goal
- An understanding of professional, ethical, legal, security and social issues and responsibilities
- An ability to communicate effectively with a range of audiences
- An ability to analyze the local and global impact of computing on individuals, organizations, and society
- Recognition of the need for and an ability to engage in continuing professional development
- An ability to use current techniques, skills, and tools necessary for computing practice.
- An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
- An ability to apply design and development principles in the construction of software systems of varying complexity.