View
303
Download
0
Category
Preview:
Citation preview
Page 1 of 22
Advising and Pre-Registration Notes and Information
Computer Science Major
October 9, 2017
Table of Contents:
Capstone Project: CSC 520 And CSC 521
Computer Science Major Listserv
Computer Science Major Courses & Prerequisites
Course Dependency Diagram
General Advising Notes
Languages Used in Specific Courses
Math Requirements And Math Minor
Matriculation Requirements And Options
Option Sequences
Planned Offerings Spring 2018 through Fall 2021
Second Programming Language Requirement
Support Courses
Year-by-Year Schedule: Computer Science Degree Map
Note: detailed course descriptions for all CSC courses can be found in the Computer Science Department
website at http://cs.salemstate.edu/dept/index.php?page=184.
Page 2 of 22
Computer Science Department
Planned Computer Science major (CSC-prefixed) regularly-scheduled course offerings
Spring 2018 through Fall 2021
Table Legend
bold black == CS major required course; bold colored == component of option sequence (two courses of same
color == an option sequence); italics == course offered every other year); struck through == cancelled offering
Required Courses Option Courses Elective Courses
Fall 2017 CSC 105(2), CSC 110(2), CSC 115, CSC 260, CSC 381,
CSC 520, CSC 521, PHS 205
CSC 351, CSC 425,
CSC 475, CSC 485 CSC 279
Spring 2018 CSC 105, CSC 110, CSC 115(2),
CSC 260, CSC 295, CSC 300, CSC 520, CSC 521
CSC 263, CSC 315A,
CSC 325, CSC 340 CSC 212
Summer 2018 CSC 105, CSC 110, occasionally CSC 260
Fall 2018 CSC 105(2), CSC 110(2), CSC 115, CSC 260, CSC 381,
CSC 520, CSC 521, PHS 205
CSC 345, CSC 246, CSC
351, CSC 435 CSC 278
Spring 2019 CSC 105, CSC 110, CSC 115(2),
CSC 260, CSC 295, CSC 300, CSC 520, CSC 521
CSC 263, CSC315A,
CSC 340 CSC 235,
CSC 376
Summer 2019 CSC 105, CSC 110, occasionally CSC 260
Fall 2019 CSC 105(2), CSC 110(2), CSC 115, CSC 260, CSC 381,
CSC 520, CSC 521, PHS 205
CSC 351, CSC 425,
CSC 475, CSC 485 CSC 279
Spring 2020 CSC 105, CSC 110, CSC 115(2),
CSC 260, CSC 295, CSC 300, CSC 520, CSC 521
CSC 263, CSC 315A,
CSC 325, CSC 340 CSC 212
Summer 2020 CSC 105, CSC 110, occasionally CSC 260
Fall 2020 CSC 105(2), CSC 110(2), CSC 115, CSC 260, CSC 381,
CSC 520, CSC 521, PHS 205
CSC 345, CSC 246,
CSC 351, CSC 435 CSC 278
Spring 2021 CSC 105, CSC 110, CSC 115(2),
CSC 260, CSC 295, CSC 300, CSC 520, CSC 521
CSC 263, CSC315A,
CSC 340 CSC 235,
CSC 376
Summer 2021 CSC 105, CSC 110, occasionally CSC 260
Fall 2021 CSC 105(2), CSC 110(2), CSC 115, CSC 260, CSC 381, CSC 520, CSC 521, PHS 205
CSC 351, CSC 425,
CSC 475, CSC 485 CSC 279
Option Sequences (see Option Sequence Changes Fall 2017)
Computation Theory: CSC 400 & CSC 415 (note – this sequence is not scheduled on a regular basis – see
the department chairperson for details and availability)
Computer Graphics and Visualization: choose two from CSC 246, CSC 340, CSC 425
Cyber Physical Systems: CSC 340 plus one from CSC 345, CSC 485
Networking and Cloud Computing: CSC 315A plus one from CSC 435, CSC 445, CSC 475 (note – CSC 445
is not scheduled on a regular basis – see the department chairperson for details and availability)
Software Engineering: CSC 351 plus one from among CSC 263, CSC 325
Page 3 of 22
List of Computer Science major (CSC-prefixed) courses and significant attributes (Courses required within the Computer Science major are indicated in bold typeface. Please see the Computer Science
Department website (cs.salemstate.edu) for complete course description, topic list, bibliography, etc.)
Course Credits Required
Lab Programming
Load Typically
Offered Typical Language(s) /
O.S. / Hardware
CSC 105 Survey of Computer Science II 4 minimal Spring & Fall
CSC 110 Software Design and Implementation I 4 heavy Spring & Fall Java
CSC 115 Software Design and Implementation II 4 heavy Spring & Fall Java
CSC 212 Human-Computer Interfaces 4 moderate Spring, even years C#, ASP.NET
CSC 223 Microcomputing Systems (no longer offered) 4 moderate Spring, odd years TBD CSC 230 Real-Time Computer Interfaces (no longer
offered) 3 moderate Spring, odd years TBD
CSC 235 Computer Security Basics 3 moderate Spring, odd years
Java, plus some PHP,
MySQL, Linux
scripting
CSC 246 Information Visualization 4 moderate Fall, even years Processing
CSC 260 Data Structures & Algorithms 4 heavy Spring & Fall Java
CSC 263 Database Systems 4 moderate Spring (except
Spring 2018) Java, SQL (Oracle
and/or MySQL)
CSC 278 Scripting Techniques 4 heavy Fall, even years
multiple, varies by
semester: e.g.
JavaScript, Python,
PHP, …
CSC 279 C + C++ 4 heavy Fall, odd years C and C++
CSC 295 Computer Architecture & Organization 3 moderate Spring Altera’s Quartus II
and DE2 board
CSC 300 Software Engineering I 4 moderate Spring UML, Java,
Modeling tools
CSC 315A Computer Networks and
Data Communications 4 minimal Spring
C, Java, Linux,
Windows
CSC 325 Advanced Programming Techniques 4 heavy Spring, even years C#
CSC 340 Artificial Intelligence 3 moderate Spring variable
CSC 345 Embedded Systems (Fall 2018 initial offering) 4 moderate Fall, even years
Hardware Description
Language and Altera’s
Quartus II and DE2
board.
CSC 351 Software Engineering II 4 moderate to
heavy Fall
UML, Java,
Modeling tools
CSC 367 Internship in Computer Science 1-6 variable as needed highly variable
CSC 376 Topics in Computer Science 3 variable sporadic variable
CSC 381 Operating Systems 3 minimal Fall
CSC 400 Compiler Construction 4 heavy sporadic variable
CSC 415 Analysis of Algorithms 3 minimal sporadic
CSC 425 Computer Graphics and Games 4 heavy Fall, odd years Java
CSC 435 Computer and Network Security
Engineering 3 moderate Fall, even years
C / C++, plus some
PHP, MySQL, Linux
scripting
CSC 445 Parallel Processing 4 moderate Sporadic Fortran or C++
CSC 475 Distributed and Cloud Computing 4 moderate Fall, odd years C, Java, Linux,
Windows
CSC 485 Robotics and Computer Vision 4 moderate Fall, odd years MATLAB, C / C++
CSC 490 Theory of Computation 3 minimal sporadic
CSC 498 Project Design/Specification Practicum 1 minimal as needed variable
CSC 500 Directed Study in Computer Science I 3 heavy as needed variable
CSC 501 Directed Study in Computer Science II 3 heavy as needed variable CSC 520 Computer Science Capstone Project Spec 1 minimal Spring & Fall variable CSC 521 Computer Science Capstone Project 3 heavy Spring & Fall variable (Note: Staffing and enrollment issues may necessitate exceptions to the "typically offered" schedule presented above. The
Computer Science Department makes every effort to keep to the schedule as presented.)
Page 4 of 22
Computer Science Major Courses & Prerequisites
COURSE TITLE PREREQUISITE
CSC 105 Survey Of Computer Science II CSC 110
CSC 110 Software Design/Programming I High school algebra I, II; knowledge of Windows, email, and word processing
CSC 115 Software Design/Programming II CSC 110
CSC 212 Human-Computer Interfaces CSC 115
CSC 223 Microcomputing Systems (no longer offered) CSC 101 and CSC 110 and PHS 205
CSC 230 Real-Time Computer Interfaces (no longer
offered) CSC 115 and PHS 205
CSC 235 Computer Security Basics CSC 105 and CSC 110
CSC 246 Information Visualization One Mathematics course chosen from MAT 108, MAT 110, MAT 120, and MAT 208 and above; plus CSC 110, or equivalent programming experience and
permission of Department Chairperson.
CSC 260 Data Structures And Algorithms CSC 105 and CSC 115
CSC 263 Database Systems CSC 115
CSC 278 Scripting Techniques CSC 115
CSC 279 C + C++ CSC 105 and CSC 115
CSC 295 Computer Architecture And Organization CSC 105 and CSC 115 and PHS 205
CSC 300 Software Engineering I CSC 260
CSC 315A Computer Networks And Data Communications CSC 260
CSC 325 Advanced Programming Techniques CSC 260
CSC 340 Artificial Intelligence CSC 105 and CSC 260
CSC 345 Embedded Systems (Fall 2018 initial offering) CSC 295
CSC 351 Software Engineering II CSC 300; CSC 263 recommended
CSC 367 Internship in Computer Science CSC 260 and permission of Department Chairperson; other prerequisites vary with the project
CSC 376 Topics In Computer Science Topics and therefore Prerequisites vary
CSC 381 Operating System Principles CSC 260
CSC 400 Theory of Computation CSC 260 and MAT 214A
CSC 415 Analysis Of Algorithms CSC 260 and MAT 214A
CSC 425 Computer Graphics and Games MAT 108, or MAT 110, or any MAT course numbered 208 or above, plus CSC 260
CSC 435 Computer And Network Security CSC 315A; CSC 279 strongly recommended
CSC 445 Parallel Processing CSC 115 and CSC 295
CSC 475 Distributed and Cloud Computing Pre- or Co-requisite: CSC 381
CSC 485 Robotics And Computer Vision CSC 260; CSC 279 strongly recommended
CSC 490 Compiler Construction CSC 260
CSC 498 Project Specification & Design Practicum CSC 300 and permission of Department Chairperson
CSC 500 Directed Study In Computer Science I CSC 498 and permission of Department Chairperson; other prerequisites vary with
the project
CSC 501 Directed Study In Computer Science II CSC 498 and permission of Department Chairperson; other prerequisites vary with the project
CSC 520 Computer Science Capstone Project
Specification CSC 260 and CSC 300 and permission of Department Chairperson
CSC 521 Computer Science Capstone Project CSC 520 and permission of Department Chairperson; other prerequisites vary
with the project
PHS 205 Digital Circuit Design MAT 110 or equivalent
Note: detailed course information documents for all CSC courses can be found on the department website
at http://cs.salemstate.edu/dept/index.php?page=184.
Page 5 of 22
Anticipated and Recent Computer Science major Curriculum Changes and Notes
Computer Science major curriculum changes that are anticipated to take effect September 2018
Deletion of CSC 223 and CSC 230
New course CSC 345 Embedded Systems
o Prerequisite: CSC 295
o Three lecture hours plus a scheduled three hour lab
o CSC 345 is an optional course in the Cyber Physical Systems option sequence
o Details can be found at http://cs.salemstate.edu/dept/index.php?page=184.
Computer Science major curriculum changes that took effect September 2017
Deletion of CSC 101 and revision of CSC 105
o Careful review and assessment of the material covered in CSC 101, CSC 105, and PHS 205
determined that there was too much overlap among these three courses. Elimination of
redundant or excessive coverage of certain topics allow the major to delete CSC 101 from the
list of required CS major courses, and to redesign CSC 105 to address essential materials from
CSC 101 and 105.
For all CS majors operating under the Fall 2016 flowsheet or earlier, CSC 101 will no
longer be offered. You can take any CSC-prefixed course above CSC 115 as a substitution
for a CSC 101 or CSC 200A requirement: you will need to request that the department
chair issue a substitution memo to the Registrar’s Office, and will need to provide your
SSU ID and flowsheet year when doing so.
For CS majors operating under the Fall 2017 flowsheet, CSC 101 does not appear on your
CS major flowsheet; the three credits previously required by CSC 101 are replaced by a
third CS major elective.
Deletion of CSC 273 and CSC 311, creation of CSC 279 as a combination of 273 and 311.
o Review of the course content of CSC 273 and CSC 311, coupled with analysis of industry
trends, led to the decision to eliminate separate courses for C (CSC 273) and C++ (CSC 311)
and to instead offer a single course (CSC 279) that covers both languages in a single semester
neither CSC 311 or CSC 273 will be offered.
The initial offering of CSC 279 was Fall 2017; the course will be offered bi-annually
thereafter
o Note that the list of 2nd language courses therefore changed to CSC 278, CSC 279, and CSC
325
Students who have previously taken CSC 273 or CSC 311 will be allowed to use them to
satisfy this requirement
o Details regarding CSC 279 (course description, course goals and objectives, etc.) can be found
at http://cs.salemstate.edu/dept/index.php?page=184.
Changes in course offering pattern
o Among the CSC required courses, CSC 300 will be offered only during the Spring semester
(previously offered Fall and Spring semesters). All other CSC required courses will continue
to be offered based on their recent scheduling pattern.
o Significant changes have been made to anticipated scheduling patterns for most option
sequence courses and most CS major elective courses. Please refer to the Planned Offerings
Fall 2017 through Spring 2021 for details.
Revisions to option sequences:
o Analysis of industry trends and enrollment patterns led to the decision to reorganize the
Page 6 of 22
current set of Option Sequence choices, with the changes taking effect Fall 2017 – the revised
set of choices should allow students more flexibility in completing a sequence, and should also
allow the CS major to run more of its electives on a more stable and predictable basis.
o Note that declaring an option sequence does not guarantee that you will be able to complete
the sequence “in a timely manner” – option-sequence course availability is based on when the
courses come up in the projected offerings schedule coupled with course demand. It is very
important that you work with your advisor in selecting an option sequence and in developing a
backup plan.
Option Sequences
Computation Theory: CSC 400 & CSC 415 (note – this sequence is not scheduled on a regular
basis – see the department chairperson for details and availability)
Computer Graphics and Visualization: choose two from CSC 246, CSC 340, CSC 425
Cyber Physical Systems: CSC 340 plus one from CSC 345, CSC 485
Networking and Cloud Computing: CSC 315A plus one from CSC 435, CSC 445, CSC 475 (note –
CSC 445 is not scheduled on a regular basis – see the department chairperson for details and
availability)
Software Engineering: CSC 351 plus one from among CSC 263, CSC 325
o CS majors who have declared an Option Sequence prior to Fall 2017 may need to work with
their advisor and the department chairperson to work out any substitutions that may be
necessary. Students operating under the old (pre-2017) Option Sequence requirements will
require a substitution memo from the department chair to the Registrar’s Office if they need a
substitution for a specific course (see the Paths Forward table for details).
o CS majors who failed to declare an Option Sequence by May 10, 2017 will select from the list
of options above, and will require a substitution memo from the chair of the department.
Paths Forward for Pre-2017 Option Sequences
AI & Robotics: CSC 340 & CSC 485 Should be able to complete sequence
Computer Graphics and Visualization: CSC 246 &
CSC 425 Should be able to complete sequence
Computation Theory: CSC 400 & CSC 415 May be able to complete sequence
Computer Networking & Security: CSC 315A &
CSC 435 Should be able to complete sequence
Embedded Systems: CSC 223 & CSC 230 CSC 485 and CSC 345 – will require
substitution memo from chair
Distributed and Cloud Computing: CSC 315A &
CSC 475 Should be able to complete sequence
Parallel Computing: CSC 445 & CSC 475 May be able to complete sequence
Object Oriented Programming: CSC 311 & CSC
325
CSC 279 and CSC 325 – will require
substitution memo from chair
Software Engineering: CSC 263 & CSC 351 Should be able to complete sequence
The deletion of CSC 101, CSC 273, and CSC 311 led to prerequisite changes for several courses.
These changes are summarized here:
Course Current Prerequisite(s) Revised Prerequisite(s) CSC 235 CSC 101 and CSC 110 CSC 105 and CSC 110
Page 7 of 22
CSC 260 CSC 101 and CSC 115 CSC 105 and CSC 115
CSC 435 CSC 315A; CSC 273 or CSC 311
strongly recommended CSC 315A; CSC 279 strongly recommended
CSC 485 CSC 260; CSC 273 or CSC 311
strongly recommended CSC 260; CSC 279 strongly recommended
Computer Science major curriculum changes that took effect September 2016
A significant number of computer science (CSC-prefixed) courses were renumbered effective Fall
2016. The renumbering was implemented so that CSC course numbers would more accurately
reflect approximately when they might be taken in the context of a four-year curriculum plan.
The course renumberings were implemented in such a way that SSU's Degree Tracker system can
automatically recognize equivalencies. As an example, Operating Systems was numbered CSC
280 through Spring 2016, but is now numbered CSC 381. Students whose flowsheets require CSC
280 can register for CSC 381 and Degree Tracker will automatically recognize CSC 381 as
satisfying their CSC 280 requirement.
It bears explicitly mentioning that functionally no flowsheet requirements changed as a result of
these course renumberings. Some courses have different numbers, but they have the same title and
cover the same material.
Because renumbered courses have been intentionally implemented to be academically equivalent
to their originally-numbered courses, it is important to note that:
o To retake an "old number" course, simple register for the equivalent "new number" course –
Degree Tracker will handle the equivalency details.
o Taking a "new number" course when you have already taken the equivalent "old number"
version of the course does not earn you additional credits!
Taking any course automatically causes Degree Tracker to check if registration would be
classified as a retake and if so Degree Tracker should warn you that you are retaking the
course. If you attempt to register for a CSC course and are informed that it would be a
retake, and you do not understand why you are seeing this information, please:
(a) take a screenshot of the information, then
(b) email your academic advisor, explain what you are attempting to do and why you are
attempting to do it, and include the screenshot.
If you are not sure if a CSC course you are thinking about registering for is equivalent to
another CSC course, check with your academic advisor in Computer Science before you
register!
Older Computer Science major curriculum Changes of Note:
Changes to Computer Science Major courses effective September 2015
Changes in prerequisites:
CSC 300: effective Fall 2015, the prerequisite for CSC 300 is CSC 260.
CSC 311: effective Fall 2015, the prerequisite for CSC 311 is CSC 260.
CSC 245A and CSC 271 were deleted from the Computer Science Department's course
offerings effective Fall 2015. Both courses had not been offered for many years.
Changes in course offering pattern:
CSC 300 will be offered Fall and Spring semesters (previously offered Spring semester
Page 8 of 22
only). (Note – this scheduling pattern has since been changed back to CSC 300 being
offered Spring semester only)
General advising notes to CSC majors:
Master Schedule of Spring 2018 courses
Once the Spring 2018 Day Master Schedule is published, a PDF will be available at
http://cs.salemstate.edu/dept/index.php?page=6. Note that this document is "fixed in time" – it
does not and will not reflect schedule adjustments made after publication, e.g. adjustment due to
cancellations, new sections being created, and/or changes to room, professor, and meeting time.
As a document to use now (during the formal academic advising period) for planning your Spring
2018 schedule, it's an excellent tool. When it comes to actually registering for classes or if you're
looking to change your schedule after you register for classes, be sure to use Navigator to check
for the latest information on courses.
Advising and Registration dates for Spring 2018 Day courses
Advising Dates for DAY students: October 16 – November 1, 2017
Sign up for an appointment with your Computer Science Department faculty advisor –
appointments are available on a "first come, first served" basis. Detailed instructions for signing
up are posted on the bulletin board to the left of MH 209. Simple instructions: go to
http://cs.salemstate.edu/advising/, click Advisee, use your SSU ID and SSU email address to log
in, and then click on Available Appointments to view available appointments and select one.
NOTE: Students who do not initiate registration until after November 27, 2017 will be charged a
late registration fee of $25.
Registration Dates: DAY student pre-registration begins at 7:00 am each day:
Senior Registration: October 31, Priority seniors 7:00 a.m., all seniors 3:00 p.m.
Junior Registration: November 1, Priority juniors 7:00 a.m., all juniors 3:00 p.m.
Sophomore Registration: November 2, Priority sophomores 7:00 a.m., all sophomores 3:00 p.m.
Freshman Registration: November 3, Priority freshmen 7:00 a.m., all freshmen 3:00 p.m.
From the Registrar’s Office: Be advised that priority registration appointments for the Spring 2018
registration process have been assigned within the student’s class year assignment. All priority
appointments will begin at 7:00 am on the day each class will register. This policy has been
enacted for several important reasons, including the facilitation of academic progress and equity
for all of our students according to their academic plans of study and to more effectively manage
and distribute the load of students registering each of the first four days of registration. Students
without priority appointments will register at 3:00 p.m. on their assigned class registration day.
Note: Open Enrollment for matriculated SCPS students (School of Continuing and Professional
Studies, i.e. evening) students in day division classes begins on November 27.
Note that in order to register for Spring 2018 courses you need a registration
PIN, and the only way to get that PIN is to meet with your academic advisor – it
is a violation of SSU and CS major advising policy to give a student their PIN if
advising hasn't taken place.
Page 9 of 22
Advising and Registration dates for SCPS Spring 2018 evening courses
Registration for Spring 2018 SCPS classes begins October 30 for currently-matriculated students
and for all others on November 6.
Faculty advisor contact information
Mikhail Brikman (on medical
leave Fall 2017) mbrikman@salemstate.edu MH 207C 978.542.7095
Bo Hatfield (chair) (on
sabbatical Spring 2018) bhatfield@salemstate.edu MH 207B 978.542.6979
Joe Kasprzyk (acting chair,
Spring 2018) jkasprzyk@salemstate.edu MH 208B 978.542.6978
Komalpreet Kaur kkaur@salemstate.edu MH 208C 978.542.2833
Sotirios Kentros skentros@salemstate.edu MH 207A 978.542.2832
Beifang Yi byi@salemstate.edu MH 211A 978.542.7246
Lakshmidevi Sreeramareddy lsreeramareddy@salemstate.edu MH 207D 978.542.2379
Manish Wadhwa mwadhwa@salemstate.edu MH 311B 978.542.2627
Account “Holds” and “Limits” and their effect on registering for courses:
SSU will place registration holds on students for a variety of reasons, some of which are:
more than 30 credits have been completed but one or more Level I Competency-based skills
requirements (Mathematics or Reading) have not been satisfied
a bill has not been paid
proof of health insurance and/or vaccinations has not been provided to SSU
being on probation and failing to have met with Academic Advising well prior to registering
for courses
SSU will limit the number of credits for which a student can register for a number of reasons, some of
which are:
academic probation
participation in certain support programs
Students with a registration hold will not be able to register for any courses until they have satisfied
the conditions necessary to remove all holds; students with limits are able to register, but only under
the constraints of the limits. It is therefore critical that students use Navigator ASAP to see if any
holds or limits have been put in place: if any holds exist, it is the student’s responsibility to rectify
the situation, and if at all possible to rectify it before registration begins. Note that a faculty advisor
can determine if a hold exists, but not its cause – the student must log into Navigator to determine the
specifics. If you have a hold and are not sure how to proceed, consult with your academic advisor.
IMPORTANT: if you are a DAY student, note that SPCS (evening,
DCE, Continuing Education) courses require the payment of separate
(additional) tuition and fees, the only exception being evening course
sections that are co-listed with Day course sections
Page 10 of 22
Note that the existence of a hold does not and should not prevent you from meeting
with your academic advisor! The existence of a hold prevents registration – advising
can and should take place during the scheduled period, otherwise once the hold is
resolved, you will still be unable to register because you will not have been advised
and therefore not have received your registration access PIN.
Restriction on the number of retakes for a course: Matriculated undergraduate students are
allowed to attempt a specific course a total of three times, including all attempts and all grades,
including attempts in which the student has a grade of “W,” “I,” or “F.” Students may repeat a
specific course one time without any approval required, but a second repeat (the third attempt) will
require the approval of the Academic Advising Office or the Registrar’s Office prior to registering for
the course. Navigator stops students from being able to register for the course when they try to
register for the third or greater time. Repeats beyond that point are for extenuating circumstances only
and will require an appeal to the Office of Enrollment Management. As always, once a course is
repeated, only the higher grade earned is used to calculate the GPA, and all attempts will remain on
the official transcript.
SSU general education (“gen ed”) requirements: Effective for students admitted to SSU as of Fall
2014, the gen ed requirements (the "left side of the flowsheet") changed very significantly. Details
regarding the changes were publicized in a number of ways via a number of different SSU offices.
The following notes are aimed at students who are currently at SSU and have already declared the
Computer Science major, and are intended as general guidelines:
Students who had already declared a major effective before Fall 2014 can choose to continue
under the requirements of their current flowsheet – that is, you are NOT required to switch to the
new gen ed requirements that went into effect Fall 2014.
Students who had already declared a major effective prior to Fall 2014 can choose to switch to the
requirements of the flowsheet that took effect Fall 2014, or any later flowsheet.
Students who declared a major effective September 2014 through January 2016 operate under the
General Education Transition Model. This model allows students to satisfy gen ed requirements
by taking courses that are designated as being certified a current gen ed category and/or by taking
courses that were certified in certain categories under the old gen ed rules. Details of the General
Education Transition Model are far beyond the scope of this document – see your academic
advisor for details!
Students who declare a major effective Fall 2016 or later will operate under the General Education
Rules that took effect in September 2014 and are not eligible to operate under the Transitional
Model. This means that gen ed requirements can only be satisfied by taking courses that are
certified in a current gen ed category.
The details of the changes to the gen ed requirements that took effect on all flowsheets effective
Fall 2014 and later are beyond the scope of this document, but as Computer Science majors there
is something specific to keep in mind:
o Support courses CAN be used to satisfy gen ed requirements in both current and future
flowsheets (so-called “double dipping” – the course receives credit once, but satisfies multiple
flowsheet requirements).
Page 11 of 22
Summary
o If you decided to stay with a pre-2014 flowsheet and you declared the Computer Science
major prior to Fall 2014, the new gen ed requirements do not affect you.
o If you declared the Computer Science major effective September 2014 or later, or switch to a
Fall 2014 or later CS flowsheet, the changes do affect you:
If you are operating under the Fall 2014 or Fall 2015 CS flowsheet, you can make use of
Transitional Model gen ed equivalencies
o If you are operating under the Fall 2016 or later CS flowsheet, you cannot make use of
Transitional Model gen ed equivalencies
Registering for Science courses: Note that many of the science courses that fulfill the Science course
requirements of the Computer Science major are open to only majors in their disciplines for the first
four days of registration. Attempting to register for one of these courses (e.g. GLS 100, BIO 131)
during the first four days of registration is usually problematic because Navigator displays all sections
of these courses as “closed”, which many interpret as “already filled to capacity”. Waiting until the
fifth day of registration usually results in some of the course sections reclassified as “open”. If your
scheduling situation requires an earlier resolution, you can contact the chairperson of the host
department (Biology (MH 404), Chemistry & Physics (MH 404), Geology (MH 331)). You must
explain that you are a Computer Science major, wish to enroll in a specific course, and that you have a
limited set of courses that satisfy the Science requirements of the Computer Science major. You may
receive an electronic permission to register, otherwise they will indicate that you should wait until the
day after Freshmen registration (the fifth day of registration) and try then.
General Education (“gen ed”) requirements in the specific context of the Computer Science
major: As indicated above, courses taken outside the major discipline are candidates to "double dip"
and be used to satisfy multiple flowsheet requirements depending on the certifications for a specific
course; in certain very specific circumstances, courses within the major discipline can also "double
dip". "Major discipline" in the context of the Computer Science major includes only CSC-prefixed
courses.
While you can use any courses with the appropriate certifications to satisfy the preceding
requirements, note that using the courses specified above will result in you having additional free
elective credits, thus broadening your selection of potential courses.
ITC 183 Cybersecurity: A Personal and Professional Responsibility is a course offered by the
Computer Science Department but is not CSC prefixed and thus is not within the "major discipline".
ITC 183 has PGR (Personal Growth and Responsibility) general education certification. Quoting from
the course description, "This course presents a user-level view of computer and network security and
W-II requirement: automatically satisfied by the required major discipline
course CSC 300
W-III requirement: automatically satisfied by the required major discipline
course CSC 521
QR requirement: automatically satisfied by the required major support course
MAT 147
SR requirement (two courses): automatically satisfied by the required major
support course "sequence" of two science courses (see your flowsheet for
eligible courses).
Page 12 of 22
includes discussion of topics you must know to be responsible (personally and professionally)
members of our social environment as individuals and work force participants." (italics added).
Computer Science majors will find that ITC 183 offers a complementary perspective on cyber security
(user-centric vs. the technology-centric perspective of CSC-prefixed security courses) and
simultaneously satisfies a gen ed requirement.
A typical Computer Science course load for students in their first semester as a major will consist of
CSC 105, CSC 110, a Mathematics support course, and two additional courses that address SSU
General Education requirements (the left side of the flow sheet). A detailed semester-by-semester
schedule of suggested courses can be found here.
A typical Computer Science Department course load for students in their second semester as a major
will consist of CSC 115, a Mathematics support course, two additional courses that address SSU
General Education requirements and either CSC 105 (if not taken during the first semester) or an
elective (chosen in consultation with your academic advisor). A detailed semester-by-semester
schedule of suggested courses can be found here.
Transfer students who are admitted to the major and bring more than twenty transfer credits
and/or more than twelve Computer Science major (CSC-prefixed) credits with them should
consult with the department chairperson during orientation and/or with their Computer Science
faculty advisor in order to minimize scheduling bottlenecks and to insure appropriate progress
through the major. You can determine who your advisor is via your Navigator account.
Sophomores should take CSC 260 and PHS 205 in the Fall. CSC 260 is a prerequisite for many CSC
courses numbered above it (and specifically for CSC 300, which is ideally taken in the Spring
semester of the Sophomore year), so it is important that this course be completed as quickly as is
practical. Note that CSC 260 involves a large amount of programming. PHS 205 is a prerequisite for
CSC 295, which is a required course and which should be taken in the Spring semester of the
Sophomore year. In addition, at least one Math support course should be taken, along with two
additional University General Education courses (one of which should be the first semester of a lab
sequence - see your Computer Science major flowsheet for a detailed list of options).
Note that CSC 260 is sometimes offered during the summer - students, particularly transfer
students, can take CSC 260 during the summer in order to accelerate their graduation date
and/or to permit upper-level courses to be spread across another semester. Students who
FAILURE TO PLAN FUTURE SEMESTER SCHEDULES BASED ON PROJECTED COURSE
AVAILABILITY IS LIKELY TO RESULT IN SIGNIFICANT DELAYS IN GRADUATION.
WHILE THIS OBSERVATION IS RELEVANT FOR ANY COMPUTER SCIENCE MAJOR, IT IS
PARTICULARLY IMPORTANT FOR TRANSFER STUDENTS WHO BRING A SIGNIFICANT
NUMBER OF TRANSFER CREDITS WITH THEM. THEREFORE, IF YOU RECENTLY
TRANSFERRED INTO SSU WITH A SIGNIFICANT NUMBER OF TRANSFER CREDITS, IT IS
VERY IMPORTANT THAT YOU MEET WITH YOUR ACADEMIC ADVISOR ASAP (DON’T
WAIT FOR THE FORMAL ACADEMIC ADVISING PERIOD!) IN ORDER TO DEVELOP A
CUSTOMIZED PLAN FOR WHEN YOU WILL BE REGISTERING FOR MAJOR COURSES.
FAILURE TO DEVELOP SUCH A PLAN MAY RESULT IN TAKING AN EXTRA SEMESTER OR
MORE TO COMPLETE YOUR DEGREE REQUIREMENTS.
Page 13 of 22
pursue this path should consult with their advisor as to the appropriate replacement for CSC
260 in their Fall Sophomore schedule.
Sophomores should take both CSC 300 and CSC 295 in the Spring; if you can take only one, consult
with your advisor as to which should take precedence. Note that CSC 300 involves significant lab
time and some programming, while CSC 295 does not include a formal lab: the workload of taking
both courses in the same semester should be manageable and provides for the greatest scheduling
flexibility in future semesters. In addition, at least one Math support course should be taken, along
with two University General Education courses (one of which should be the second semester of a lab
sequence). Note that CSC 295 and CSC 300 are both currently offered on a "spring only" basis.
Students should begin to talk to their advisor about selecting an Option sequence in the semester in
which they take CSC 260, and should have determined their selection no later than the end of the
following semester. Note that most Option sequences involve at least one course that runs only in
alternating years. Early planning and selection of the Option sequence can help to avoid being unable
to complete a preferred Option selection or being forced to complete the preferred choice during the
senior year and therefore making it difficult to incorporate the topic area into the required capstone
project.
The following Option Sequences are generally available (the faculty member(s) with the greatest
involvement is/are listed in parentheses – contact them if you have detailed questions about topics,
course format, etc.).
Note that some of these sequences involve courses that are not scheduled on a regular basis due to
low overall demand – making your interest in a specific Option Sequence known to your academic
advisor early is very important in allowing the department to schedule courses appropriately.
These Option Sequences are available to students regardless of date of matriculation. For
information regarding the content and applicability of a specific Option Sequence, please see your
advisor and/or the faculty member listed next to the Option.
Option Sequence Faculty with greatest
involvement
Computation Theory: CSC 400 & CSC 415 (note – this sequence is not
scheduled on a regular basis – see the department chairperson for details
and availability)
Kentros, Yi
Computer Graphics and Visualization: choose two from CSC 246, CSC
340, CSC 425 Yi
Cyber Physical Systems: CSC 340 plus one from CSC 345, CSC 485 Kaur
Networking and Cloud Computing: CSC 315A plus one from CSC 435,
CSC 445, CSC 475 (note – CSC 445 is not scheduled on a regular basis –
see the department chairperson for details and availability)
Hatfield, Kentros
Software Engineering: CSC 351 plus one from among CSC 263, CSC 325 Kasprzyk
Any course listed as part of an Option Sequence can be used as a major elective, but only if the
course is not from your declared Option Sequence. For example, if you choose the Computer
Networking and Security Option and thus take CSC 315A and CSC 435, you cannot list either a
Page 14 of 22
second time on your flow sheet as a major elective - you could take CSC 263, CSC 311, CSC 325, etc.
as major elective(s), since they are not part of this specific example option.
All students must take a “second programming language” course (the language introduced in CSC
110, currently Java, is considered the first) - the current choices are CSC 278 (scripting languages),
CSC 279 (C + C++), and CSC 325 (C#). Note that if CSC 311 or CSC 325 is taken as part of an
Option sequence, it can be used to satisfy the "second programming language" requirement, but
do note that credit for the course is received only once.
Note – CSC 273 and CSC 311 were deleted from the list of CS major courses effective Fall
2017, and replaced with CSC 279. Students operating under a CS major flowsheet dated Fall
2016 or earlier and who wish to use CSC 279 to satisfy their “second programming
language” requirement will be required to have the department chair issue a substitution
memo to the Registrar’s Office – the substitution request is automatically granted, but must
be explicitly requested.
Certain courses within the curriculum have a very heavy programming component - scheduling two or
more of these courses in a single semester has a high potential for causing significant problems with
time management. Spreading these courses out to distribute the time load is preferable: if time
constraints or course availability dictates otherwise, students should consult with their advisor about
the most appropriate combinations. Note that, aside from the required CSC 110/115/260 sequence,
most students take no more than two or three out of the remaining heavy programming courses: if you
take CSC 260 during the first semester of your sophomore year, the remaining heavy programming
courses can be spread across the remaining five semesters so that no two need be taken in the same
semester.
Courses with very heavy programming components (required courses are presented in bold
typeface):
CSC 110, CSC 115, CSC 260, CSC 278, CSC 279, CSC 325, CSC 425,
CSC 521, PHS 205.
Courses with moderate programming components (required courses are presented in bold typeface):
CSC 212, CSC 223, CSC 230, CSC 235, CSC 246, CSC 263, CSC 295, CSC 300,
CSC 340, CSC 345, CSC 351, CSC 435, CSC 445, CSC 475, CSC 485.
Courses that are predominantly theoretical (minimal programming or the programming is logically
simple) (required courses are presented in bold typeface):
CSC 105, CSC 315A, CSC 381, CSC 400, CSC 415, CSC 520.
Note - while the amount of programming involved in CSC 521 varies depending on the selected
project, it is usually significant enough to fall into the “very heavy” category.
A number of non-CSC courses are required in the Computer Science major - these are formally
called "Support" courses.
Mathematics (5 courses total):
o MAT 147, MAT 214A, MAT 220, and MAT 221
o one (1) additional MAT course of three or more credits with MAT 220 or MAT 221
as a prerequisite, or another MAT course with permission of the Computer Science
Chairperson
Page 15 of 22
Note that while MAT 218 Introduction to Mathematical Computing has a prerequisite
of MAT 220, MAT 218 is a one-credit course, and therefore may not be used as the
"additional" Mathematics support course.
Science (4 courses total)
o PHS 205
o a two-semester lab sequence, chosen from: BIO 131&132, CHE 130&131, CHE
130&212, PHS 211A&212A, PHS 221&222, GLS 100&102
o one additional Science course, chosen from: BIO 131, CHE 130, CHE 212, GLS 100,
GLS 102, PHS 211A, PHS 221 (note - the course cannot be part of the elected two-
semester lab science sequence). Alternatives to the courses in this list must be discussed
with your academic advisor before registering, and a substitution memo must be issued
by the department chair to the Registrar, before you register - it is most unwise to assume
that an alternative science course will be automatically approved!
Prior to Fall 2017, Salem State University limited the maximum number of credits within a discipline
(in the case of the Computer Science major, CSC-prefixed courses) that can be taken for graduation
credit to 55. Effective Fall 2017, this cap has been eliminated – students are free to take as many
credits “in the discipline” as they wish.
Students who are matriculated in (have formally declared) the Computer Science major may, at their
discretion, request to switch their graduation requirements to those of a flowsheet with a more recent
effective date than the one in effect when they were accepted into the major. For example, a student
who matriculated in September 2015 may request to graduate under the flowsheet in effect in
September 2016, or September 2017, but not September 2014 or earlier. Any student who wishes to
switch to a flowsheet with a more recent effective date should:
Discuss the advisability of such a change with his or her academic advisor, and only then
fill out a form to change their flowsheet, stating the effective date of the desired flowsheet.
The form is available in the Registrar’s Office and in the Computer Science Department
office (MH 207)
Note that once a switch is made, it cannot be reversed. This means that it is very important to
understand all of the ramifications of changing your flowsheet before a switch is made.
Current and recent flowsheets can be found at
http://cs.salemstate.edu/dept/index.php?page=174.
Computer Science major Capstone Project information
CSC 520 Computer Science Capstone Project Specification and CSC 521 Computer Science Capstone
Project should be thought of as a particularly strongly-integrated course sequence. In CSC 520 the
The required Mathematics support courses satisfy most of the requirements of a
Mathematics minor (MAT 220, MAT 221, and three additional MAT courses from a list
of MAT 147, MAT 214A, MAT 234, and all MAT courses numbered 300 or higher, with
only one of MAT 214A and MAT 147 being eligible). Taking one additional MAT
course beyond the required support courses will complete a Mathematic minor. Note that
a minor is declared by filling out a form available from the Registrar's Office or online.
Page 16 of 22
student describes, in detail, what he/she will implement in CSC 521. CSC 520 is a one-credit course
during which the student selects a topic area for her/his required CSC 521 project and develops a
formal proposal: the proposal describes in detail the objectives of the project, the tools to be used, any
benchmarks that must be achieved during the implementation of the project, project deliverables,
grading scheme, etc. CSC 520 does not involve implementing the capstone project - it involves
selecting and formalizing what the student's capstone project will be. Once CSC 520 has been
completed, the student enrolls in CSC 521 and implements the proposal that was created in CSC 520.
Any faculty member supporting the Computer Science major may be approached to serve as the
supervisor for the CSC 520 / CSC 521 sequence. Students should talk to potential supervisors early in
the semester prior to the semester in which they plan to actually register for CSC 520; ideally,
students will begin seriously considering potential projects no later than their junior year and talk to
faculty during the junior year. CSC 520 must be completed (that is, the project proposal must be
complete and approved) with a passing grade before CSC 521 can be registered for, therefore, CSC
520 and CSC 521 may not be taken in the same semester.
Details regarding the objectives, goals, procedures, and requirements for the CSC 520 /CSC 521
sequence can be found at http://cs.salemstate.edu/dept/index.php?page=184 (use either the CSC
520 or CSC 521 link in the Attachments pane – both links reference the same content).
CSC 520 and CSC 521 are available on a Directed Study basis every Fall and Spring semester.
Arrangements can sometimes be made to take these courses during the Summer, but only with
careful planning and the consent of the faculty member who is supervising the project - if you are
interested in either CSC 520 or CSC 521 during the summer, you must complete the process of
identifying a faculty supervisor and getting them to agree to work during the summer early in the
preceding Spring semester. CSC 520 and CSC 521 do not meet at formally scheduled times:
arrangements are made between the student and a faculty supervisor on a case-by-case basis.
Note the following:
Page 17 of 22
A cs-majors listserv for Computer Science majors and minors may be subscribed to by going to
the following address while logged into the SSU network:
http://elists.salemstate.edu/mailman/listinfo/cs-majors
In the “Subscribing to cs-majors” pane fill in your full name (failure to fill in your full name
WILL result in your application being rejected) and email address (please use your SSU email
address), then select a password, and then click subscribe - that’s all there is to it. Listserv members
will receive notice of items of relevance to students in the Computer Science program: upcoming
advising / registration dates, notice of added and cancelled courses and changes in scheduled
courses, advising notes (including this notice, delivered to your computer’s front door at least twice
a year!), and notice of potential internships and employment opportunities.
In addition to the cs-majors listserv, evening-division students are encouraged to subscribe to
cs-eveningmajors, the address for which is accessible only while logged into the SSU network:
http://elists.salemstate.edu/mailman/listinfo/cs-eveningmajors
This list is used to post information specific to evening division issues; note that evening division
students should also subscribe to cs-majors.
It is the student’s responsibility to initiate contact with potential project supervisors, and
it is the student’s responsibility to complete the paperwork necessary to register for
CSC 520 and CSC 521.
A CSC 520 information session that will discuss capstone project requirements,
potential project topics, the relationship between CSC 520 and CSC 521, etc. will be
held on the second Monday of the semester, usually at 11:00 in MH 210. Attending
this meeting is required of all students who intend to register for CSC 520 during the
semester.
Registration for CSC 520 (and CSC 521) cannot be completed via Navigator –
registration requires a paper form (SSU's Directed Study form, available in the
Computer Science offer), to be completed early in the semester in which the course is
to be taken.
The Directed Study form must be completed and all signatures (student, project
supervisor, department chairperson) collected within two weeks of the CSC 520
information session (about four weeks into the semester).
o Failure to complete the registration process in a timely fashion will result in
registration not being authorized – given that the great majority of CS majors
take this two course sequence during their last two semesters at SSU, this
means that you'll postpose your graduation by at least one semester if you
miss the registration deadline.
Reminder: as indicated above, CSC 520 is a pre-requisite for CSC 521, therefore CSC
520 and CSC 521 cannot be taken in the same semester.
Page 18 of 22
Programming Club
The Programming Club welcomes everyone who has an interest in programming and/or programming
languages. Club members can benefit from club activities in two ways:
improve their programming skills by targeting challenging programming projects or topics in
preparation for participation in regional or national Programming Contests
deepen their understanding by providing assistance to others who are interested in programming
languages and/or problem solving but experience difficulty in applying concepts when it’s time to
solve problems and write code (as the old saying goes, “teaching others is the best way to learn”).
The Programming Club conducts a weekly meeting – announcements of meeting time, location, and
planned activities are posted to the cs-progclub listserv (to subscribe to the club mailing list, visit and
register at http://elists.salemstate.edu/mailman/listinfo/cs-progclub). The date, time, and location of the
initial meeting is usually posted in the first two weeks of the semester. Please contact Prof. Beifang Yi
(byi@salemstate.edu) for additional information.
The Programming Club conducts a weekly meeting (in Fall 2017, we meet on Thursday 5pm in
MH209). For further information, please contact Prof. Beifang Yi at http://cs.salemstate.edu/~byi/ or
Prof. Sotirios Kentros at http://cs.salemstate.edu/dept/index.php?page=296.
Robotics Club
The Robotics club welcomes all students with an interest in robotics, computer vision, or embedded
systems. Students in the club will work with ActivityBot and Finch robots. Students can design, build,
and translate their own ideas into robotic activities.
Robotics Club provides a fun learning environment for students to come together and study the field
of robotics. It helps them foster their critical thinking, team building, social, and leadership skills.
Club activities provide students with the opportunity to pursue their interest in robotics outside of the
classroom, to work on their capstone projects, to learn from other students, and to complete projects that
can be used to demonstrate their abilities when they are looking for a permanent job.
Please contact Prof. Komalpreet Kaur (kkaur@salemstate.edu) for additional information.
Page 20 of 22
Undergraduate Academic Program Degree Map
First Year
Semester
credits: 17
Semester
credits: 16
Total First Year: 33
Cumulative Credits: 33
Second Year
Semester
credits: 15
Semester
credits: 16
Total Second Year: 31
Cumulative Credits: 64
Degree Program: Bachelor of Science, Computer Science - AY 2016-2017 Note: - Course categories:
Major required Major elective General Education Support (math&sci) Free Elective
Semester I - Fall Course Number Course category Credits
CSC 101 Survey of Computer Science I major 3
CSC 110 Software Design & Programming I major 4
MAT 110 Precalculus § free elective 3
Writing I (W-I) gen ed Ω gen ed 3
gen ed (preferably SR) Ω gen ed 4
Semester II - Spring Course Number Course category Credits
CSC 105 Survey of Computer Science II major 4
CSC 115 Software Design & Programming II major 4
gen ed (preferably SR) Ω gen ed 4
MAT 220 Calculus I support 4
Semester III - Fall Course Number Course category Credits
CSC 260 Data Structures & Algorithms major 4
MAT 221 Calculus II support 4
PHS 205 Digital Circuit Design support 4
gen ed (SR if not taken freshman year) Ω gen ed 3
Semester IV - Spring Course Number Course category Credits
CSC 295 Computer Organization & Architecture major 3
CSC 300 Software Engineering I major 4
gen ed (SR if not taken freshman year) Ω gen ed 3
MAT elective (three-credit MAT course with MAT
220 or MAT 221 as a prerequisite) support 3
gen ed (SR if not taken freshman year) Ω gen ed 3
Page 21 of 22
Third Year
Semester
credits: 15
Semester
credits: 17
Total Third Year: 32
Cumulative Credits: 96
Fourth Year
Semester
credits: 14
Semester
credits: 10
Total Fourth Year: 24
Cumulative Credits: 120
Semester V - Fall Course Number Course category Credits
CSC 381 Operating System Principles major 3
CSC elective / option major 4
MAT 214A Discrete Structures support 4
Science elective (chosen from list specified on
flowsheet) support 4
Semester VI - Spring Course Number Course category Credits
CSC elective / option major 4
free elective free elective 4
gen ed Ω gen ed 3
MAT 147 Statistics support 3
gen ed Ω gen ed 3
Semester VII- Fall Course Number Course category Credits
CSC 520 Computer Science Capstone Project
Specification (specification for the capstone
project implemented in CSC 521)
major
1
CSC elective / option major 4
gen ed Ω gen ed 3
gen ed Ω gen ed 3
free elective or gen ed Ω free elective 3
Semester VIII - Spring Course Number Course category Credits
CSC 521 Computer Science Capstone Project major 3
free elective or gen ed Ω free elective 3
CSC elective / option major 4
free elective (if necesssary) free elective free elective (if necesssary) free elective
Page 22 of 22
Additional Notes and Comments: § MAT 110 Precalculus is the appropriate entry-level Mathematics course for many Computer Science majors, but is not a required course. If your background permits, MAT 110 can be skipped, with MAT 220 Calculus I being taken in its place and future semester's MAT courses adjusted accordingly. If you are unsure as to whether to take MAT 110, please consult with the Chairperson of the Mathematics Department and/or with your advisor in the Computer Science Department. Taking MAT 110 will reduce the number of free elective credits by 3.
Ω All SSU students must satisfy general education ("gen ed") and writing requirements in the following areas: CEA, CS, FYS, HP, OC, PGR, QR, SR(2), WC, W-I, W-II, W-III (visit General Education Curriculum Overview for details). Note that W-II can be satisfied by using the CS major required course CSC 300, W-III can be satisfied by using the CS major required course CSC 521, QR can be satisfied by using the CS major required course MAT 147, and the two required SR courses may be satisfied by using two of the CS major required Science support courses
Ψ Students may take Summer semester courses as a means of either accelerating the date of graduation or of lightening the credit load during Fall/Spring semesters. Note that most General Education requirements and some Mathematics Support courses are available during the Summer semester. The availability of Computer Science courses during the Summer semester is generally limited to CSC 100 and CSC 110, with CSC 105, CSC 115 and CSC 260 offered occasionally.
Science courses used to satisfy Computer Science major support course requirements must be chosen from a specific list - please see the flowsheet in effect the year you declared the Computer Science major for details. Choosing a science course that is not on the approved list will not satisfy a CS major science support course requirement and will result in a decrease in the number of free elective credits available and may result in your needing to take more than 120 credits in order to graduate.
Recommended