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
- CIS 117 Introduction to Web Development (1 credit)
- CSC 203 Problem Solving with Objects (4 credits)
- CSC 205 Fundamentals of Data Structures (4 credits)
- CSC 209 UNIX Tools (1 credit)
- CSC 219 Programming in C (1 credit)
- CSC 311 Computer Organization and Architecture (4 credits)
- CSC 312 Cybersecurity (3 credits)
- CSC 356 Life in the Digital Age (3 credits)*
- CSC 401 Programming Languages (3 credits)
- CSC 406 Algorithms and Data Structures (3 credits)
- CSC 414 Operating Systems and Parallel Computation (3 credits)
- CIS 419 Computer Networks and Internet Applications (3 credits)
- CIS 422 Physical Design and Implementation with DBMS (3 credits)
- CSC 427 Software Systems Engineering (3 credits)
- CSC 483 Theory of Computation (3 credits)
- CSC 486 Junior/Senior Seminar (3 credits)*
- ONE project-oriented elective currently selected from the following list:
Additional project-oriented course options may be added in the future.
Cognate or Additional Requirements (23 credits)
Mathematics Corequisites (15 credits)
- MTH 201 Calculus I (4 credits)*
- MTH 202 Calculus II (4 credits)*
- MTH 281 Discrete Math I (4 credits)
- MTH 481 Discrete Mathematics II (3 credits)
Science Corequisites (8 credits)
TWO laboratory science courses from the following:
- BIO 201 Biology I (4 credits)*
- BIO 202 Biology II (4 credits)*
- CHM 205 College Chemistry I (4 credits)*
- CHM 206 College Chemistry II (4 credits)
- ENV 202 Environmental Science (4 credits)*
- ENV 303 Ecology (4 credits)*
- ESC 211 Introduction to Meteorology (4 credits)*
- ESC 311 Synoptic Meteorology (4 credits)
- PHS 235 Physics I (4 credits)*
- PHS 240 Physics II (4 credits)
Prerequisites (0-11 credits)
- MTH 122 Pre-Calculus (4 credits)*
- CSC 120 Introduction to Computing (4 credits)
- MTH 111-College Algebra (3 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
- Earn an average grade of “C” or higher in core and elective courses.
- The grade earned in each of CIS 117, CSC 203, 205, 209, 219, 311 and 312 must be “C” or higher.
- 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).
- 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.
- At least 18 of the credits used to satisfy the core or elective requirements in the major must be earned at Brockport.
- 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
- CIS 117 Introduction to Web Development (1 credit)
- CSC 203 Problem Solving with Objects (4 credits)
- CSC 205 Fundamentals of Data Structures (4 credits)
- CSC 209 UNIX Tools (1 credit)
- CSC 219 Programming in C (1 credit)
- CSC 311 Computer Organization and Architecture (4 credits)
- CSC 312 Cybersecurity (3 credits)
- CSC 356 Life in the Digital Age (3 credits)*
- CSC 401 Programming Languages (3 credits)
- CSC 406 Algorithms and Data Structures (3 credits)
- CSC 427 Software Systems Engineering (3 credits)
- CSC 486 Junior/Senior Seminar (3 credits)*
- FIVE CSC courses numbered 400-489, selected through advisement, at least one of which must be a project-oriented course currently selected from the following list
Cognate or Additional Requirements (11 credits)
Mathematics corequisites
- MTH 201 Calculus I (4 credits)*
- MTH 281 Discrete Math I (4 credits)*
- MTH 481 Discrete Mathematics II (3 credits)
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
- Earn an average grade of “C” or higher in core and elective courses.
- The grade earned in each of CIS 117, CSC 203, 205, 209, 219, 311 and 312 must be “C” or higher.
- At least 18 of the credits used to satisfy the core or elective requirements in the major must be earned at Brockport.
- 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
Program Educational Objectives
Advanced Computing Track
The graduates of the undergraduate degree program in Computer Science (Advanced Computing Track) are expected to have:
- 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,
- Adapted and grown as work conditions and responsibilities changed with technology and globalization, and
- Engaged ethically in collaborative teams, communicating effectively with team members and others.
These objectives are accomplished by providing our students:
- 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,
- Opportunities to specialize in a variety of areas of computer science through a selection of elective courses,
- Opportunities to broaden educational experiences through independent studies, theses, internships, career exploration experiences, and study abroad programs, and
- 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:
- 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,
- Adapted and grown as work conditions and responsibilities changed with technology and globalization, and
- Engaged ethically in collaborative teams, communicating effectively with team members and others.
These objectives are accomplished by providing our students:
- 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,
- Opportunities to specialize in a variety of areas of software development through a selection of elective courses,
- Opportunities to broaden educational experiences through independent studies, theses, internships, career exploration experiences, and study abroad programs, and
- 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
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
Software Development Track
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.