As we mentioned in our last newsletter, the new CS program closely follows the current ACM/IEEE model Computer Science curriculum. This is the fourth edition of the model curriculum since 2001, and includes the learnings of hundreds of departments not only since 2001, but also in the 4 preceding decades during which Computer Science departments grew out of existing Math and Electrical Engineering Departments worldwide. When developing the new major, the faculty used the model curriculum, modifying it when necessary to ensure that the college meets SUNY's "seamless transfer" requirements. Seamless transfer ensures that students in Computer Science programs at other public colleges in NY, especially at community colleges, would be easily able to transfer into the third year of the program. The program was also designed to be easily accredited by ABET, should the department decide to pursue specialized accreditation.
The CS major has a few major areas of emphasis. One thing you may notice first when looking at the program is the number of math course. Computer science is a technical discipline lying at the intersection of Engineering and Mathematics, and so requires a significant amount of mathematics. The ABET requirements dictate that CS programs have at least 15 credits of mathematics at least at the level of calculus. While most of our required math credits come from required and elective courses from the Math department, the program also requires a course in Discrete mathematics, the area of mathematics most used in computer science.
As you might expect, the largest block of classes in the computer science program is computer programming and software engineering classes. In addition to a 2 course introductory Java sequence, the program requires 2 courses in data structures and algorithms, a course in software engineering, a course in advanced programming, and an operating systems course that will involve significant systems programming. Students will also take a course in programming languages, which will teach them the categories, characteristics, and features of different types of programming languages.
Finally, the curriculum also has some breadth. Students will take a course each in networking and in data management (databases), a course in ethics, and a senior project course. Students will also have the opportunity to take four electives, chosen from select upper level BCS courses as well as new CSC electives. While no electives have been run so far, the current plan is to start rolling out the first few computer science specific electives in the Fall of 2022, with a few additional electives to follow each subsequent semester.
Note that the current plan is that every required course will run every year, but some required courses may only run once, in the Fall or the Spring. For this reason, it's vital that students avail themselves of pre-registration advisement so they don't unnecessarily delay their graduation. Students interested in advisement should see Denise Backman, in the Department office, to arrange for an advisement appointment with a member of the faculty or staff.