COMP1927 Assignment 1

Assignment 1 (COMP1927, 16x1): Textbuffers

Submission 1: Due: 23:59 Tuesday 15th December 2015

- NO LATE SUBMISSIONS ACCEPTED for submission 1

Submission 2: Due: 23:59 Tuesday 22nd December 2015

You can find the tests used during submission 1 here

You can find the tests used during final submission (that I have not set up yet) here

Your task is to implement an abstract textbuffer data type that meets the given interface. In addition, you will have to write wrapper code to test your implementation. Ensure that you also test for boundary conditions and for memory management bugs.

You will submit the C code implementing the textbuffer ADT and your testing code. Click here for the interface specification.

There is also a FAQ (frequently asked questions page) FAQ

Marking

The assignment is worth 10 marks. The marks breakdown is as follows:
ComponentMarks
Submission 12
Autotesting of functionality 5
Testing 1
Subjective evaluation of style 2

Submission 1 - 2 Marks

You will submit an initial version of your implementation of textbuffer.c and and an initial version of a file named testTextBuffer.c. You do not need to have COMPLETELY finished your assignment for this submission and may modify it as much as you like for the final submission. Your initial implementation will be automarked and must include the implementation of the following functions.

This will be worth 1 mark.

You must also submit blackbox test for the following functions

These tests will be run against some of our own correct and also incorrect implemetations of textbuffers. Your test file should be able to pick up our errors, but pass our correct implementations.

Style - 2 Marks

For you final submission, style marks include marks for choosing an appropriate representation for your ADT and for efficiency of the algorithms you choose. For example, you will lose marks if your implementation of a function has work complexity of O(n^2) when there is a solution with O(n) or O(n * log n).

Testing - 1 Mark

For your final submission you will completing your blackbox tests and writing whitebox tests. We will not actually be running your whitebox tests, your tutor will be marking them subjectively, but please make sure they compile.

Final Submission deadline

Unless otherwise stated if you wish to submit an assignment late, you may do so, but a late penalty reducing the maximum available mark applies to every late assignment. The maximum available mark is reduced by 10% each day it is late and can be submitted a maximum of 5 days late. Assignment extensions are only awarded for serious and unforeseeable events. Having the flu for a few days, deleting your assignment by mistake, going on holiday, work commitments, etc do not qualify. Therefore aim to complete your assignments well before the due date in case of last minute illness, and make regular backups of your work.

Submission details

To submit the assignment execute the following command on a CSE machine:
1927 classrun 16x1 give assn1 textbuffer.c testTextBuffer.c
You can check you submission with
1927 classrun 16x1 -check assn1
The system permits you to submit multiple versions of your code. We will grade the last submission. Please already submit partial solutions and submit early. The system may be heavily loaded close to the deadline. We will not grant special considerations for late submissions due to delays of submissions close to the deadline.

Plagiarism

This is an individual assignment. Each student will have to develop their own solution without help from other people. In particular, it is not permitted to exchange code or pseudocode. You are not allowed to use code developed by persons other than yourself. If you have questions about the assignment, ask your tutor Before submitting any work you should read and understand the following very useful guide by the Learning Centre How Not To Plagiarise. All work submitted for assessment must be entirely your own work. We regard unacknowledged copying of material, in whole or part, as an extremely serious offence. For further information, see the Course Information.