Student Learning Goals
Computer Science is a precise discipline defined by the types of problems it addresses and the methods it uses to address these problems. In designing solutions students must know how to write programs using an appropriate language chosen from among different language paradigms. The programs may include a variety of data structures, and students must be familiar with algorithms that can be used to access and manipulate these structures. Each algorithm will have advantages and disadvantages compared to others, and students must be familiar with the efficiency of each in order to use the most appropriate to solve the problem at hand. Upon completion of the Major (and to a lesser extent the Minor) in Computer Science, a student shall have achieved the following:
- Students can compare and evaluate data structures and algorithms and know how to use
the most appropriate data structures with respect to the requisite algorithms to solve
a variety of problems efficiently.
- Outcome 1.1: Students can evaluate the efficiency of algorithms with respect to time and memory and understand related issues such as unsolvability and computational complexity.
- Outcome 1.2: Students use appropriate data structures to store data and use relevant algorithms that interact with these data structures.
- Outcome 1.3: Students will demonstrate knowledge of mathematical foundations required to study data structures and algorithms.
- Students can develop software solutions that solve a variety of problems using appropriate
languages and software designs, and understand how software interacts with hardware.
- Outcome 2.1: Students are proficient at designing software using a variety of programming languages and paradigms.
- Outcome 2.2: Students know the foundations of and can solve problems in important applied fields of computer science such as artificial intelligence, computer graphics, and concurrent programming.
- Outcome 2.3: Students understand how some hardware components are designed and how software interacts with components and systems.
- Students can communicate effectively using accepted standards of the profession.
- Outcome 3.1: Students can write clear and well-organized expository work either on exams or homework.
- Outcome 3.2: Students can write software that includes a) documentation explaining the algorithms used in sections of code, and b) proper writing and formatting styles that adhere to accepted coding conventions.
- Students will appreciate the creative aspects of computer science.