Previously on CS410J...
Our experiments with in-class pair programming continued this year. Let's see what the students thought about it.
- What do you wish you had known before taking this course?
- I wish I had known a little more about IntelliJ, because it is a powerful tool with a lot of shortcuts and such to memorize.
- How much time each assignment was going to take. I had a very busy summer with work and classes and was forced to not spend as much time on the project as I wanted.
- I wish I had been more familiar with TDD in advance. This would have given me more chance to practice it while also under pressure of learning/applying new Java concepts
- I wish I had known how much pair programming was going to be going on. I am not that about it and it was all the time.
- Interfaces, serializing objects, and to start homework 2 immediately after finishing homework one.
- How awesome IntelliJ and Maven are.
- A little web development might have eased Project 4/5, but I still had loads of fun with them.
- Just more time management skills and maybe some java would have been helpful. However, Mr. Whitlock taught this class very well. I do not have any complains about him nor the homeworks. They are designed well enough to challenge our thinking yet be able to complete them.
- I wish I had studied about client/server programming before taking this course. It was a steep learning curve for me and I struggled a bit. Also setting up Maven, Git, and IntelliJ tools took time to get configured, so I wish I had worked with those tools prior to this class.
- I don't believe there was anything I wish I knew that I hadn't when I started. I found the website before the class started so I had a pretty good idea of what to expect.
- That the args on project 1 would be passed in as an array of strings, not as a long string with args separated by spaces.
- I felt pretty prepared for this class.
- I felt that I was pretty well prepared for this class, but I had some difficulty initially just establishing and getting used to the programming environment we were using. Up until this point I hadn't ever really needed to use the command line on my own local system, which was needed for the koans and the web stuff we were doing. My methodology before was to SSH into the CS boxes when I needed to use the command line there, and then use the IDEs on my local machine for programming. This class forced me to combine both of those things directly, as I wasn't able to move files back and forth to get by any longer. I decided to use Windows Poweshell which I felt resembles the Unix command line more than CMD. I also wish I was more familiar with GitHub coming into this class. I should have forced myself to set it up in the beginning of this class so that I could get familiar with it as things progressed, but I got slightly behind initially and then never came back to it. (Repositories were another failed topic in CS300).
- More java
- The only notable difficulty I had was getting the Maven and GWT tools to work correctly on the latest version of Ubuntu, because there is no "normal" way to do them. If Ubuntu could be treated as a special case, and additional instructions given for it, things like the Koans and project 5 would be more doable.
- Nothing in particular.
- interface, abstract class and OOP
- I wish I had known more about Maven and Github before taking this class. Also, doing XML server configuration would have been nice to know before taking this course.
- I wish I had a bit more experience with swing components in Java (I've built GUI's before, but in Tk and in qt). I also wish I had more background with the CS environment at PSU.....honestly, I wish you could run this class without using the CS machines at all. Java is supposed to run anywhere.....it's a huge hassle for those of us with day jobs to get onto campus during the day when some TA can run a script to activate an account for you.
- I wish I had been a little more familiar with Java and that I had seen some sort of web development. Or maybe I wish I had more time. Probably more the latter.
- I've used Java and C# in the past and I'm very familiar with all the programming concepts from my lower division classes. In some side projects I've worked with HTTP requests plus the company I work for has a REST API. So honestly I'm not sure if there was something more I could have known.
- I had all the knowledge I needed for this class.
- I wish I had been more familiar with Java, and done more test driven development.
- Nothing. I think the expectations aligned with my assumptions and academic ability.
- Java GUI programming.
- What is the most important thing you have learned in CS399J?
- Test driven developement
- JUnit testing by far. I was rusty in Java and the class taught me a lot and helped me brush up on my existing knowledge.
- GWT was very invigorating because I feel it equips me to do something in the real world. But otherwise TDD changes the way i will program for the rest of my life.
- I have become pretty familiar with real-world Java tools that are going to be used outside of academia. That's good.
- Test Driven development and testing. Its something I was never exposed to before and it worries me that if I didnt take this class I never wouldn't know about it.
- How to program and refactor much more quickly and efficiently with an IDE vs vim or emacs and javac
- Communicating data between client and server. I'm sure that will come in handy down the road.
- test driven development was really cool. I spend a lot of time doing the homeworks as i did in compilers. I really enjoyed the class. GREAT TEACHER! I wish he would teach more classes. I'm more than happy to take his classes.
- Building up from a small command line application to a full on GWT web app was a great and satisfying experience.
- I relearned some of the basics of Java, as it had been awhile since I used Java before this class. It helped me learn some of the niceties that were in Java that I didn't know about, such as implementing Comparable to use sorting, TreeMaps, etc.
- The value of TDD.
- I learned a lot about interfacing with web clients, and maven.
- Servlet and WGT
- I assume CS399J is the old name for CS410J? I think the most important thing I've gotten out of this class is the extra programming experience, and seeing examples of unit testing. The class that best sets you up to take this course is probably CS300, as it outlines how to go about writing a larger piece of software, covers unit testing, and my CS300 class was required to write a client/server chat application in Java. Unfortunately my CS300 class was a complete joke and we literally learned nothing, and then taught ourselves how to write a chat application, which many people failed to achieve. This class was very helpful at filling in a lot of those gaps left behind from CS300, so that was probably the most beneficial thing. Additionally, I like getting more programming experience, but find that I have a hard time motivating myself to work on it without having deadlines set in place such as is required with a class. The best way I learn programming is from seeing small examples and then being forced to work though it on my own, which is pretty much how this class was run.
- The most important thing I learned is the usefulness of pair programming. Many of my errors are the simple little mistakes you miss because you're staring at them too long, and they immediately dry up as soon as another pair of eyes is added.
- I really valued the TDD and junit framework. I also feel I learned a great deal about how to leverage and utilize the IDE.
- to do thing with the server
- How to implement Test-driven development techniques and use the tools that are aid in that type of development.
- I really liked the programming assignments for this course. Getting to be able to program client/server applications for use over web was something really neat and I'd like to do a bit more of that in future. I wish there were a bit more emphasis on UI development.....maybe in regards to a client/server UI where client is managing jobs/running jobs on a networked UNIX node. I work in a TCAD/process-development group at Intel and we get hit with that kind of request all the time......basically create nice UI wrappers to control operation of tools that runs on 1000's of CPU's....normally have client on windows and server processes on unix.
- I learned a lot of really great things. Experience with Maven, Git, REST, and servlets/web development was extremely useful.
- In my mind getting more acquainted with REST APIs, HTTP requests, unit testing, maven, and the details of Java were all incredibly useful to me. The most important thing is hard to pin point because APIs are so good to know about but it is a Java class after all. I may now actually be doing a side project with a Java-based RESTful API.
- I think working with mvn, and GTW. I never worked with them before.
- That I don't like GWT
- I REALLY appreaciated the test driven development and emphasis on unit tests.
- Java servlets
- If you could give one piece of advice to someone taking this course in the future, what would it be?
- Keep up on your work every week, because it comes at you fast. Falling behind will accumulate quickly.
- Dedicate time to the course. There is a lot of valuable material in the class and to make the most of the class watch all the lectures, do all the examples.
- Start the Koans early. Use them as an opportunity to brush up on Java. Try to practice doing TDD beforehand.
- If you do not want to do Java web development, don't take it.
- Start project 2 right after finishing project 1 because project 1 is easy.
- Don't be afraid to experiment, sometimes a crazy idea can end up being the solution to a problem. Actually watch the lectures, I can't tell you how many fellow students I watch struggle with things that were trivial to me after watching the lectures. Google is your friend, learning how to correctly phrase search queries and parse the results for what you need can go along way to helping you program more efficiently. Do not wait till the last minute to work on projects, your grade will suffer if you do.
- Don't procrastinate! Start the projects early, ask questions whenever you need, and try to have fun!
- Start homeworks as early as possible!
- Be ready to put in work, especially if you haven't coded Java in a while. It took me time to get into the flow of things. But even if you feel overwhelmed, the experience can be pretty rewarding in the end.
- Be sure to write maintainable code, with lots of unit tests (especially date parsing), as most of these components will be reused in future projects. If they don't work well the first time they could screw up your project (and your grade) later if you don't fix them.
- Don't go too crazy on writing tests.
- Ask for clarification on anything that seems ambiguous in the homework.
- Understand the concepts before writing code.
- I think this course is only right for people who are driven to find solutions to their problems, and who are able to work effectively independently. It's nice taking a class with others and being able to discuss similar problems both in person and online, but ultimately a lot of this material you have to work though on your own. Some people seem to enjoy the challenge or at least are very determined to come up with a way to solve any problems they encounter, while others end up getting frustrated and don't like the stress that it may bring. For people who prefer extra guidance, this may not be the class for them, or at least I would recommend to them that they take it with other people they can work through it with. Also, get an early start and take the time to get familiar with the required tools as early as possible. I'm a chronic procrastinator, and I think I got less out of this class than I could have because of it.
- Know your java.
- I'd tell them to definitely look at the website before the course began and to keep up with the online lectures.
- Start on the homeworks early on and keep ahead of things. Also once you think your done go back and carefully read the assignment specs and then ensure you match the requirements.
- this is very good class, you will learn a lot about java and dependience
- If they are unfamiliar with Java, or know it but not well, I will tell them to do the Java Koans early. It was very helpful to learn all the small niches of Java before the more difficult projects come. Otherwise, I would tell them not to forget to do the Plan of Attacks.
- Don't fall behind on the projects......they do take several hours each to finish. You won't finish them the night before unless you already know the material.
- Start projects early! Don't get behind!
- A desire to learn about Java's more advanced applications is very helpful.
- Start your projects early, and attend office hours for questions.
- Don't wait until the night before to start your assignments. (But that's every class)
- Don't bother buying the book.
- What made you stay in this course?
- I love Java. I felt like a was learning a lot. The assignments were enjoyable.
- I loved the material and the assignments
- Great professor and very interesting content.
- The programming assignments were interesting and challenging.
- The projects expanded my knowledge of java quite a lot. It also had lots of industry concepts that will be helpful forg etting a job.
- How easy it is to get help and work ahead when I got bored of the material. By week two I had the first 4 projects mostly implemented, this gave me lots of time to experiment and really learn the features of IntelliJ and Java 8's new syntax and how it could benefit me.
- Just being able to program and hack away on the weekends. I felt like I was just doing a hobby, but getting a grade for it.
- My passion for learning programming, perseverance, and really good reviews about the teacher. Setting up the environment scared me bit about this class because I had never done maven or junit. All of this stuff was totally new to me and I had no idea what was going on. But I stayed through it and eventually I start to understand them better.
- The desire to improve the way I code. Some CS classes offer little to no coding experience, so I felt like this course was a way for me to challenge myself and become a better programmer.
- The whole project structure was very interesting and refreshing compared to other courses. We built upon our work each time and that's similar to that of the real world. The class projects were also intriguing, as I have never made a Servlet before.
- The extreme usefulness of the course.
- The awesome lectures
- Using Java to implement something very interesting and relevant. These days, web is such a big field and knowing more about how APIs/HTTP work is useful.
- Fun projects
- Well I never drop a course if I know it'll stay marked on my transcript or if I'll lose money, and since the drop deadline for this course was at the end of week one, after only our first class, the decision to stay had to be made entirely on my first impression of the class. The reason I stayed after the first night was because Dave seemed like a cool and reasonable person, he spoke clear comprehensible English (it saddens me that this is even a factor at PSU), he seemed like he knew what he was talking about, I liked how all of the course material was available online, it seemed to me like this class would give me better insight into what industry was like compared to most of my other classes, and because I wanted to learn more Java.
- I stayed in the course because it was interesting, doable, and qualifies as an upper division CS elective.
- I value the content and desired to complete the course.
- learn more about java
- I've never dropped a course. That's just not my style. That being said, I think this course was great. It had a lot of character on the course website, the Google community, and in the class lecture videos. It was challenging but not impossible, and the professor/grader we both easily accessible online. Also, this class allowed me to take it completely via the web which really helped with my incredibly busy schedule this term.
- I never thought about leaving the course.....I really enjoyed this and wish we had a couple more weeks.....I'm watching a couple youtube videos a week to learn things we're skipping over.
- I enjoyed the material and felt that it would be really useful in the future.
- Simple and easy to follow.
- I tried to take the course last summer, and it didn't work out. So this time. I didn't want to wait until next summer before taking the course.
- A lot of things. I really appreciated how classes were run. (Minimal lecture) I also liked most of the assingments. But if I had to pin point one thing, I think that David is just a really thoughtful, charismatic instructor.
- The course material was interesting and useful.
Want to hear what other people had to say? There are lots more comments from previous
terms.
David Whitlock