CS 143: Software Engineering I

FAQ



About
Announcements
Lectures
Coursework
FAQ


Java 1.5 API
Java 1.4 API

  • What is CS-143 all about?
    CS-143 has several objectives. First, we need to cover enough of the C programming language so that you are able to do assignments in CS-135, CS-136 and CS-156 (all of which are required courses in the B.S. program). Second, CS-53 and CS-133 don't have enough time to cover all aspects of Java. By the end of CS-143, you will be very comfortable with most everything in Java, including the murky details of objects and inner classes. Third, this course shows you how applications are developed, both at the front-end (GUI's, about which you already know something) and at the back-end (websites). Finally, CS-143 will strengthen your basic programming skills in preparation for later CS courses.

  • Who should take this course? The course is required of all students in the BA, BS Computer Science programs, the Systems Engineering program, and the CS minor.

  • I haven't taken CS-133. Can I take this course? If all you've done is CS-53, then no. If you've taken the equivalent of CS-133 elsewhere, talk to me about it - you might be able to take the course.

  • I've taken CS-133, but in another language. Can I take this course? This is a tough one. Generally, if you are comfortable with programming, you can pick up Java quickly. Indeed, while the Java students are coping with C in the first few weeks, you will have the time to get up to speed with Java. However, if you struggled with your C or C++ courses, then CS-143 might be exceptionally challenging. Stop by and discuss this with me.

  • Is this a programming-intensive course? Moderately so, probably about as much as CS-133 or slightly more.

  • Will I be able to work at home? Absolutely. Both the C and Java parts can be done at home on Windows, Linux or Mac platforms. On Windows, you might find it useful to install Cygwin (along with gcc) for the C programs. On the Mac, you can install gcc directly. Java installs quite easily on all three platforms (although the installation procedure is slightly different).

  • What's covered in the labs? Is attendance mandatory? The labs will cover some additional material from class, especially in the first half of the semester. We will take attendance. You will need to show your in-class exercises to the TA during lab.

  • What's the difference between an in-class exercise and an exercise with a due date?
    The in-class exercises are embedded in the course material, which we will try to complete in class. Those that we can't should be done the same day preferably, and will be due in the lab immediately following the class. Other exercises, like assignments, are to be submitted formally using our submission procedure.

  • So, in-class exercises are not to be submitted?
    Correct. You should do the in-class exercises and have them in your directory in the lab to show them to the TA, if asked. For this purpose, you should create a special CS143 directory, under which you should have directories for Module1, Module2 etc. Keep the in-class exercises for Module1 in your Module1 directory.

  • Why are there links to both the 1.4 and 1.5 API's?
    Java 1.5 added new language features, one of which is generics. The 1.5 API documentation features generics in a variety of places, but especially in the Collections framework. This can be confusing to read at times. The 1.4 documentation has more or less the same documentation without generics. Try reading the 1.5 version first; if you find generics confusing, try the 1.4 version and then come back to the 1.5 version.