Taken - Semester 2, 2019
If you've done CSSE1001 or have some experience in Object-Oriented Programming (OOP), CSSE2002 is a great course to take. Throughout the semester, you will consolidate your understanding of OOP, build a cool game/app, and learn Java-specific concepts in which some of them can easily generalise to other languages.
The lectures were... okay. Fiona was the lecturer for this semester and I didn't find the lectures engaging. The terminology in the slides weren't clear, and it didn't really help me understand the concepts very well. Lecture attendance isn't really necessary; I just watched the recordings on 1.5 or 2x speed and then referred to the Oracle documents.
Tutorials were really helpful for the theory side of things, so I would make use of them. You get some practice throughout the semester of exam-type questions, while developing a deeper understanding of how Java works. Practicals were helpful and the prac questions/problems were related to some of the problems you'd encounter in the assignment.
The assignments were great for implementing good programming practices, developing a stronger understanding of OOP, and also becoming familiar with unit testing. You complete 3 assignments, with the end result being a complete program. Assignment 1 gets you familiar with writing in Java (method declarations, access modifiers, inheritance, manipulation of collections). Assignment 2 starts to implement some more logic into the game (this semester there was a focus on file I/O). Then assignment 3 is where you fiddle around with a GUI to tie it all together. Assignment 3 is quite easy compared to the previous two, which is great as you'll get more time to study for the final exam.
Organisation of the assignments, however, were pretty poor. Assignments were released late, and the solutions and tests contained errors. The Javadocs for the assignments often contained unclear or ambiguous specifications, especially in assignment 2 since we dealt with parsing text files. Be prepared to spend just as much, or more, time clarifying the specs than actually implementing the assignment.
The final exams shoudn't be too difficult if you go through past exams and the tutorials. Questions that I found difficult were the recursion, black/white box testing, and main() output questions.
Semester 1 - 2017
Lecturer this time was Joel Fenwick.
While he's a fantastic lecturer and really made it easy to understand all the course topics (if you actually went to lectures, unlike 70% of people), his ideologies on marking are a shock to many.
Unlike most other faculties, everything is marked (mostly) automatically. This means that if your code doesn't perfectly follow the specification, you may end up very quickly receiving a terrible mark regardless of your efforts. It's very difficult to appeal the marking process. They also frequently seem to be correcting errors in the marking program they've written, which lends to a general air of confusion and frustration surrounding assignment marks.
The blackboard organisation is also pitiful. Marks are never uploaded, and most announcements are made to the piazza forum. The only things available on blackboard are the lectures and tutorial/prac excercises (which are well organised, I'll give them that).
Pracs and tutorials aren't necessary, but a good idea if you need help - especially with the GUI topics.
Overally, this course is awesome - except the marking. The marking process does not, and will not accurately reflect student abilities regarding core learning concepts, tending to give much lower than deserved marks (not just for me - for many, many students I have talked to).
Semester 1 - 2017
There is no textbook
Overall this was a fun course. It is not overly difficult however the assignments can take up a fair bit of time. I would recommend that you get on top of the assignments as soon as possible. Assignment 1 and 3 are of easy-medium difficulty while allot of people found assignment 2 very difficult.
The labs are not mandatory, you can get through this course with out going to a lab however during assessment time they can be used for asking questions.
The tutorials will benefit you the most in regards to preparation for the final exam.
Overall a easy course that does not take up allot of time however the assignments can take up a whole weekend.
Semester 1 - 2017
Bsc (Comp Sci))
Pretty solid course that aims to formalize object oriented programming. Most of the concepts you should have seen or inferred from CSSE1001 with Python, so the jump is not that big. Overall, not very dense in content, and the lectures are majority worked examples (which are helpful). Lecture attendance dropped from a full house (Advanced Engineering) to about 40 in the first three weeks, and fair enough because the lectures were 9am and 8am. They did start getting very, very boring towards the end of the course. It's probably not required that you go to the lectures; reading the textbook and then watching the lecture is sufficient for understanding the concepts. Supplement this with practical/tutorial attendance and it should be fairly easy to do well. Larissa was available for one hour after each lecture to answer any questions.
Assignments were slightly challenging, but nothing that anyone who kept up with the content couldn't do. All three were basically "Implement the functionality outlined in this spec sheet". There's plenty of time and practicals/tutorials to help get them done. It's probably advantageous to spend some time (not a lot) learning the fundamentals of Java (online tutorials, or from the textbook) before starting the course. This way you'll have no problems engaging with the content of the first few weeks.
The exam ran an identical format to those of previous years; 2 hour open book written response. Easy if you work through the past exam papers (or even complete them and bring them in with you if you're so inclined).
The course is run entirely through a "Course Material" page (not blackboard, although marks of course still show up there). Lectures and lecture code (the worked examples) along with practical and tutorial material for that week all went on that page. I personally didn't attend practicals because they were too lengthy/boring. However since attendance of those sessions is fairly low, there's lots of opportunities to go and get help at them.
I enjoyed the coding, but sometimes Java can be a bit convoluted. Note that you should have Eclipse IDE (free) to participate in this course - it's a good idea to get familiar with its set up before the course starts, as this is where all coding will take place.
Semester 1 - 2015
No. But it is helpful.
This course is taught in Java and is half a lesson in taking a rigorous approach to software specification and design, and half a lesson in object oriented programming (the dominant paradigm for high level industrial programming languages).
Larissa Meinicke (the current course co-ordinator and lecturer) is engaging and has a passion for the subject, but sometimes makes minor mistakes during the lectures and occasionally confuses different terminology (and this course has quite a bit of terminology).
The assignments are challenging but not impossible, just expect to spend a bit of time in front of a PC, and ask questions of the tutors and on the newsgroup, because half the battle is getting more detail or clarification of the assignment specifications (much like the 'real world' of software development in industry). The data abstraction (1st) assignment is particularly easy, and so is the GUI (3rd) assignment once you familarise yourself with the Java UI toolkits, but expect one challenging assessment requiring the implementation of a tricky algorithm you might not intuitively understand. Also note that these assessments aren't all about getting a working solution - they're also very much about the structure, readability, maintainability and documentation of your code.
The final exam is challenging but previous exam papers are good practice.
Anyone with experience in an OO language (in particular Java or its cousin C#) starts the course with an advantage, but the ability to program in that language is distinct from the ability to design a good solution, and this course considers both of these aspects (with perhaps more focus on the latter).
It's a great course with serious real-world applications, but was let down slightly by the lecture delivery and delays with assessment (the dates didn't end up remotely resembling the course profile).
Semester 1 - 2014
Could get by borrowing a library copy occasionally
This was a fairly fun course. Java is the name of the game and surprisingly, it's a pretty easy one. It's real easy to pick up if you've done CSSE1000; most Python concepts map over quite well and new concepts are quite intuitive. There were 3 assignments, not too hard and plenty of time to do them but the second one was a puzzler (the kind of thing that mathematicians work their lives away to solve). The very same difficulty range is carried over into the final exam; most questions make sense and are doable but then one or two will just blindside you. It's fair to say, a good amount of emphasis is put on analysis in this course. The lecturer was pretty good at her job but she kept on stammering and repeating sentences (like every 3 minutes); definitely got annoying to me. Learning resources/content is pretty good but you'll probably need to YouTube it up a little to really get things down pat. The textbook is almost a waste of money though, don't bother buying it unless you're a bookworm.
Oh and yea, half the assessment was like 2 weeks late but deadlines were shifted so who cares?
Semester 1 - 2014