Course syllabus

Overview

COMPSCI 235 - Software Development Methodologies course will cover an introduction to software  development, including processes, best practices, tools and quality assurance techniques such as testing. Students will also learn about organizing development activities and working in project environments. Central to the course will be a practical assignment, where students learn to apply some of the important methodologies and gain hands-on experience.

Learning Outcomes and Topics Covered

Learning Outcomes

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

High-level outcomes

  • understand the principles of software development process
  • demonstrate a working knowledge of modern software development practices
  • explain and use tools for professional software development
  • develop a small software application in Python using software development process, practices and tools
  • polish your Python language application skills

Low-level outcomes

  • Processes: explain fundamental concepts of software development processes, including software development lifecycle, phases, iterations, and practices
  • Requirements Modeling: explain and apply basic techniques of requirements elicitation and modeling, including basic data modelling
  • Programming Best Practices: explain and apply programming best practices, including coding style standards, code documentation, common coding errors, defensive programming, code reviews, debugging and refactoring
  • Development Tools: explain the main concepts of development tools and be able to use their basic features, including integrated development environments, build tools, defect tracking tools and version control repositories
  • Testing: explain and apply concepts of software testing, including test cases and test suites, testing frameworks and coverage criteria

Tentative List of Topics

We will be covering the following topics (mainly introductions) in the course:

  • Agile software development
  • Software Testing
  • Database design and implementation
  • Source control tools
  • Continuous integration and build tools
  • Requirements Gathering and Elicitation
  • Introduction to Python Flask
  • Software design practices
  • Design patterns

Course Pre-requisites

15 points from COMPSCI 105, 107, 130

Teaching Staff

Course Coordinator:

  • Dr. Martin Urschler

Lecturers:

  • Dr. Ian Warren
  • Dr. Daniel Wilson
  • Dr. Martin Urschler

Availabities of Tutors and Lab/Assignment Supervisors:

  • Nisarag Bhatt
    Available from week 10 in the scheduled lab sessions on Tuesday 10-12 and Wednesday 12-1.

  • Qiming Bao
    Available from week 10 in the scheduled lab sessions on Tuesday 12-1 and Wednesday 9-11.

Class Representatives

Your class representatives are:

  • Alvin Cheung (ache706@aucklanduni.ac.nz)
  • Nigel Bell (nbel113@aucklanduni.ac.nz)

Contact Details

Students are strongly encouraged to ask questions in class, in labs, or to approach instructors immediately after lectures or labs. Pending queries can be posted on Piazza for wider addressal, or simply by email. For more complex questions, please see instructors during office hours, when doors are open or after agreeing on a time by Email. 

Lecture and Laboratory Schedule

Lectures

  • Monday 2:00 - 3:00 pm, 303-G23 (Sci Maths & Physics, Room G23)
  • Tuesday 2:00 - 3:00 pm, 303-G23 (Sci Maths & Physics, Room G23)
  • Wednesday 8:00 - 9:00 am, 303-G20 (Sci Maths & Physics, Room G20)

Laboratory

  • Tue 10:00 - 11:00 am, G75 (B02C)
  • Tue 11:00 - 12:00 pm, G75 (B03C)
  • Tue 12:00 - 1:00 pm, G75 (B04C)
  • Wed 9:00 - 10:00 am, G75 (B05C)
  • Wed 10:00 - 11:00 am, G75 (B06C)
  • Wed 12:00 - 1:00 pm, G75 (B08C)

Assessment Components

Post-lecture quizzes: 5%

This will include biweekly quizzes on CodeRunner3 website. You will be able to access your exercises by logging into: https://www.coderunner3.auckland.ac.nz/moodle/

The quizzes will start in week 3 (content of first three weeks) and finish in week 11.

Lab Performance: 10%

Starting in week 2 we will have lab sessions. These will go on every week until week 11. The labs in weeks 2, 3 and 4, as well as weeks 8 and 10 will be marked. You will be required to follow the tutor instructions and engage in the lab exercises. During the lab you will write a journal that contains what you did, either by hand on paper, or in an digital format. The scanned journal (or the file you created) will be submitted to the assignment dropbox as a pdf and will be marked. Each of the marked labs will be worth 2%.

Labs immediately before an assignment due date are for questions and assistance regarding the assignment.

Assignments: 40%

3 assignments are required to be completed during the span of the course. These will be mostly manually assessed. The current (tentative) schedule for submitting the assignments is the end of teaching weeks 5, 8, and 12 respectively.

Final Exam: 45%

The final exam will be worth 45% of your total assessment. The format of the exam will be multiple choice questions.

 

Update on the pass requirements (October 6, 2020):

  • Due to the COVID lockdown in Auckland, the Faculty guideline regarding pass requirements in Semester 2 2020 is going to be less restrictive than the original requirements (shown below). There will be NO requirement to pass the practical part (the three assignments) on its own. Instead, there will be the requirement to pass the invigilated final exam, as well as the overall course.
  • A pass will be defined by receiving at least 47% of the marks for a component, not 50% as in the original requirements.

Note on overall pass requirements (August 1, 2020):

  • To pass the practical programming component, you need to achieve a pass (i.e. at least 50%) in the combined total of the three assignments.
  • To pass the invigilated final written exam, you need to achieve a pass (i.e. at least 50%).
  • You also need an overall mark of at least 50% out of the full course total of 100%.

 

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 lab for scheduled labs for this course is 303S-G75 (Science Main, Room G75). G75 is located on the
ground floor of building 303S (next to Wellesley Street). You are free to use other computer systems (for example,
at home) 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. 

Workload

The workload for this course is approximately 10 hours per week, consisting of 2-3 hours of lectures (Wednesday morning will only be used as needed), 1 hour of lab, 6 hours of self-directed study (including assignments, post-lecture quizzes and preparation for exam). The workload is unlikely to be evenly spread across all weeks.

Rules and Policies

There are a number of rules, regulations, and policies that govern your time at the University. The general ones
are described in the University Calendar (available at the library and from https://www.auckland.ac.
nz/en/for/current-students.html under “Academic Information”). Those particular to Science
are available from the Science Handbook (available from the Science Faculty Office, and from the Science website). Ignorance of these rules and regulations is not an excuse.

Cheating and Plagiarism

Cheating is viewed as a serious offence by The University of Auckland. Your grade is meant to reflect your ability
to do the work asked of you. If you do anything that may result in you getting a grade that is higher than your
ability and understanding deserves, then that is unfair to other students. In particular, if you submit work that is
not your own and do not make it clear that it is not your own, then you may receive a grade that leads to a higher
grade than you deserve, which is unfair to other students. The staff in this course reserve the right to apply any
method that is practical to detect all forms of cheating.

Penalties include receiving no grade for the assessment item involved, and the incident may be referred to the
University Disciplinary Committee. More details are available from the Science Undergraduate Handbook or
from https://www.auckland.ac.nz/en/about/teaching-learning/academic-integrity.html.

Other Important Links

Everyone should be aware of the contents of the following:

Course summary:

Date Details Due