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:
Component | Marks |
Submission 1 | 2 |
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.
- TB newTB (char text[]);
- char *dumpTB (TB tb);
- int linesTB (TB tb);
This will be worth 1 mark.
You must also submit blackbox test for the following functions
- TB newTB (char text[]);
- char *dumpTB (TB tb);
- int linesTB (TB tb);
- void swapTB (TB tb, int pos1, int pos2);
- void deleteTB (TB tb, int from, int to);
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.