Minor Advising

If you are interested in pursuing the CS minor, please read the following information before setting up an appointment.

Getting Started

If you are currently taking CS 149, do NOT submit a Major/Minor Declaration Change in MyMadison. You need to wait until you are either enrolled in or have completed CS 159.

Your first classes
  1. CS 101 [optional]: This course provides an overview of what CS is and what to expect from the field.
  2. CS 149: This course is an introduction to programming; the course assumes you have no prior experience. MATH 155/156 is a required prerequisite, and you must earn a B or better in CS 149 to move on.
  3. CS 159: The second part of the introduction to programming. While you are taking CS 159, set up an advising appointment with me to declare the minor. To continue beyond this course, you must apply for full admission before the last day of class.
  4. CS/MATH 227 [optional]: Not required for the minor, but this is a prerequisite for many CS courses. Many students take this as the same time as CS 159.

Requirements for admission to the CS minor

Students wishing to minor in CS must meet the admission requirements. These requirements apply to all students who are not officially declared CS minors at this time, regardless of what year you currently are.

How to apply for and declare the CS minor

If you have not yet taken CS 159 and you are not currently taking it, stop here. You CANNOT apply to the CS minor until you are either taking or have completed CS 159. If you are ready to apply, you must set up an advising appointment with me to discuss your application. You will need to bring the following to your advising appointment:

  • A completed application for full admission to the CS major/minor.
  • A mostly completed CS Minor Application Form. You can sketch in courses for the plan of study or leave it blank, but fill out the rest.
  • A Major/Minor Change Declaration submitted to MyMadison.

I do advising by appointment only on Wednesday afternoons. Before you contact me to request a meeting, check my availability to see what times will work for you. This saves us both time instead of emailing back and forth. Appointments are made on a first-come, first-served basis, and they often fill up a week or two in advance. Note that the weeks around registration time are particularly busy and appointments often fill up two weeks or more in advance.

Typical CS minor plans of study

The CS minor requires completing CS 149, CS 159, and four additional CS courses (excluding CS 260 and CS 280). One of the four courses you choose must include CS 240, CS 261, or CS 345. Note that CS 240 requires a calculus prerequisite (MATH 231 or equivalent) that does not count toward the CS minor. You should select courses that you find appropriate to your goals. Here are common sample plans that students use (these are NOT official tracks and you do not have to adhere to any of them).

Traditional core CS
CS/MATH 227, CS 240, CS 261, CS 327. This sequence combines theory and algorithmic analysis with introductory systems programming. Lots of coding in Java and C, combined with a solid mathematical foundation.
Traditional core CS with concurrency
CS/MATH 227, CS 240, CS 261, CS 361. This sequence has less focus on theory, but introduces multithreaded and network-based programming. The additional CS 361 course requires more C programming.
Software engineering and information systems
CS 345, CS 347, CS 374, CS 447. This sequence combines professional software engineering practices with databases, web programming, and user interface design.
Societal impact and user experience
CS 101, CS 330, CS 345, CS 447. This sequence includes coursework in the ethical implications of computing (including security and privacy) and user interface design.
Theory and logic
CS/MATH 227, CS 240, CS 327, CS 442. This sequence focuses on the mathematical theory and formal logic structures that create the foundation of CS.
Artificial intelligence and robotics
CS/MATH 227, CS 240, CS 354, CS 444. This sequence covers a lot of the same areas as the Interdisciplinary Robotics Minor, but focuses exclusively on the software side of the field.

CS minor FAQ

Here are some answers to commonly asked questions about the minor.

I've never programmed before. Can I really do the CS minor?
YES! Many students are worried about trying out CS because they've never written any code before. That is expected. Our intro sequence is designed in a way that does not assume you have any prior experience in the field.
I'm really nervous about CS 149 being "advanced." Why can't I take CS 139?
CS 149 isn't really advanced; it's the same course as CS 139. The "advanced" name was established years ago and isn't entirely accurate anymore. After looking at years of data regarding how students have done in the two courses, we've found that CS 149 is the more appropriate intro course. But don't worry if you've never programmed before; CS 149 does not require any prior experience.
Should I do a CS minor? Would that be marketable when I look for a job?
Of course you should do a CS minor. Unless you shouldn't. Really, this is an impossible question to answer. If there's the slightest possibility that you think you'd be interested in the CS minor, take CS 149 and find out. The choice is yours. As for whether or not it's marketable, consider some of the statistics from Code.org or the U.S. Bureau of Labor Statistics (BLS).
Do I have to declare the CS minor before registering?
Initially no. In fact, you can't. You have to take CS 149 and CS 159 before you can apply for the minor. However, all courses after that (with the exception of CS/MATH 227) are restricted to students granted full admission into the CS major and CS minor.
Why do I have to wait to submit an application?
Application to the CS minor is based on a number of factors, including your grades in both CS 149 and CS 159. Until you have grades in these courses (or are in the process of taking CS 159), there is not enough information to consider your application.
Can I register for later classes while my application is pending?
No, but you should plan ahead. You need submit your application while you are taking CS 159. Applications will be considered after grades for CS 159 have been finalized. Once the admission decisions have been made, you will be granted an override and should try to register as soon as possible.
How long does it take to complete the CS minor?
The CS minor takes a minimum of three semesters; there is no way to complete the minor in less time than that because of the prerequisite structure. Realistically, the CS minor typically takes four or five semseters, because certain classes are really popular and fill up, while others (particularly electives) are offered at most once per year.
Are there CS courses that do not count toward the minor?
Yes. Currently, CS 101, CS 260, and CS 280 do not count toward the minor.
Does ISAT 344, ISAT 345, ISAT 460, etc., count toward the minor?
You have to be very careful here and consult the current JMU Catalog, not the Catalog that was in place when you matriculated. Any course that is cross-listed with CS when you take it can count toward the minor. Currently, NONE of these courses are cross-listed anymore. If you register for any of those courses, they will not count toward the minor.
I found some information that said CS 239 was required or that I can take CS/MATH 228, but I don't see these courses offered. Why not?
Because they don't exist anymore. CS 239 has been replaced by CS 159, and CS/MATH 228 has been replaced by CS 327.
Are there restrictions on when I can take certain courses?
Yes. Although you can typically count on courses required for CS majors to be offered every semester (though there are some exceptions), electives are offered only once per year and sometimes even less often than that. When determining your plan of study, you have to keep this timing in mind. See the CS forms page for the planned course offerings.
Do you offer courses during the summer or Maymester?
We generally do not. On occasion, a faculty member may decide to offer one during the summer session, but that does not happen often and only for particular courses. We never offer courses during Maymester.
Can I take a community college equivalent course over the summer?
Yes, but you need to make sure it is approved. Talk to Dr. Sprague, who handles all transfer advising. Consult the VCCS course equivalents and look particularly at courses in the CSC and ITP departments. Again, though, before you pay money for such a course, make sure you consult Dr. Sprague to ensure it will be counted.
Can I substitute course XXX for the CS course YYY?
Generally no, but there is an exception. MATH 245 can be used in place of CS/MATH 227, both as a prerequisite and also to count toward the CS minor. Other than that, no.
What about CIS 221, MATH 248, IA 241, or ISAT 252?
No. None of those courses can be substituted for CS 149, or any other CS course.
Can I take CS 240 at the same time as CS 159 or CS/MATH 227? Can I take CS 240 if I haven't had calculus?
No. The prerequisites for CS 240 are strictly enforced. You must complete all of CS 159, CS/MATH 227, and MATH 231 (or an equivalent calculus) with a grade of C- or better in each course before you can take CS 240.

© 2011-2020 Michael S. Kirkpatrick. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.