Previously on CS410J...
Well, we all survived another go round on the mighty
rollercoaster that can only be described as CS410J. As part of
their final exam, I wanted to get some feedback from my students
about what they thought about the course. Here's what they had to
- What do you wish you had known before taking this
What is the most important thing you have learned in
- A Little More About OOP If I had know what javadoc was
like, I wouldn't have bought the book
- Object Oriented Language... However, the irony was that
I decided to take this course to learn about Object Oriented
- I feel as though I was well prepared for this class. If
I had to choose something that I wished to know before this
class, it would be knowing more about OOP.
- A little better familiarity with an object oriented
language might have been useful. A very basic introduction to
Java, like one of the many "Learn Java [Quick]" books or the
Java Tutorial link on Dave's page would have saved me some time
doing the projects. Should have brushed up on program structures
or programming before the first class - (hadn't done any
programming in several years.)
- I wish I'd be more familiar with UNIX (I'm sort of WinNT
- I wish I had known how to do Object Oriented
- I guess that I knew how little we were going to be using
the book. I did get fair warning, but I still thought that we
were going to be using it more than we did.
- I did not feel as if I lacked in any prior skills or
knowledge that would have been needed before taking this class.
I had already been exposed to some form of object oriented
programming in C++ and had a relatively good understanding of
its possibilities in terms of rapid application development, not
that its uses and benifits are restricted to only that.
- Exactly how much free time vanishes when one is
simultaneously working and going to school. This is the first
time I've tried to juggle both, and it has been an
- Before taking this class, I wish to learn about
Programming Java. In particular, I like to learn about Object
Oriented Programming until now, I think that I got all what I
would like to learn. In addition, I like to learn about GUI.
Now, after I would finish Project 4 on Socket communication, I
have a chance to work on GUI project because the Project 4 is
turn in during over 2 weeks.
- I wish I had known that there was free Java 2 for
download so that I could have tried to do some programs with it.
Also, I wish I had known there was a web site explaining how to
use the Java 2 and I could have some basic knowledge about the
- I wish I had known more about OOP. Taking your class
forced me into thinking about OOP. When I did my self study, I
read about OOP but I didn't really have to think about it, and
so I passed it by without really understanding what I was
- Some more object oriented programming.
- The JAVA course emphasized the object oriented
programming aspects of JAVA from the opening lecture. The
instructor advised us more than once to "program to the
interface." As the course progressed, it was apparent that
object oriented programming, coupled with inheritance concepts,
is basic to the JAVA language. Although I have had all classes
in C++ that PSU offers and had an understanding of object
oriented programming, a course in object oriented programming
preceding this one may have been useful.
- Nothing. From the beginning, the programming assignments
were well organized, I did'n have any difficulty to get used to
Java programming. (Although I've had a little knowledge about
- Compilation and execution of Java files.
- That there is so much to know about Object Oriented
Programming !!! And general information on Java.
- I wish I had known not to buy the text book. Everything
I needed to know was in the Javadocs or the lecture
- Learn how to program with java language
- More OOP probably wouldn't have hurt though it didn't
hobble me. That said, if I'd had more OO religion beforehand I
think I may have picked up on more language specific details
rather than tangling with some of the more tricky issues
(notably polymorphism) that are just plain OO. Also, I wish I
knew a bit about MFC and C++ libraries in general. A big part
of the liberation I felt in this class was due to access to
well-documented and powerful libraries for pretty much the first
time in a class. Given that there are rich C++ libraries the
credit I gave Java was maybe a little unfair. Maybe. Anyway,
I'd like to have at least had an opinion on it.
- You had lectures about Networking and Security during
this term. If I had had any classes related to these topics
before, I think I could understand concepts more in details and
could easily get familiar with the Java APIs you taught at these
- I wish that I had been writing more code of some kind
before coming to this class. One of the reasons I took this
class was to kick start me into actually writing code. I have
done so in the past and the vast java libraries are kind of a
barrier to just sitting down and doing something with it. I have
to say that this course has provided that opportunity.
- I feel that I was pretty well prepared for this course.
Having at least a little bit of knowledge in Java would have
been helpful, but probably not necessary (the class started from
- Since I had checked your home page for the last term
(Fall '00) you taught the course and, talked to your students
before taking the class, I cannot say that I wished to know
anything before taking this course.
- I wish that I had more knowledge of two different things.
First, I wish that I knew more about object orientated
programming. Prior to this class, my programming experience was
limited to C/C++ and I tended to program in C. I really enjoyed
working with objects and am, in fact, taking Object Orientated
Programming this summer. Secondly, I wish I knew more about
networking. This would have been helpful for the networking
- I was pretty well prepared. Being a senior level class
it is expected that we know how to program. We were just
learning the language, and most seniors should already know how
to program. An introduction of object oriented languages in
addition to c++ would have been most excelllent.
- I wish I had known that attendance was going to count so
much for my grade and that there would be a quiz during every
class meeting. This fact has really lowered my grade because of
attendance due to other circumstances such as work and other
commitments. I figured since this was an upper division course
and that it was at night it would be one that did not require
you to attend so much.
- I wish I had known a little more about the syntax of
Java. I hate learning syntax, and I'd rather learn the
- Maybe I wish that I had known how vast Java before.
Halfway through this course, I realized I will probably need
other Java courses to complete each of the topics I learned (so
I program the right way).
- I have taken CGI and TCP/IP class in which I have learned
about Internet programming. There were so much noise about
JAVA. First time, just JAVA programming is similar to WIN-32
programming for Windows OS was everything that I
understood. Also, JAVA can support cross-platform
programming. When I started studying JAVA all my focus was on
the web programming like network application, harmony with JSP
and so on.
- I wish I had known more about the Java development
environment. While it is relatively easy, getting the whole
package, jar, classfile thing down was really
If you could give one piece of advice to someone taking this
course in the future, what would it be?
- Probably just the usefulness of java and the things it is
good at solving. Also, it was neat to learn OOP concepts and
- Java is easy...
- Besides Java? Getting a more in depth understanding of
- How to integrate classes/objects into a working program
- using part my code and part -someone else's code. Programming
in Java - the basics of using Java and how to find more
- It was very good training in Object Oriented Programming.
- Actually there are two... 1. Java 2. How to do Object
- Java. The best part of the course for me was discovering
the process of constructing streams and readers together. The
pipelined architecture is a very interesting one, which seems to
boil down to "Every stream takes an input stream as it
- The most important thing I learned in CS410J was the
overall structure and development process of applications built
using object oriented techniques. This was a great oportunity
to see the real power of code reuse and good documentation, such
as the Java API. I also think it was important to realize the
major differences between C++ and Java for people comming into
the course with only a C++ background.
- "Program to the interface." Like most people, I ran in
to a bit of difficulty (several times) with the Airline
projects. On more than one occasion, I got myself into trouble
by worrying too deeply about the specific implementations. When
I stopped worrying about the details and just worked with
interfaces, many areas of confusion just went away. Then came
Project 3. When I saw how easy it was to connect existing
classes in new ways to accomplish new, unexpected functionality,
I was converted.
- As the above answer, I learn a lot of programming skills
specially for OOP knowledge. One more programming language
learned is the most important thing I wish. I also realize some
(dis)advantages between C++ and Java during the course.
- I have learned that Java has a lot of classes and can do
a lot of amusing things. The Java has all the classes that I
need to create GUI, server, client, public and private keys.
These things are very important for creating a good web site and
a networking program.
- Objects, OOP, and the Java short cuts. In the IBM MVS
world that I come from I am used to doing everything the long
hard way. So based on my previous experience, when I approach a
programming task I automatically think of doing it the long way
(COBOL is a very wordy language and IBM MVS assembler is detail
oriented). I feel that changing from the IBM MVS world to Java
and Object Oriented Programming is akin to knowing English and
American culture and then learning the Chinese language and
- Object oriented programming, Since everything in Java is
deal with objects. Programming to the interface
- The one important concept, which differs in breadth from
any one important thing, that I learned from this class is the
use and applicability of JAVA. The class projects emphasized a
"research it yourself" approach. While painful, this approach
did require that one learn how to figure out what classes and
methods to use, with reference to Javadocs. This was the
strength of the course. Related to this, learning when and
where the JAVA language may be aprropriate and when it is not is
- What is the most important thing you have learned in
CS410J? I think the most important thing is the basic knowledge
about Java programming. I wish this course were about two term
sequence and the second term would cover more advanced
materials. For example, we had two options in the last
assignment, the networking or GUI project. I am personally
interested in both projects, but I did't have time to do both. I
wish we could spend more time for these subjects.
- Look up things in Javadoc.
- The language and how to effectively use what is already
given. How to make use of the functions that have been already
written by someone instead of starting from the scratch and
- The most important thing I've learned in this class is
how to program in an object oriented way. Other classes at PSU
expossed me to the concepts, but this is the first class I've
had where the programs actually required OOP practice.
- Networking program.
- Besides picking up a little Java, I really came a long
way towards seeing the some of power of OOD. Gradually refining
a project over the course of the semester did a lot to _show_
the value of reuse plus some of the flexibility gained from
thinking in terms of objects and "programming to the
- What kind of Java APIs are available, and using these how
easily or simply we can write codes.
- I have learned that I still have the ability to think
through problems and write code to address them. I also realize
that we have just put a scratch on the surface of the
- The basic knowledge of being able to use Java. There was
a lot of the stuff in this class that I didn't actually learn in
this class but from previous C++ classes, this class just helped
me port my C++ knowledge into Java knowledge. After taking this
class I feel confident that I if I am asked at a job interview
if I am proficient at Java, I could answer yes.
- Java Util Classes, System Properties, XML concepts and
Java Networking concepts/capabilities
- Abstractly, it would be programming in Java. More
concretely, it would be how to work with objects.
- XML. Most excellent. I'm now looking at taking the XML
course the cs department is offering next year. It cool to
store object information in linear type form.
- Resources to learn about Java and that there are much
more to Java than meets the eye. Before this class my thoughts
on Java was that the programming style was like that of C and
C++. But I did not know that Java frees you to so much more due
to how it is structured and how easy it is to organize and
implement new objects to use.
- I learned Java. It is a neat language that obviously a
lot of people has spent time and interest in developing
- Well, obviously programming in Java. But mainly thinking
in terms of objects.
- I have learned so many important things that I had not
known before. First, OOP concept of JAVA is way understandable
rather than C++. The bulit-in classes are so abstracted that it
is easy to use but hard to understand inside job. This means
JAVA requires way deep background of computer science. Second,
Encoding ability for network or multimedia programming is
great. JAVA supports perfect marshaling, unmarshaling mechanism.
Third, JAVA can work with XML which is considered as new concept
of data handling.
- I think the most important thing for me was something
that wasn't really even in the curriculum. The realization that
unit testing can really be simple if you keep your classes
simple and break them into logical chunks.
What made you stay in this course?
- Bookmark Sun's javadoc page
- Attend the class.
- go to class. You learn more from the lectures than from
the notes themselves.
- One piece? That's difficult! Choose one: - Plan to spend
a substantial amount of time working on the projects, start
early. - If you haven't done any programming for a while -
brush up before the first class. - Don't bother buying a book -
excellent references on the Internet are easier to
search. (recommend DSL or other high speed connection if not
working at school) - (hint) review the prior weeks lecture notes
before each class
- Don't get frustrated at the beginning. First couple
projects are kind of hard if you are not familiar with
- It would be to stick with it, (after the second project)
becuase once you get the hang of programming in Java it does get
- Eschew obfuscation: visualize whirled peas.
- Start your programs early and do "exactly" what was
underlined in the specifications. Also, study the lecture
notes! Try out examples even if they are not relevant to your
- (Just one?!?) Test thoroughly. Many times, you'll see
Bug #1, but miss Bug #2 and #3, lurking just a few lines down.
If my testing had been better, I would have had probably twice
as much free time over the past few weeks.
- I just advice someone to read Java notes more and
understand the power of OOP since OOP helps us improve many
programming aspects/skills. In addition, finishing all programs
are so essential to understand the entire course's Java
- I think the Java is easier than C or C++. However, it
would take the same among of time to finish a program because
the class would cover a lot of things and there would be a
number of projects to keep you busy. It would be better to work
on the plan of attack as soon as possible and get some idea how
to do the project.
- It is good to have an understanding of OOP concepts, OR
do some hard work and learn the concepts when you start the
class. Try not to miss the first two weeks of class like I
- Ready to study hard, espcially if you do not have
knowledge of Unix and Object oriented programming
- As currently defined, I rate this course as one of the
most difficult courses in the curriculum. For me, only the
compilers classes (CS301, CS302), the first logic class (CS250)
and the calculus class on infinite series (MATH 253) were more
difficult. I would advise students planning to take this class
to allow enough time and do not take a full schedule when taking
- Find a Java book, which explains the conceptual things,
- Start early for your projects.
- Beware of Dave ! Just kidding. My advice would probably
be dont just attend class and forget about it. Try and work out
lot of programs on your own. Otherwise you will be left
out. Dave is very fast.
- Start the projects early, and give yourself _lots_ of
time. Most of the assignments appeared to be quick and easy,
but I inevitably ended up spending about twice as much time on
them as I had anticipated. I estimate I spent 20 hours a week
programming and reading Javadocs.
- Just get prepared to spend a lot of time
- One? Here are a couple -- you can pick. a) Compile and
run a little java app beforehand (or at least asap.) For some
folks, just getting going is daunting. b) KEEP UP WITH THE
MATERIAL (and read the notes before hand.) The notes are well
organized and tell a pretty good story. Some of the code takes
more than a glance to grok and tends to go by a little fast in
class so taking a peek before is good. If you're REALLY an
eager beaver, running an example or two before class will help
you get that much more out of lecture (oh and ups your chances
on not bombing the quiz.)
- After each lecture, review what we learned at class
carefully. For projects, spend more time for testing.
- Start the projects early and often. They are not the kind
of assignments that can be accomplished the night before they
- Spend more time testing!!! How many times have I said,
"If I only did _____ I would have gotten full credit"?
- Don't spend too much time on the basics. Instead spend
more time on learning about some of the great features Java has
to offer such as interfaces, inner classes etc.
- I would advise them to look at your sample code as early
- Go to all the classes. It makes more sense when someone
explains it and since there's only one class a week, you would
miss a lot by not going.
- Read up on Java while you are learning it. And dont just
read about it, actually practice what you learn so that you can
actually see it happening. Learning Java needs to be a hands-on
experience and now just something you read out of a
- Don't sweat the first few projects, but prepare to spead
more time on the last two or three.
- Well, just make sure you get used to reading the javadocs
early. Read the examples in David's jars. They are a golden
resource. Don't be scared to ask Dave questions. He can
actually be a nice guy :):) (He knows is stuff).
- If you understand C/C++, you can easily approach to JAVA
world. However, JAVA API is so abstracted that if you want to
dig in the real JAVA world, you should use other references that
are related to basic concept. For example, thread concept and
problems being related to thread, network concept and
understanding whole machanism ,database concept and data
handling, and so on.
- Familiarize yourself with a Java IDE and you will be much
happier. (NetBeans is cool!)
- I found it interesting, and it was nice to have a
programming class that I didn't find really difficult. I was
impressed with Java as a language.
- To force myself to learn :)
- bluntly, I need the credits to graduate, and I enjoy the
- Fun and excitement. The subject and instructor both
provide lots of both. I enjoyed learning Java and working on
the Projects. Dave makes it fun, and challenging.
- Projects were fun to do and they were very helpful in
learning the language.
- Actually I stayed in this course because I never messed
up any assignments so bad that I thought I wouldn't have a
chance to pass.
- I wanted to learn java. That and I wanted to
- This was the first course in which I had a chance to
write some software that actually did something useful! I was
amazed at how quickly one could develop a full scale
application. I also liked Daves jokes alot.
- To be honest, my main motivation to stick with the course
was fear! Since my job is going to heavily involve Java in a
few months, dropping the course would've been admitting that I
can't learn it in time -- which would amount to quitting my job.
However, after a few classes, I developed a new motivation. I
started to see the ways that using Java would make my everyday
life easier. The advantages of OOP, without the pain and
difficulty of C++, really appeal to me. The convenience of the
available libraries is a big draw. The biggest "win" of Java
isn't either of these, though: it's javadoc. Every piece of
software that I've ever maintained has had little or no
documentation. I'm familar with that particular pain. I'm MORE
than ready to use such a convenient documenting
- The main reason is that I finished doing my all programs
and keep reading and understanding Java aspects during the class
and whenever I navigate Java stuff on the websites. When I
finished my programs I really feel that I understood the
in-class lecture more and those programms will reinforce my
programming skills during the course. A bonus thing is that I
often deal with Javadoc from the Sun's website.
- The Java is very powerful. I want to learn more about it
so that I can use it on my web page. Also, programming in Java
is fun. I like to do the projects and understand how the
programs work. The examples in the notes are related to the
projects and have been giving me good ideas on how to do the
programs. Moreover, I like the lectures.
- I want the information more than anything else. I like
the fact that your class has the reputation for being the hard
Java class, because I want to work hard and learn, and you have
some really good knowledge to pass on, and I want it.
- Programming in Java is fun. You can study one quarter and
know the basic of many advanced topics of programming like
networking, GUI. I learn C++ a long time, and I do not know how
to program these in C++. Beside, Java is platform
independent. Java also have all the library classes you can use
that cover a lot of work for you.
- I am at PSU solely to learn computer science. I could
have chosen welding or basket weaving, but I did not. JAVA is
widely used for certain applications, and I felt if I intend to
work in the field, even if I never use JAVA, I need to know what
it is about. Most of the difficulties I had with the projects
were not deep theoretical problems but were of the "how do I
compile this?" type.
- I had been curious about Java, and Java programming was
actually fun for me. Java programming is a little different from
the other high level programming languages, so it was very
interesting for me to learn.
- Instructor was enthusiastic about teaching
Java. Interesting materials were covered in the course.
- I liked Java. The readily available information about
everything we will ever need at Javadocs, simplicity of the
language itself with so many classes for everything, and many
other characteristics (mainly no pointers) make Java very
- I loved this course! The projects were fun. The
lectures were entertaining. And Java is a really keen
- java is a useful and practical language that many
companines use these days.
- I dug the material and the teaching style. Plus, it
(finally) gave me a chance to dig into some OOD issues I'd been
- The motivation to want to learn Java.
- My personal goal for the class as described above and
knowing that I will never get out of technical support unless I
move in that direction.
- I generally don't drop courses unless I absolutely have
to. Besides, if I dropped courses all the time, I wouldn't
graduate until the next millenium.
- Primarily because I need credits to graduate and no other
class at this time was interesting enough.
- I really wanted to learn Java. I also found the class
interesting and entertaining.
- I like programming in object-oriented languages. It
makes much more sense to me than less abstract languages like C
or Prolog. Java is easy to program if you already know how to
program and you don't have to do any garbage
- Because the material seemed so easy and I have been doing
Java at work. And I heard that David Whitlock was the best Java
Professor at PSU (even though he is the only Java Prof.)
- I have to take a CS elective for my Computer Engineering
Degree.. and this one happened to fit my schedule. (night
- Your professionalism, the topic of Java, the assignments
and how the class is presented. I like the slides available
from the web, the mailing list, etc... Java is an interesting
programming language which I wish I had learned
- What I like of this class is the program assignment that
looks so simple but contains pretty much things. The assignment
was really helpful for beginners like me. JAVA itself is so cool
language that I can easily approach to big applications. If
there is other advanced JAVA class, I will take it.
- Well, since this is the last course I need for my degree,
I really didn't want to drop it. Also, I truly enjoyed your
teaching style as well as the subject matter.
Phew. Well, I'm glad my students have an opinion about the
course. But if you're still not convinced, you can check out the
comments from the first time
I taught this course. You'll notice that there were a lot fewer
students in that section...
Last modified: Wed Jul 4 17:26:36 PDT 2001