CSc 221 Spring 2008 Software Design Lab

Prof. McCracken Office: NAC 8/202E
Email: mccracken@cs.ccny.cuny.edu or ccnyddm@aol.com
Website: ccnyddm.com check for news, homeworks, etc.

NAC 5/150 TuTh 3:30-4:45
Prerequisite: CSc 212, Data Structures

Text:
Deitel and Deitel, Java How to Program, Seventh edition, Prentice Hall, 2007.
And see Blackboard for the course, for which you will need your CCNY email address.

Syllabus

Goals of the course:

One of this text’s outstanding features is that all code examples are complete programs, and the programs are on the book’s CDs. I will be using these examples in many/most lectures.

In showing programs and software use in class, I will use Windows, but you are free to use Linux, or take this occasion to get started learning it. Linux is not a part of any required course, but you should definitely know it.

We will review the basic ideas of object-oriented programming (OOP). You should have seen encapsulation and inheritance, but probably not the third leg of OOP, polymorphism. We will study graphical user interfaces (GUIs) in some detail, although it will be impossible to cover more than a fraction of the power that the Java-based graphics packages provide. You will get enough experience with GUI development to learn the rest of that subject on your own; we need course time for things that are not so easily learned by oneself.

We will explore some of the advanced features of Java, things needed for any serious computing: regular expressions: collections (sets, map, and lists); accessing databases with JDBC, and some selection from threads, generics, and serialization.

 I love email. Talk to me: ccnyddm@aol.com, or mail to mccracken@cs.ccny.cuny.edu will be forwarded there. I check my mail many times a day, usually. I can’t promise instant response on all occasions, but I try. PLEASE PUT THE COURSE NUMBER IN THE SUBJECT LINE. I get about ten times as much spam as real mail, and if your subject doesn’t help me, I may unintentionally discard your mail unread. Since all homework is submitted by email, this really is crucial.

Tentative grading, subject to change:

In computing your course grade I discard your lowest homework and your lowest quiz.

This is one of my favorite courses. I designed it and introduced it, and have taught it 20+ times. I never get tired of it, in large part because it’s always changing. I take great delight in showing people student projects, which are highly educational and satisfying to all. The switch to Java has certainly made the course more interesting for me, and now that Java is the world’s most widely used programming language, Java is the only reasonable choice for the course.

NOTE: I think it’s probably good to have the latest version of the Java software, which means that it is preferable that you get it by a download from Sun. If anybody has bandwidth problems in doing that, I can provide it on a memory stick.

We will be using two IDEs (Integrated Development Environment): JCreator (sometimes) and Eclipse (most of the time). JCreator Learning Edition is a free download. Eclipse is on the course CD, for the convenience of students without access to broadband. There are many other IDEs, but Eclipse is used more widely in industry than all others combined.

There will be two midterms and a major project, but no final.

Tentative homework projects. Very subject to change.

  1. (2 weeks) GUI-Building-I: Given a "starter kit," add several fields and the processing of them. Layout managers; textfields and their processing; regular expressions; event-driven programming.
  2. (1.5 weeks) Intro to Design Patterns: The Salutation Factory. Interfaces. Distinction between extending a superclass and implementing an interface. [Midterm I]
  3. (2 weeks) Complex Number Class, with Taylor Series evaluation of complex sine and cosine. Informal demonstration that sin2 + cos2 = 1 holds for complex numbers.
  4. (1.5 weeks) JUnit testing. [Midterm II]
  5. (2 weeks) MVC Design Pattern and GUI-Building-II. Temperature displays at multiple locations with multiple formats (text, simulated thermometer, etc.).
  6. (1.5 weeks) Introduction to JDBC and MySQL (just bought by Sun).

 Final project (2.5 weeks) will built on HWs 5 and 6. A database application using MySQL Details to be determined.

Back to the CSc 221 Spring 2008 home page

Back to Dan McCracken's Home Page