Preparing for ICS 314

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

Course overrides

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.

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:

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

Note that it is possible to buy a new laptop appropriate 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. With respect to operating systems, OS X or Linux is substantially preferred over Windows.

Prerequisites

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 passed 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:

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

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.