Program Requirements
Requirements for a Major in Computer Science
Basic Computer Science Component | (21) | |
CSCI 161 | P4 Foundations of Computer Science I | |
CSCI 162 | Foundations of Computer Science II | |
CSCI 231 | Data Structures and Algorithms | |
CSCI 241 | Computer Architecture | |
CSCI 251 | Introduction to Computer Security | |
CSCI 290 | Theory of Computation | |
CSCI 303/304/307 | C/Visual BASIC®/Python | |
Advanced Computer Science Component | (24) | |
CSCI 342 | Operating Systems | |
CSCI 351 | Secure Software Development | |
CSCI 353 | Database Structures | |
CSCI 451 | Applied Security Techniques | |
CSCI 461 | Programming Language Concepts | |
CSCI 470 | Computer Networks and Internets | |
CSCI 475 | Software Engineering | |
CSCI 480 | Senior Project | |
Advanced Applications: Two courses | (6) | |
Choose CSCI courses numbered 310 or greater. At least one course must be chosen from: |
||
CSCI 310 | Advanced C and System Programming | |
CSCI 313 | UNIX® Shell Programming | |
CSCI 365 | Computer Graphics | |
CSCI 375 | Programming the World Wide Web | |
CSCI 395 | Artificial Intelligence | |
CSCI 452 | Database Applications | |
Mathematics Component | (6) | |
MATH 150C | Elementary Discrete Mathematics | |
MATH 200C | Discrete Structures | |
Speech and Communication Component | (6) | |
COMM 250 | Speech Communication | |
ENGL 355 | Professional Writing Topics (or any approved writing course) | |
Total | (63) |
For students majoring in Computer Science, required courses from all disciplines and all CSCI courses that may be applied to the major are included in the determination of the grade point average in the major.
Students contemplating a major in Computer Science should take MATH 150C in their first year.
Computer Science majors are expected to demonstrate a serious attitude toward the College’s liberal arts Core Requirements and to select their elective courses with care.
Program Goals and Student Learning Outcomes
Goal #1 To enable understanding of the capabilities, limitations, and ramifications (technical, ethical and social) of computing , the state of the art, and current research and developments in computer science and related areas.
- Demonstrate an understanding of the various ethical issues associated with modern computing technologies
- Demonstrate and understanding of the various social issues involved with current “hacktivism” movements, such as Anonymous or WikiLeaks
Goal #2 To develop the ability to understand and analyze end user needs, master the techniques of creating and applying algorithms and data structures, and analyze their viability.
- Create various software projects, given a specification, using various algorithms and data structures
- Analyze software projects in terms of usability, efficiency, and/or correctness and be able to modify software projects using this analysis.
Goal #3 To become effective at working individually and in teams, building the work of others, and be able to communicate technical information with both experts and non-experts.
- Both individually and within a group, write clear, concise and accurate technical documents following industry standards to technical and non-technical audiences.
- Both individually and within a group, effectively present a clear overview of a software project for mixed audiences (both technical and non-technical).
Goal #4 To prepare for adapting to in hardware and/or software technologies, and new and changing applications area through a firm grasp of fundamental principles and to develop an appreciation of the needs for life-long learning.
- Apply existing knowledge to learn to develop software within a system, environment, or programming language which has not been taught as part of a format course.
Goal #5 To appreciate both the demands and range of opportunities of the computing profession and provide for and encourage creative contribution to the art.
- Demonstrate proficiency in a variety of different areas of Computer Science
- Create various software projects in a variety of different areas of Computer Science.