Preparation

I am pleased that you are considering ICS Software Engineering. Here are some things to note in advance.

Course overrides (314 only)

This class has a restricted enrollment and thus fills up very soon after registration opens. Every semester, I receive lots of emails from students who need this class to graduate and are requesting an override. I sympathize with your situation. It is an unfortunate reality that the ICS Department used to offer this class twice as often before budget cutbacks.

If you want to take this class, but are not registered, you need to come to the first day of class in the fall prepared to start work. I am confident I will be able to offer some overrides at that time, but I cannot guarantee that I can give any overrides prior to the first day of class. In general, if you do not come to the first day of class, you will probably not be able to receive an override. I do not maintain a waiting list. I do not allow “sit-ins” or audits, because the classroom environment requires everyone to be fully prepared and committed to the class.

Computer requirements

ICS Software Engineering is, obviously, computer intensive. You will be installing lots of tools, and spending lots of time staring at your screen. Furthermore, you will be do a great deal of programming in the classroom. For all of these reasons, ICS software engineering requires the following computer technology:

  • A laptop computer, less than two years old, with at least a 15″ screen and 10 GB of available disk space.

You are unlikely to be successful in this course if you instead use:

  • A desktop computer, because you will not be able to complete in the in-class assignments.
  • A netbook, because the screen size is too small to support the complexity of problem solving required in this class.
  • A laptop older than two years, because its performance and reliability is unlikely to be at an appropriate level.

Note that it is possible to buy a new laptop for this class for well under $1,000. This is an investment not only in this class, but in your future as a professional software developer.

Prerequisites (314 only)

To enroll in this class, you must have taken and passed ICS 211 (or equivalent). You cannot take ICS 314 if you’ve taken and failed ICS 211. You cannot take ICS 314 and ICS 211 concurrently. I enforce this prerequisite firmly out of compassion for you: if you do not have at least ICS 211 under your belt before starting this class, the odds of you have an unsuccessful experience are quite high. This means you’ll drop the class at some point, and you’ve just squandered a seat that could have gone to another student.

If you do not drop the class voluntarily, I will request an administrative drop for you, so please make sure you have ICS 211.

Polishing up your Java skills

Some students have asked me what they can do to prepare for ICS software engineering. The best thing to do is to spend some time polishing up your Java programming skills. Here are some ideas:

  • Write a program that takes as input a number N and returns the Nth prime number. So, if the program is given the number 5, it returns the fifth prime number.
  • Write a program that takes as input a sentence and returns the sentence translated into Pig Latin.
  • Develop a robot for Robocode.

Or anything else: it doesn’t matter as long as what you take on requires you to write syntactically correct Java code and use elementary data structures (lists, arrays, etc.). If you have prepared correctly, then on the first day of class, if I ask you to write a simple Java program on a piece of paper and turn it in, you won’t stare at me in amazement or horror for five minutes and then turn in a blank piece of paper.

Bookmark this site and check back occasionally

A final preparation is to review the other pages in this site, and check back occasionally to see if anything has changed. The mailing list won’t become active until the first day of class.