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.

Computer Science


For More Information

Admissions
(585) 385-8064
admissions@sjfc.edu