Implementing a GPS Parser in Different Programming Paradigms

Verified

Added on  2019/09/19

|3
|1194
|607
Project
AI Summary
This assignment requires students to develop a GPS parser that extracts latitude and longitude pairs from a text file generated by a GPS unit. The core task involves implementing the parser using two distinct programming paradigms, chosen by the student, and providing code listings with detailed comments, including any dependencies. The solutions must accept a command-line argument for the input file and handle potential errors in the file structure. The assignment also includes creating a series of tests to validate the functionality of the parsers, which can be unit tests or other testing strategies, and documenting the design decisions for each solution, along with the rationale behind the chosen test cases and methodologies. A comprehensive report (1200-1500 words) is required, discussing the differences between the two implementations, referencing the characteristics of each paradigm, and critically analyzing the implementation choices. The assessment criteria emphasize the understanding of programming paradigms, professional competence, and the ability to present the critique in a clear and logical manner. Higher marks are awarded for excellent understanding, sophisticated reflection, and thorough critical analysis, including the ability to detect and handle errors in the input files. The code and report submissions will demonstrate evidence of a clear, sound understanding of different programming paradigms and a substantial level of professional competence.
Document Page
Assignment-Programming paradigms
Module Title
Programming Paradigms
Assessment No
1
Assignment Title
Programming a Parser in different paradigms
Learning Objectives Assessed
1. Evaluate software languages in regards to their suitability for application within a particular domain
2. Develop software systems using varying programming paradigms
3. Apply design patterns in the development of a software system
4. Effectively implement a test driven approach in the process of developing software
Submission Information
Submit a report with your commentary on the code and any code-listings (two per solution, plus testing-code) in
PDF format. You will also demonstrate the functionality of each solution you created, in the lab.
Extensions and Plagiarism
Extensions
Extensions can only be granted by Dr Linda Rayner, Head of Department at least 48 hours in advance of the
deadline (by appointment through the Departmental Administrator), and written evidence will be required. Late work is
penalised at the rate of 10% per day.
Plagiarism
The material you submit must be your own work. The penalties for plagiarism are severe. The minimum penalty is
usually zero for that piece of work.
Further information is available at Portal > Support Departments > Academic Quality Support Services > Academic
Malpractice
Assignment Brief
Part I - Programming
This assignment requires you to read and parse a text file, collected from a GPS unit (and provided in Moodle), and
extract the sequence of latitude and longitude pairs from the recorded information. The lines in the file represent
readings taken from the GPS unit as the user travelled along a path.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
The model file always starts with a header line, describing each value, contained in the file. Each subsequent line
contains one reading. However, you should not assume the order of fields is standard as in the demonstration you
will use one or more input files supplied by the tutor with a different (arbitrary) order. You should not use a
thirdparty parser for this assignment.
A recommended output is:
['40.78966141', '-77.85948515'],
['40.78963995', '-77.85954952'],
['40.78961849', '-77.85957098'],
['40.78953266', '-77.85965681'],
.... ...
.
Create your parser solution using in two different programming paradigms, using programming languages of your
choice. Make sure you include (in your code comments and program header) any dependencies needed for your
solution. Your solutions should take a single command-line argument to denote the input file (the one you are
parsing). Your program should also indicate if there is an error in the expected input file's structure.
Laboratory demonstration: (10%)
Submission (30%)
Part II – Report
a) Create a series of tests that indicate the correct functionality of your parsers. You may use unit tests, or an
alternative testing strategy. Programmatic tests should be included as part of your code listing. Any other type of
test should be documented (see below). Any additional test files can be included as appendices in your report as
well.
(30%)
b) A document describing your design decisions for each solution and the corresponding choices of test cases and
methodology. Discuss the differences between the two implementations, referring where necessary to each
paradigm’s characteristics. (1200-1500 words)
(30%)
Assessment Criteria
To achieve a pass mark, the code and report submissions will demonstrate at minimum fairly basic knowledge of
programming paradigms and a satisfactory level of professional competence. There will be evidence of at least
partially accurate technical understanding and judgement. The critique must be presented in a clear and logical
manner with evidence of relevant research and will demonstrate at least a partial understanding of different
Document Page
programming paradigms. You should demonstrate adequate analysis of the implementation. In addition, the
following specific criteria must be met:
Part I:
Demonstration: Working code and overall awareness of its functionality. Code should with the provided
input file, minor errors may arise with the demonstration files.
Submission: Complete code-listings in two programming paradigms (could be in the same language) Part
II:
a) Basic tests, i.e. correct output with provided input file
b) Adequate description of the design decisions made and average comparison between the paradigms
chosen. All work should be clearly referenced. Work should be presented to a high standard throughout.
For higher marks, additionally the code and report submission will demonstrate evidence of a clear, sound
understanding of different programming paradigms and a substantial level of professional competence. There will be
evidence of accurate technical understanding and judgement when making decisions for each programming
paradigm, as well as a well-thought testing strategy. The critique will include a good critical analysis of the
implementation and choices, and show clear understanding, reflection and evaluation of professional practice issues.
In addition, the following specific criteria must be met:
Part I:
Demonstration: Working code and good awareness of its functionality.
Submission: Complete code-listings for two paradigms with commentary, headings including
dependencies. Basic code tests included.
Part II:
a) Basic tests that test simple structural errors in the model file and alternative files.
b) Good description of the design decisions made, adequate reflection on the chosen paradigms and
adequate commentary of each paradigm’s merits, for this use-case.
For first class marks additionally the code and report submissions will show evidence of an excellent understanding
of different programming paradigms and key related concepts, including software development in different
programming languages for each paradigm and appropriate testing strategies. The submission should show a very
high level of professional competence, and there will be evidence of thorough technical understanding and judgement.
The critique will show sophisticated reflection on professional practice and a strong and thorough critical analysis of
the implementation. In addition, the following specific criteria must be met:
Part I:
Demonstration: Working code and in-depth awareness of its functionality and testing strategy.
Submission: Complete code-listings for two paradigms, each in a different programming language, with clear
commentary, headings including dependencies. Reproducible unit-test (or other type of
testing) code listings with commentary and outputs. The parser should be able to detect
errors such as missing header, missing commas etc. and throw an appropriate exception.
Part II:
a) Tests that cover varying file structure errors for any input file (with the required fields)
b) Excellent description of the design decisions made, excellent reflection on the chosen paradigms and
excellent commentary of each paradigm’s merits, for this use-case. Excellent description of the testing
strategy, including more generalized testing, and appropriate exception handling.
chevron_up_icon
1 out of 3
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]