ITECH1400 Fundamentals of Programming - Assignment 1 – Palindromes and Anagrams

Overview

In this assignment you will be given a plain file containing a large list of English words from which you must select ones that have particular characteristics.

Timelines and Expectations

Percentage Value of Task: 20%

Minimum time expectation: 20 hours

Learning Outcomes Assessed

The following course learning outcomes are assessed by completing this assessment:

Knowledge:

K1. Identify and use the correct syntax of a common programming language.

K2. Recall and use typical programming constructs to design and implement simple software solutions.

K4. Explain the importance of programming style concepts (documentation, mnemonic names, indentation).

Skills:

S1. Utilise pseudocode and/or algorithms as a major program design technique. S2. Write and implement a solution algorithm using basic programming constructs. S4. Describe program functionality based on analysis of given program code.

Application of knowledge and skills:

A1. Develop self-reliance and judgement in adapting algorithms to diverse contexts.

A2. Design and write program solutions to identified problems using accepted design constructs.

Assessment Details

Searching a file for palindromes and anagrams. Given a word list file, English.txt, containing some four hundred thousand words, you are required to search this file to find all possible palindromes and anagrams.

Part 1: Palindromes – words that read the same either way e.g. radar, civic, level, anna

These words can be read from left to right or from right to left with exactly the same result.

Part 2: Anagrams – words made from the letters of another word e.g. cineasts « acnestis

In this case the word cineast means a person who loves cinema or films so cineasts are people who love films; the word acnestis means a part of the body that you cannot scratch – for example - between your shoulder blades.

One word is made from ALL of the letters of the other word – this is important in this assignment.

These are just examples – we are not so much interested in the definitions of the words1 only if they are in our list of words.

Submission

You must supply your program source code files and your documentation as a single zip file named as follows:

<YOUR-NAME>_<YOUR-STUDENT-ID>.zip

e.g. Aravind_ADIGA_30331237

You may supply your word processed documentation in either Microsoft Word or LibreOffice/OpenOffice formats only – no proprietary Mac specific formats, please.

Assignments will be marked on the basis of fulfilment of the requirements and the quality of the work.

In addition to the marking criteria, marks may be deducted for failure to comply with the assignment requirements, including (but not limited to):

  • Incomplete implementation(s), and
  • Incomplete submissions (e.g. missing files), and
  • Poor spelling and grammar.

You might be asked to demonstrate and explain your work.

Submit your assignment (all program source files plus your word processed document) to the Assignment 1 Upload location on Moodle before the deadline of Friday of week 7 at 5 pm.

Marking Criteria/Rubric

Palindromes

Item

Mark

 

Algorithm in pseudo-code

10

 

Implementation of algorithm in code

10

 

Demonstration that code works correctly using representative samples

 

15

 

Correct Output and Discussion

10

Anagrams

Algorithm in pseudo-code

10

 

Implementation of algorithm in code

10

 

Demonstration that code works correctly using representative samples

 

15

 

Correct Output and Discussion

10

Report

 

10

 

TOTAL

100

 

FINAL MARK

/20

Order Now