Learning Goals for Computer Science Undergraduates
Computer science is a broad field that draws its foundation from a number of disciplines, requiring students to utilize concepts from different fields. At the core of our curriculum, students must learn to integrate computer science theory with practice. In a field that evolves as rapidly as computer science, the Department of Computer Science focuses on preparing students for long term learning that enables them to not only understand today’s technologies, but also understand how to tackle challenges of the future.
The Department of Computer Science supports multiple programs for undergraduates including general science courses for students in the Georgetown University College of Arts & Sciences, an undergraduate Bachelor of Arts, Bachelor of Science and minor in Computer Science. We also offer an Accelerated Master of Science in Computer Science for those who are completing a Bachelor of Science.
High Level Learning Goals
At a broad level, the learning goals for the undergraduate majors are as follows:
- Recognizing the broad relevance of computational thinking in everyday life, as well as its applicability within other domains.
- Developing a high-level understanding of systems as a whole. This understanding should transcend component implementation details to emphasize the structure of computer systems and the processes involved in their construction and analysis.
- Understanding how theoretical underpinnings of the discipline influence practice.
- Understanding fundamental computer science principles that allow for easy adaptation as computer science evolves.
- Recognizing recurring themes such as abstraction, complexity, and concurrency and understand how they have broad application to the field of computer science.
- Understanding multiple programming paradigms and learning to program in more than one.
- Applying knowledge in multiple software projects and at least one substantial one. Doing so helps demonstrate practical applications of principles learned in different courses.
- Demonstrating knowledge and understanding of essential facts, concepts, principles, and theories relating to computer science and software applications.
- Deploying appropriate theory, practices, and tools for the specification, design, implementation, and maintenance as well as the evaluation of computer-based systems.
- Recognizing and being guided by the social, professional, legal and ethical as well as cultural issues involved in the use of computer technology.
- Communicating scientific understanding in oral and written forms.
Many of these goals have been adapted from the Association for Computing Machinery (ACM) curriculum goals and recommendations reports.