Spring 2019 Registration Announcements

CS 470 Rescheduled (November 20, 2018)

To allow students to take CS 386 and 470 together, we have rescheduled CS 470 for Monday/Wednesday 4:00-5:15 PM in Darwin 37.

Registration Announcements Posted November 16, 2018

Registration for Spring 2019 begins the week after Thanksgiving! Congratulations to Dr. Watts, who is beginning a phased retirement in which she has the spring semesters off. If you've noticed that the instructors of some courses are different from the usual suspects, this is why!

Enrollment Appointments

Registration begins on Monday, November 26 and will be open until December 31. If you log into MySSU and click on "Student Center", you should see your registration appointment time listed on the right. Most CS and GE classes will fill, so you should plan to register at the beginning of your appointment in order to have the best chance of getting the courses you need.


Your CS advisor (Dr. Gill, Gondree, Kooshesh, Leal, Ravikumar, Rivoire, or Watts) should also be visible in your Student Center. If you don't have an assigned CS advisor, please let Dr. Rivoire know, and see her until your advisor is assigned.

Dr. Rivoire's advisees can make appointments at https://rivoire.cs.sonoma.edu/meet. A bunch of new slots were added this morning.

Otherwise, you can find your advisor's contact information here: https://www.cs.sonoma.edu/faculty-staff/


A grade of C- or better is required for any course that is a prerequisite to a CS course. Even though MySSU enforces prerequisite requirements, it doesn’t take this grade requirement into consideration when you register. As a result, it may allow you to enroll in a course even when you haven’t fulfilled its grade requisite. Please know that we identify these cases before the semester begins, and we administratively drop students who are in violation of this policy.

After grades are posted in January, 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, you should be prepared to prove that you have met the prerequisite (for example, at a JC). Otherwise, you will be administratively dropped from the course at the beginning of the semester.

Permission Numbers

You may need a permission number to add a course if (a) you transferred its prerequisite and we had to fill out extra paperwork to make it articulate; (b) you passed a course on the third or later attempt OR took it at 2 different institutions; or (c) if you're currently taking its prerequisite at another institution. If you add a course using a permission number, we will still verify your grades in prerequisite courses at the beginning of next semester.

Instructions for obtaining permission numbers are here:
You should obtain these permission numbers BEFORE you register and use them when you add the course to your shopping cart.

No-repeat restriction for CS 115/215/315

In order to allow as many students as possible to attempt the CS 115/215/315 sequence of courses, we have a no-repeat policy for these courses during the first week of registration. This policy will lift on Monday, December 3. This restriction has to be lifted manually, so we can't give you an exact time, but it will be shortly after 8 AM.

Waitlisted? Don't panic, but do be strategic.

Waitlisted for a course you need? Try not to panic. Especially for courses that have MATH 161, CS 115, CS 215, or CS 315 as a prerequisite, spots are very likely to open up after this semester's grades are posted and students who don't meet the prerequisites drop these courses.

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. The waitlist SWAP feature is your friend here; see https://web.sonoma.edu/registration/records/waitlist.html.

Graduating in Spring or Summer 2019? Let us know ASAP if you don't get classes!

If you are graduating in Spring or Summer 2019 and don't get a CS class you need, email Dr. Rivoire (rivoire@sonoma.edu) as soon as possible. We'll do our best to accommodate you, which is easier the earlier we hear from you.

Electives for Spring 2019, posted November 16, 2018

Extra option for math support course

Computer Science majors need to take two "support courses" from a list of Math and Physics courses. See the bottom right of the prerequisite chart for that list.

Next semester only, Dr. Kanaana is teaching Cryptography as the topic for MATH 485 next semester. She invites CS students to take this course, and you are welcome to use this as one of your two math support courses for the CS major. We will have to fill out some paperwork to make it happen - please see your advisor next semester after the spring add/drop date if you end up taking this course.

3-unit CS Electives

CS 340 is NOT being offered! It is going to change to CS 330 (Game Programming), taught by Dr. Gill in the same time slot, by the time registration begins.

We are offering three 3-unit CS electives next semester:

  • Game Programming (CS 330), taught by Dr. Gurman Gill
    Prerequisite: C- or better in CS 315
    This course is an introduction to the theory and practice of video game design and programming. Video games combine, in real-time, concepts in computer graphics, human-computer interaction, networking, artificial intelligence, computer aided instruction, computer architecture, and databases. This course introduces students to a variety of game engines and frameworks and explores artificially intelligent agents. Students will work as part of a team to create a complete description document for a computer game and implement a prototype of the game.
  • The Science of Computer Science (CS 385), taught by Dr. Barry Rountree (Lawrence Livermore National Lab)
    Prerequisites: C- or better in CS 252 and CS 315; CS 351 and/or CS 450 recommended
    This course focuses on systems-level programming, treating both programs and hardware as objects of scientific study. The recurring question of the course be "But what /actually/ happened?", which ultimately require using hardware performance counters, low-level telemetry, and statistical analysis. We will be using Intel's Pin (dynamic binary instrumentation application), the R language for statistical analysis, and LLNL's libvariorum for low-level machine measurements. While not required, previous classes in architecture, operating systems and compilers will be helpful, as will some familiarity with assembly language and parallel programming. Most of the programming will be done in C/C++.
  • Web Frameworks (CS 386), taught by Dr. Ali Kooshesh
    Prerequisites: C- or better in CS 315 and CS 355
    Contemporary web-application development is based on a web of open-source software systems that facilitate the construction of high-quality, extensible, and scalable applications. In spite of that, choosing the right combination of software systems in building an application is not straightforward. In this project-based course, among other packages, we will use NodeJS, Koa, React, Redux, and Material-ui to build large-scale software systems.

CS 385 and CS 386 are "Special Topics" courses. They're a chance for us to offer timely classes on hot topics without having to first go through a multi-year curricular approval process. You can take these courses multiple times, as long as the topic is different each time.

1-unit CS Electives

  • Problem Solving in a Team Environment (CS 349), taught by Dr. Mark Gondree
    Prerequisite: C- or better in CS 315
    This course focuses on problem solving and program development in a team programming environment. Topics include techniques for problem analysis and algorithm design, rapid implementation and pair programming methods, use of standard container classes and library functions. Different types of problems will be selected each semester. May be repeated for credit. Dr. Gondree is planning to offer this as a Capture-the-Flag style course.
  • Computer Science Colloquium (CS 390), taught by Dr. George Ledin
    Prerequisite: None!
    Series of lectures on current developments in computer science. May be repeated for credit; a maximum of 3 units can be applied to the CS major; students will be required to attend all presentations, keep a journal, and do a research project based on one or more of the presentations. Contact the department for specific information. Cr/NC only.

CS 495/6/7

CS 495, 496, and 497 are not "courses" in the usual sense; they cover independent study, senior research projects, and internships by arrangement with a faculty member. Please visit https://www.cs.sonoma.edu/curriculum/courses.html to learn more.