Below is information related to registration including enrollment appointments, advising, permission numbers and waitlists. Please read this thoroughly, before contacting your advisor.

Enrollment appointments

Spring 2024 registration by appointment is Monday, Nov. 13, 2023 - Friday, Nov. 17, 2023. If you log into MySSU and click on "Student Center", you will see your registration appointment time listed on the right (assigned, a week before the earliest registration appointment). Many CS and GE classes will fill fast, so register at the beginning of your appointment to have the best chance of getting the courses you need. For more information, see the How to Register page at the Registrar's site.


Your CS advisor’s name (Drs. Gill, Gondree, Kooshesh, or Rivoire) will be visible in your MySSU page. Please contact them if you have questions regarding registration and for general advice on how to plan the remainder of your curricular plan. If you do not have an advisor assigned, see the department chair.

Other advising resources include Jami Grosser for lower-division CS and the Advising Center for anything that's not CS-specific. For additional information regarding advising, you can look at the S&T advising web page.

Prerequisites and Grades

A grade of C- or better (CR is fine) is required for any course that is a prerequisite to a CS course. MySSU enforces prerequisite courses, but it doesn’t enforce this C- minimum grade. As a result, MySSU may allow you to enroll in a course even when you haven’t fulfilled the C- grade prerequisite, but you will not be allowed to remain in that course. We identify these cases before the semester begins, and administratively drop students who have not made the minimum grade in a prerequisite.

After grades are posted, we will check to make sure that all students have passed the prerequisites for next semester's courses. If your Academic Requirements Report in MySSU does not show a green check mark for each of your relevant prerequisite courses at that time, we will contact you before registration reopens. You should be prepared to prove that you have met all prerequisites (for example, taken at another school) by the beginning of next semester. Otherwise, you will be administratively dropped from the course during the add/drop period.

Courses that are Full and Waiting Lists

Although the Computer Science courses fill quickly, our waitlists also move quickly. Especially for courses that have MATH 161, CS 115, CS 215, or CS 315 as a prerequisite, spots are likely to open up after the current semester's grades are posted and students who didn't pass the prerequisites drop the course.

If you are waitlisted, however, you need to be sure that you will actually be able to move into a spot that opens up. Even if there is an open spot, you won’t get it if it would leave you with too many units or with a time conflict. We have seen students advance from #6 on the waitlist into an open spot because students #1-#5 had one of these issues that prevented them from claiming it. Use the waitlist SWAP feature - for details see How to Waitlist a Class.

In any event, if you want to take a course and can't get it, you need to be on the waitlist. This is our only mechanism for keeping track of who needs a given course.

Who Needs Permission Numbers?

As mentioned above, MySSU enforces prerequisites for CS classes. This is a potential problem for you if:

  1. You took the prerequisite at another university, and we had to fill out paperwork to make it count toward your SSU CS major.
  2. You passed the prerequisite on the third or later attempt.
  3. You took the prerequisite at both SSU and another institution.
  4. You got a D or F in CS 115, 215, or 315 in a prior semester, and you want to retake that course. (See the "Repeat Policy" section below for more, though.)
  5. You haven't taken the prerequisite yet, but you're planning to over the break.

If you're in categories 1, 2, 3, or 4, we should have auto-generated permission numbers for all the classes you're eligible to take. Please use the link below to confirm that you have permission numbers for these classes, and let me know as soon as possible if you think any are missing. If you're in category 5, please contact your advisor and have them request permission numbers from me. Those should be available using the same link within 1 business day of your advisor's request.

Instructions for obtaining permission numbers are at How do I get and use permission numbers?

You should obtain these permission numbers BEFORE you register and use them when you add the course to your shopping cart. Otherwise, you may "burn" your permission number and need to contact us for a new one.

Repeat Policy for CS 115-215-315

Seats in CS 115, 215, and 315 can be scarce, and we want to prioritize first-time students, followed by former students who have had at least a semester to consider their options and reflect on their study strategies, followed by currently enrolled students who think they won't pass and will need to re-enroll next semester.

  • If you got a grade below C- in 115, 215, or 315 in a past semester and need to repeat it, see the section about permission numbers. You will need one.
  • If you are currently enrolled in CS 115, 215, or 315, you will not be allowed to re-enroll in the same course until the end of the semester.
  • Regardless of the above, if you are trying to take one of these courses for the fourth or greater time, make an appointment with me. Depending on the circumstances, you may not be able to do this at SSU.

