The Australian National
      University
ANU College of Engineering and Computer Science
Department of Computer Science
Printer Friendly Version of this
    Document

UniSAFE

COMP6442 Software Construction for eScience COMP6442

COMP6442
Software Construction
for eScience

"In the future, the rapidity with which any given discipline advances is likely to depend on how well the community
acquires the necessary expertise in database, workflow management, visualization, and cloud computing technologies"

(Gordon Bell, Tony Hey, Alex Szalay, Science, vol. 323, 6 March 2009, p. 1297–1298)

 

Welcome to COMP6442 for 2009. This is a dynamic Web site which is constantly being updated. Watch this site regularly.

The course web site is hosted on the WebCT Department of Computer Science web server, here



Syllabus

This is a Java-based introductory programming course which includes basics of object-oriented programming, algorithms and data structures, graphical user interface, good programming practice and software engineering.

The course is run in an intensive mode in the second half of the First Semester (weeks 7–12). The following topics will be discussed:

  • eScience and data-intensive research
  • Concurrent and distributed programming in Java: threads, sockets and MDPlus Server
  • Graphical User Interface programming with Swing and Java2D
  • Unified Object-Oriented design process with UML
  • Unit testing with JUnit framework
  • Automatic software project management using Ant and Maven
  • Software Patterns of OO design
  • Creational, Structural and Behavioural design patterns
  • Software Refactoring; Refactoring using Eclipse IDE
  • Design Patterns and Refactoring of eScope system
  • Design Patterns and Threads

Learning Outcomes

By the end of this course, you should be able to:

  1. Achieve an intermediate-level of experience in Java programming
  2. Enhance ones experience in self-directed learning
    • This course is fast-moving. Students are expected to revise or learn par ts of the Java API by themselves
  3. Achieve a theoretical understanding of object-oriented design patterns, UML class diagrams, and object-oriented software development
  4. Develop a practical understanding of design patterns and their use in code refactoring
  5. Perform unit testing on and efficiently manage (build, configure and deploy) a large software system using JUnit framework and build tool like Ant and Maven
  6. Learn how the software design principles are applied to creating a complex software used in modern scientific research

News

Make sure you check the forum message boards on a regular basis:

The schedule of activities
Class  Day  Start Time  End Time  Location  Week(s) run*
Lectures A–B Monday  3:00:00 PM  5:00:00 PM  PHYS T              (Building 39) 14, 17-21 
Lectures C–E Thursday  11:00:00 AM  2:00:00 PM  FSTY 103           (Building 48) 14, 17-21 
Labs Group 1  Thursday  3:00:00 PM  5:00:00 PM  CSIT N111        (Building 108) 14, 17-21 
Labs Group 2  Thursday  5:00:00 PM  7:00:00 PM  CSIT N111        (Building 108) 14, 17-21 
Workshop Saturday 10:00:00AM 3:00:00PM CSIT N115/116 (Building 108) May 9, 2009 
*Note: Week(s) run shows week of year not week of semester/session.

Choose a lab and register for it using StReaMS.

Consultations
  • No need to make an appointment if you want to see me at the official consultation time in my office N214:

    Day Time
    Monday 11.30am–12.30pm
    Friday 11.30am–12.30pm
  • To see me at different time, a prior arrangement is necessary — use email

Course Assessments
  • The total course mark is comprised of marks for the lab and homework exercises (10%), one assignment with a benchmark (5% + 15% = 20%) and the final theory and practical exam, 70%.

  • The assessment items will test the learning outcomes as follows:

    Assessment Item Weight Assesses Outcomes
    Labs/Homeworks 10% 1,2,4–6
    Assignment Benchmark 5% 1,2,4
    Assignment Proper 15% 1,2,4
    Final Theory and Practical Exam 70% 1,3–6
  • For greater details including the Final Course Mark, the Final Grade and the conditions for getting the Supplementary Examination, see the assessment scheme.

    Final marks are moderated in departmental examiners' meetings at the semester end and may be scaled as a result of this moderation.

General Course Information
  • Text book
    Henry's Book We will be using the book Design Patterns for eScience by Henry Gardner and Gabriele Manduchi, Springer, 2007, ISBN-10: 3-540-68088-8, 377 pages. The cost for students at the ANU COOP bookshop will be $140.95 ($128.26 with member's discount; the price is ridiculous, I know). One of the authors maintains the book website, which contains the Java code of the book's examples. Many of these examples are used in our lab exercises. Other recommended texts and learning resources are listed on the Resources web page.
  • Course administrative handout (PDF).

  • Course coordinator and lecturer is Alexei Khorev