Introduction to Data Structures and Algorithms

Second Semester, 2023/2024

Prescription

This course builds on COMP/XMUT 102, focusing on the techniques for designing, building and analysing computer programs that deal with large collections of data. The course addresses techniques for programming with collections of data, and the data structures and algorithms needed to implement these collections. The course expands programming skills and provides an understanding of the principles of data abstraction, algorithm design, and the analysis of algorithms fundamental to computer science.

Course Learning Objectives

Students who pass this course will be able to:
  1. read and write programs using standard collections (sets, lists, bags, stacks, queues, priority queues, maps)
  2. read and write programs using linked data structures, particularly tree structures
  3. read and write programs using recursion
  4. understand ideas of algorithm complexity, do an approximate analysis of simple programs with collections, and make efficient design decisions
  5. recognise, understand and use a selection of basic algorithms

Course content

This course is designed for in-person study, and students are strongly recommended to attend lectures and labs on campus. In particular, some assessment items or practical hands-on labs will require in-person attendance, although exceptions can be made under special circumstances.

Lecturers

Teaching Format

This course will be offered in person. During the semester, there will be two one-and-half-hour lectures (i.e. 2 x 90 minutes sessions) and one one-and-half-hour lab (i.e. 1 x 90 minutes) per week. The lectures will introduce the core material of the course and include interactive code demos. The lectures are critical for learning the material in the course.

We will run labs to provide extra help for students who want to discuss their assignment work in some detail with experienced tutors. The labs will be conducted by in XMUT.

Dates, Times, and Rooms: Lectures and Laboratories

The course will have lectures on Mondays and Wednesdays (Even weeks).

A schedule of lecture topics and assignment dates is on the website. Copies of the lecture slides will be available online.

There are no required texts for this offering.

The optional textbook for COMP 103 is:

  • Lewis, DePasquale and Chase, "Java Foundations: Introduction to Program Design and Data Structures", preferably 4th edition, though earlier editions will still be helpful.

You may choose to find additional resources, either printed books or web resources, that provide more background on programming in Java. You will find some of the resources on the course website at http://ecs.victoria.ac.nz/Courses/XMUT102_2023T2

Workload

The course is expected to have a total workload of about 150 hours. If you are still struggling with English, you may need to spend more time than this. This means you should expect to work on this course for about 10 hours every week.

Assessment

This course will be assessed through the following assessments:
  • Six assignments
  • One Test
  • Final examination

Assessment Item Due Date or Test Date Percentage
Attendance N/A %10
Assignment-6 in total Weeks 3, 5, 8, 11, 13 and 15 %18
Test Week 8 %20
Final Exam Exam period %52

Note: If you fail the course the first time and need to take the make-up exam, the make-up exam will only be part of your final grade - your final grade will be 28% of your coursework marks and 72% from the make-up exam.

If you get a higher mark in the exam than you did in the test, then we will increase your mark for the test up to your exam mark.

Late Penalties

LATE DAY POLICY (for Assignments). Work submitted:
  • 1 day after the deadline will receive a maximum mark of 90%,
  • 2 days after the deadline will receive a maximum mark of 80%,
  • 3 days after the deadline will receive a maximum mark of 70%,
  • 4 days after the deadline will receive a maximum mark of 60%.
  • 5 days after the deadline will receive a maximum mark of 50%.

No work will be accepted after releasing the solutions unless previously arranged with the course organiser.

Working Together.

Assignments MUST be done individually

Make sure you read the section on plagiarism below.

Academic Integrity and Plagiarism.

Academic integrity means that university staff and students, in their teaching and learning, are expected to treat others honestly, fairly and with respect at all times. It is not acceptable to mistreat academic, intellectual or creative work that has been done by other people by representing it as your own original work.

Plagiarism is presenting someone else's work as if it were your own, whether you mean to or not. "Someone else's work" means anything that is not your own idea. Even if it is presented in your own style, you must acknowledge your sources fully and appropriately. This includes:
  • The work of other students or staff
  • Material from books, journals or any other printed source
  • Information from the internet
  • Software programs and other electronic material
  • Designs and ideas
  • The organisation or structuring of any such material

Notes

You should always properly cite any work of others that you are including in the work that you submit.

Do not lend your work to others. If someone submits work that is the same as or very similar to yours you should expect to be asked to explain and, if the explanation is not satisfactory, to get zero.

If you are ever in doubt as to whether some action you have taken may be considered as plagiarism, you should consult your lecturer and/or clearly state on the submitted work the extent of the contribution from others.
  • Do not give your answers to other students – you may get zero!
  • If you copy another student’s work (assignment/test/final exam), you will get zero.
  • Do not ask other students for their answers – it is stealing their marks.
  • If there is a record of more than two previous cheating events in any VUW course, you will be referred to the Dean.

Plagiarism and Code

If you are completing a programming project, you may be allowed to use code segments from a software library on the web, from model solutions in previous courses you have taken, or even from other students. If you do this, you must clearly indicate all of the code that has come from another source and state the source. Unless your course requirements state otherwise, you are not required to cite algorithms, data structures or source code provided with the assignment or from lecture notes. If you are in doubt about the use of code that you have not written yourself you should check with your lecturer before submitting the program. If you have had help from someone else (other than a tutor), it is always safe to state the help that you got. For example, if you had help from someone else in writing a component of your code, it is not plagiarism as long as you state (eg, as a comment in the code) who helped you in writing the method.

Classroom Policies

  • No eating, drinking, or smoking.
  • Respect classmates’ ideas, opinions, and questions.
  • No behaviour that prevents other students from learning.
  • You are welcome to visit the instructor’s office in his office hours.
  • Take good care of the laboratory facilities.

Points: 15
Prerequisites: XMUT 102
Duration:
Starts: semester 2
Campus: XMUT