Course syllabus

Overview

COMPSCI 280 - Introduction to Software Development 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.

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
  • Modelling with UML
  • Software design practices
  • Graphical user interface

Course Pre-requisites

15 points from COMPSCI 105, 107, 130

Teaching Staff

Course Coordinator:

  • Dr. Paramvir Singh (weeks 1-9)

Lecturers:

  • Dr. Paramvir Singh (weeks 1-6)
  • Dr. Allan Fowler (weeks 10-12)

Lab Supervisors:

  • Behzad Farokhi (Graduate Teaching Assistant)
  • Monica Bian (Graduate Teaching Assistant)

Class Representatives

Your class representatives are:

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. 

Paramvir Singh

  • Email: p.singh@auckland.ac.nz
  • Phone: 99235581
  • Room: 303.467

Allan Fowler

  • TBA

Class Representatives

Your class representatives are:

  • TBD

Lecture and Laboratory Schedule

Lectures

  • Tuesday 3:00 - 4:00 pm, 303-G20 (Sci Maths & Physics, Room G20)
  • Wednesday 3:00 - 4:00 pm, 303-G20 (Sci Maths & Physics, Room G20)
  • Thursday 3:00 - 4:00 pm, 303-G20 (Sci Maths & Physics, Room G20)

Laboratory

  • Mon 1:00 - 2:00 pm, G75
  • Mon 3:00 - 4:00 pm, G75
  • Mon 4:00 - 5:00 pm, G75
  • Wed 8:00 - 9:00 am, G75
  • Wed 9:00 - 10:00 am, G75
  • Wed 10:00 - 11:00 am, G75
  • Wed 12:00 noon - 1:00 pm, G75
  • Fri 9:00 am - 10:00 am, G75

Laboratories begin in the 2nd week of semester. Please re-check all room allocations closer to the time on SSO as they often change around the start of semester.

Laboratories are designed to provide you with hands-on knowledge of software development process, tools and practices learnt in lectures. An instance of agile software development process will be used in this course, and especially during the lab times. 

There will be 10 lab sessions (including 6 graded sessions). These are structured as follows:

  • Lab Exercises:
    • Weeks 3, 5, 6, 9, 11  [Assessment Contribution: Yes; Attendance and Lab Performance weight-age]
    • Weeks 2, 8
  • Assignment Support
    • Weeks 4, 7, 11 - (see the Assignments section) [Assessment Contribution: No, except Week 11 which is also a lab exercise session]
  • Journal Marking
    • Week 10 [Assessment Contribution: Yes]

Assessment Components

Post-lecture quizzes: 10%

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

Lab Performance: 10% 

The laboratories assessments are worth 10% of your final mark. Each even lab will have 2% marks for both attendance and lab performance. That is, almost every alternate laboratory session contributes towards your final grade. Hence, before coming to these labs, you should always come prepared with the course material covered in lectures.

Assignments: 24%

3-4 assignments are required to be completed during the span of the course. These will be manually assessed.

Journals: 6%

You are also strongly encouraged to take good quality notes not only during lectures and laboratories, but also when doing self-study. We recommend that students get into the habit of using a Journal, that is, a hard-bound ruled note book used to record any information related to the course (and indeed, all courses). Writing and maintaining your Journal this way would satisfy this requirement.

Final Exam: 50% 

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

Tentative Passing Criteria:

Practical Component (Labs, Assignments, Quizzes, and Journal): Minimum 45-50%

AND

Theory Component (Exam): Minimum 45-50%

AND

Overall: Minimum 50%

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 help with installing the needed software and other
similar things on non-university computer systems.

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 3 hours of lectures, 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