Course syllabus

Course Overview

COMPSCI 331 – Large-Scale Software Development builds on skills developed through stage 2 software development courses (COMPSCI 230, COMPSCI 235). COMPSCI 331 provides a mix of theory and practice that relates to the development of large-scale software systems. As well as written assignments covering evaluation and application of concepts, the course includes a practical group project that involves building a Web-based system using Java technologies. There are a set of labs to support working in teams and the concepts relevant for the project.

Digital Course Outline

The official course outline, with learning outcomes, general details of assessment, and other important details relating to the course are on the Digital Course Outline site.

Staff

Course Coordinator:

Lecturers:

Graduate Teaching Assistants:

  • Thong Teav Lab B04 Tuesday 11-12hr 402-208
  • Ryan Tan Lab B05 Wednesday 14-15hr 303S-B75
  • James Cooper Lab B06 Tuesday 14-15hr 303S-B75

Class Representatives

Your class representatives are:

Meeting Times

Lectures

Laboratories

(Brief directions below)

Course Resources

Resources on-line

Resources for the course are available through the Canvas Learning Management System, located at http://canvas.auckland.ac.nz

Laboratories

The computer labs for scheduled labs for this course is 303S-G75 (Science Main, Room G75) and 402-208 (Engineering, Room 208). 303S-G75 is located on the ground floor of building 303S (next to Wellesley Street). 402-208 is located in the Engineering Building. Enter through the main entrance and turn left and go through the doors. On the other side of the room you enter are the stairs (and lift). Take these down 2 floors.

You are free to use other computer systems (for example, your own computer) for work related to this course, however, the University of Auckland cannot provide any resources to support you doing this. This means that staff cannot provide additional help with installing the needed software and other similar things on non-university computer systems, except for the support that we give in the lab sessions.

Text

There is no specified text for this course. Individual readings will be assigned on a class-by-class basis. Other course material will be made available or otherwise identified during the semester.

Announcements

Announcements about the course will be made in lectures, on Canvas or via email. In keeping with University regulations, you are expected to check your email at least once a day. There is also a discussion forum on piazza.com. This will be used for informal discussion regarding course material, and as a backup resource for making announcements about course and related material.

Lecture Recordings

Lectures will be recorded and made available as soon as possible after each lecture.

NOTE: For availing maximum learning opportunities, students are strongly encouraged and expected to attend all classes (lectures and laboratories) in person.

Assessments

The tentative assessment items are:

  • Labs 2% each (maximum of 10%). Weekly starting week 2, 7 total planned. Most will require working in teams, however assessment will be done individually.
  • Assignment 1 Team Evaluation (written report, 5%). Due week 9. Individual submission.
  • Team Project (30%). Due week 8. Team submission.
  • Assignment 2 Archiecture development and evaluation (written report, 15%) Due week 12. Individual Submission.
  • Quizzes (two, 20% each). Wednesday weeks 6 and 12. Delivery to be determined. Could be on Canvas or could be off-line.

Course Expectations

Large-scale software development is only successful if those working on it function well as a team. The same is true of teaching large courses such as COMPSCI331. In the case of a course, the team consists both of the staff and the students, each with different roles and responsibilities, just as in any software development team.

The role of the staff is to do its utmost to provide a smooth and valuable learning experience for the students. The role of the students is to use the opportunities offered to learn the content and to engage in the learning process. Each team member should respect the needs and contributions of other team members.

Important aspects of a successful team is coordination and communication. Coordination works best when working to the team schedule, which in this case means the course schedule. Communication works best if it is early and respectful.

A fuller discussion can be found in the Learning in the School of Computer Science document

Getting Started

This course will use the Java Programming Language for labs and assignments. If you have not used this language in a while you should consider reviewing it.

The course will also use a number of tools and technologies typical of large-scale software development in Java. While some will already be familiar and others will be presented in the course, it is worth reading up on them in advance:

  • Java IDE (Eclipse or IntelliJ are acceptable)
  • Git and GitHub
  • Maven (see Course Resources)
  • Representational state transfer (REST)

Status

  • Draft candidate complete (20210211)
  • Published (20210217)
  • Update - clarifying wording of assessment due to Level 3 (20210301)
  • Update - added Zoom link for lectures (20210304)
  • Update - added Zoom link for labs (20210305)
  • Update - added Course Reps and pointer to lab directions (20210316)

Course summary:

Date Details Due