Computer Science Major (BS)

Description

Computer Science is the theory and practice of computation. A computer scientist creates new hardware and software that is more efficient, effective, and reliable. At SUNY Brockport, the Advanced Computing (AC) and the Software Development (SD) Tracks of the Computer Science (CSC) major train students in lasting fundamental principles of computing, with appropriate exposure to modern hardware/software products and applications. The emphasis is on computer problem solving and the development of new software and hardware.

The Advanced Computing Track of the Computer Science major is accredited by the Computing Accreditation Commission of ABET. This track is recommended for students with a strong preparation in mathematics and science. The Software Development Track is recommended for transfer students and double majors with interest in software development.

Useful information for students, such as career guidance, advisement, sample plans of study, student awards, and scholarships can be found at the department website.

Admission to the Program

Any undergraduate student can declare this major. The first course in the program is CSC 203 (Problem Solving with Objects). The prerequisites for this course are CSC 120 (Introduction to Computing) and MTH 122 (Pre-calculus), or equivalents by permission of the instructor.

  • Students without these prerequisite courses should plan on one or two preparatory semesters in which to take them.
  • Students demonstrating appropriate preparation may be waived off one or more of these prerequisite courses, allowing them to enroll directly in the courses in the program.
  • Students who complete the Advanced Placement (AP) Exam in Computer Science (A) with a score of 3 will receive credit for CSC 120. Students who complete the Advanced Placement (AP) Exam in Computer Science (A) with a score of 4 or 5 will receive credit for CSC 203.

Program Requirements

Students in the computer science major pursue a Bachelor of Science degree and must complete its requirements.

Students pursue either the Advanced Computing or the Software Development track.

Track 1: Advanced Computing

General Education Requirements (39* credits)

Major Departmental Requirements (48 credits)

Core Courses

Additional project-oriented course options may be added in the future.

Cognate or Additional Requirements (23 credits)

Mathematics Corequisites (15 credits)

Science Corequisites (8 credits)

TWO laboratory science courses from the following:

Prerequisites (0-11 credits)

Free Electives (0-10 credits)

  • Free electives may be taken to complete a recommended MTH minor

Total Credits (120-121 credits)

Additional Degree Requirements

  1. Earn an average grade of “C” or higher in core and elective courses.
  2. The grade earned in each of CIS 117, CSC 203, 205, 209, 219, 311 and 312 must be “C” or higher.
  3. A student must take at least 15 credits in mathematics courses beyond the pre-calculus level. These credits are expected to be from the following courses: MTH 201 (Calculus I), MTH 202 (Calculus II), MTH 281 (Discrete Math I), and MTH 481 (Discrete Math II).
  4. A student must take at least 8 credits in Science courses. These credits must be from laboratory based courses allowed as part of BIO, CHM, ENV, ESC, or PHS majors.
  5. At least 18 of the credits used to satisfy the core or elective requirements in the major must be earned at Brockport.
  6. Credits (1-4) for at most one course can be earned by “departmental credit by examination.”

*denotes courses that meet both major and general education requirements

Track 2: Software Development

General Education Requirements (39* credits)

Major Departmental Requirements (48 credits)

Core Courses

Cognate or Additional Requirements (11 credits)

Mathematics corequisites

Prerequisites (0-8 credits)

Free Electives (14-22 Credits)

  • Free electives may be taken to complete a recommended MTH minor, or other minors selected by student

Total Credits (120 credits)

Additional Degree Requirements

*denotes courses that meet both major and general education requirements

Program Educational Objectives

Advanced Computing Track

The graduates of the undergraduate degree program in Computer Science (Advanced Computing Track) are expected to have:

    1. Attained, within a few years of graduation, a higher level of expertise in computing through productive employment in computing technology development fields, with job designations such as Computer Programmer, Software Developer, Software Engineer, Software Security Specialist, Software Systems Analyst, Software Quality Assurance Engineer, Systems Programmer and Web Developer, or through successful pursuit of advanced graduate studies in computing or related disciplines,
    2. Adapted and grown as work conditions and responsibilities changed with technology and globalization, and
    3. Engaged ethically in collaborative teams, communicating effectively with team members and others.

These objectives are accomplished by providing our students:

    1. A broad-based education in core areas of computer science, including algorithms and complexity, computer science theory, concepts of programming languages, software development, computer architecture and organization, information management, networking and communication, operating systems, parallel and distributed computing, and cyber security, with an appropriate blend of theory and practice,
    2. Opportunities to specialize in a variety of areas of computer science through a selection of elective courses,
    3. Opportunities to broaden educational experiences through independent studies, theses, internships, career exploration experiences, and study abroad programs, and
    4. A deep foundation in professional ethics and communication skills.

Software Development Track

The graduates of the undergraduate degree program in Computer Science (Software Development Track) are expected to have:

    1. Attained, within a few years of graduation, a higher level of expertise in computing through productive employment in computer software development fields, with job designations such as Computer Applications Programmer, Computer Applications Analyst, Database Administrator, Network Administrator, Software Developer, Software Tester, and Web Developer, perhaps combining knowledge and skills gained through an exposure to another discipline as an associate degree holder or as a double major, or through successful pursuit of advanced graduate studies in computing or related disciplines,
    2. Adapted and grown as work conditions and responsibilities changed with technology and globalization, and
    3. Engaged ethically in collaborative teams, communicating effectively with team members and others.

These objectives are accomplished by providing our students:

    1. A broad-based education in core areas of computer software development, including algorithms and data structures, concepts of programming languages, software development, computer architecture and organization, information management, networking and communication, operating systems, parallel and distributed computing, and cyber security, with an appropriate blend of theory and practice,
    2. Opportunities to specialize in a variety of areas of software development through a selection of elective courses,
    3. Opportunities to broaden educational experiences through independent studies, theses, internships, career exploration experiences, and study abroad programs, and
    4. A deep foundation in professional ethics and communication skills.

Student Learning Outcomes

Upon completion of the program, students will be able to:

Advanced Computing Track

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Software Development Track

  1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.