Because of staffing constraints, we can only offer limited sections of some courses. If you are graduating in Spring 2024, we will try our best to accommodate you in the courses you need to graduate. If you plan to graduate in Spring 2024 and either cannot enroll in a CS class you need for graduation or are on the waitlist for a CS class you need to graduate, you should contact your advisor immediately.

Elective Courses

Our 3-unit elective offerings don't follow any consistent pattern. They are driven by faculty and student interest; faculty availability, which varies with changes in enrollment and personnel. The rule is: if you're interested in, and eligible to take, one of next semester's electives, sign up right away. There is no guarantee it will be offered again in the near future. See Courses for catalog descriptions. You can repeat CS 390 up to 2 times for the minor and 3 times for the major.

We are offering CS electives next semester:

  • CS 390 Computer Science Colloquium (1 unit)
    Instructor: Dr. Gondree
  • CS 391 Computing Professions (1 unit)
    Instructor: Dr. Rivoire
  • CS 365 Computer Networking and the Internet (3 units)
    Instructor: Dr. Beer
    Prerequisites: Grade of C- or better in CS 215 and CS 252, or consent of instructor.
    Note: if you have already taken EE 465, we recommend you do not take CS 365, but select different electives and be exposed to new topics.
  • CS 385-001 Blockchain Engineering (3 units)
    Instructor: Tim Coulter (CEO & Founder, Truffle Blockchain Group, Inc.)
    Prerequisites: C- or better in CS 315, or instructor consent

    In this course, students will learn the history of the blockchain -- specifically, the Bitcoin and Ethereum blockchains -- and how blockchains can be used to store value in a digital world. The course will cover the inner workings of blockchain protocols, including cryptographic hashing, data storage, consensus algorithms, and public/private key cryptography. Students will learn how to program smart-contracts in Solidity using their choice of smart-contract framework (either Hardhat or Brownie) and their favorite scripting language (either Javascript or Python, respectively). At the end of the course, students will have deployed an application on top of the Ethereum blockchain that extends beyond typical cryptocurrency-based use cases. This course is recommended for students with experience or interest in web technologies and scripting languages like Javascript and Python.
  • CS 385-002 Intro to Data Science (3 units)
    Instructor: Dr. Eric Friedman (ICSI Berkeley)
    Prerequisites: C- or better in CS 115 or MATH 265, or instructor consent

    This course covers the foundations of data science.  It will cover the manipulation, visualization, and analysis of data.  Topics include: data manipulation techniques to clean, transform, and explore datasets effectively; data visualization to create informative charts and graphs that convey insights; and machine learning techniques to quantify and utilize these insights, including unsupervised machine learning for clustering and supervised methods for prediction. There will be opportunities to explore more sophisticated data analysis in a final project. Data sets will be drawn from a variety of real-world domains, providing students with practical experience in solving data-driven problems. The main programming tools used will be in Python using Jupyter notebooks and include: Numpy, Pandas, Scikit-Learn and Matplotlib. Students will be expected to have basic programming skills with the Python programming language or strong programming skills in another language or the ability to self-learn.

For this semester, the following electives will be accepted as upper-division CS electives:

  • PHIL 309 Philosophy and Robotics (4 units)
    Note: For CS majors, this course will be accepted as a 3-unit upper division CS elective.
    Instructor: Dr. John Sullins

    Robotics stands to transform every aspect of our society. This class explores the values and ethical norms that are Impacted by the development of these technologies as well as the political policies that might need to be developed to mitigate those impacts. The course includes lecture and lab sessions so the student can learn the practice, as well as the theories, behind the creation of robotics technologies. The labs utilize the SSU Maker Space and students will engage in hands on interactions with simple robotics systems.

  • MATH 485-001  Selected Topics: Cryptography (4 units)
    Note: For CS majors, this course will be accepted as a 3-unit upper division CS elective.
    Instructor: Dr. Izabela Kanaana
    Prerequisites: C- or better in MATH 220 or CS 242, or instructor consent

    This course is an introduction to classical and modern methods of cryptography as well as its mathematical foundations. Topics will include examples of private-key cryptography, perfect secrecy, the DES system, primality testing, public key cryptography and RSA, El Gamal and elliptic curves cryptosystems. The course will include examples involving numbers large enough to demonstrate how the algorithms really work, so some basic knowledge of Mathematica or any computer language is recommended. Cryptography modules and examples written in Mathematica, Maple and Matlab will be provided, but students with a background in programming will be allowed to write programs in the programming language of their choice.

Finally, CS 495/496/497 are independent study, individual senior research projects, and internships, all by arrangement with a faculty member. If interested, talk to the faculty member with whom you want to work.

If you have any questions, please contact your advisor or the department chair.