Course Exam—COMP 308

Java For Programmers

COMP 308 (Java for Programmers) is a three-credit, upper-level computer science course that focuses on providing a solid grounding in object-oriented programming (OOP) in Java for students who have a background in procedural programming.  COMP 308 also focuses on advanced features of object-oriented programming.  This course can be used as an elective for students in the BSc (CIS), BA(IS), and the BSc (CIS-PD) programs.  Prior to enrolling, students should have completed COMP 268 (Introduction to Computer Programming in Java) or they should request permission from the course professor.  This course also has a challenge for credit option if that is something you are interested in.

Students will be required to download an Integrated Development Environment (IDE) for this course.  Personally, I recommend IntelliJ as it is free, it highlights errors, auto completes some text, it has an integrated debugger that is useful for solving programming errors and can be useful for the required written reflections.

Java for Programmers is made up of ten units, one quiz weighing three percent, four assignments worth five, ten, twelve, and twenty percent respectively, and an online final exam weighing fifty percent.  The ten units within this course cover topics such as program control, object orientation, reusability, concurrency, Java user interfaces, networking, and graphical user interface development.  To obtain credit for this course students will have to achieve a course composite grade of at least fifty percent, a grade of at least fifty percent on the final examination, and an overall average of fifty percent on the assignments.

Dakota Soares has been a student at Athabasca University for two years.  He states, “I started COMP 308 in June and I intend on finishing it in the last week of August.  I have enjoyed the course so far.  It is not the easiest course in the world, however I personally am enjoying it.  I like the fact that there is a lot more variety then in COMP 268 (four assignments in COMP 308 rather then two massive ones in 268).  In my opinion, the text could be less verbose.  There is a ridiculous amount of readings, and more than seventy-five “practice” programs that one could compile and try out.  Otherwise the format (I find) is good.”

When asked to describe a bit about the structure of the course, he states “The course has one quiz, three assignments, and one exam.  One should do the readings before the quiz (I did not and it was harder then I thought).  The assignment’s weights go up gradually and all the assignments appear pretty straightforward.  Each assignment can be completed in a couple weeks.

He continues, “Though I have not written the final exam yet, it is a mix (some short answer questions, some debugging, some programming, some reflection).  Even though I have not written it, I would applaud this style – rather then having a student program ten programs (as in the COMP 268 course), there is more variety (which in my opinion is much better).  The course outline even says students should not be expected to make their exam programs perfect, only that they be familiar with all assignment codes.  The exam questions are also all taken from the course’s objective questions.  Overall, I would recommend this course.”

So what is he learning in it? “This course focuses on teaching beginner Java programmers more advanced Java concepts.  COMP 268 is a prerequisite – in other words experience with an object-oriented programming language is a must! The course delves into Generics (a style of programming that lets you reuse large chunks), input and output, networking, inner classes, abstract classes, graphical user interfaces, concurrency, and gives a solid foundation in advanced Java programming and concepts.”

Dakota also provided some tips based on his experience so far: “I found it helpful to have a couple fellow students who I could bounce questions off.  Since this course veers into more conceptual territory, the Java Documentation was also helpful.  I did research a few things on the internet, but so far have not relied on outside resources (other than fellow students) too much.  One thing I will mention is that for the last assignment, it is easier to automate your Graphical User Interface (GUI) design using WindowBuilder, rather then typing everything out.”

Whether COMP 308 (Java for Programmers) is a degree requirement of yours or if the information provided above is of interest to you and you want to take it as an elective, this course will have you learning more advanced Java concepts.