>> Software Engineering
Portfolio 0 - Presentation (& upload) - the process
P0 is an individual ‘presentation' - it is about the development of a learning resource. The topic should be chosen from the list of Unix Basics on the module Learning Room on NOW. There is some advanced topics, but you should only choose one of these if you already have *nix experience; the whole range of grades is available for all the topics, but the Advanced ones are loaded towards content rather than design.
To register your topic, email the module leader (ML) with a subject line "P0 N1234567 topicID"; these will be allocated on a first-come first-served basis - some duplication will be allowed, at the discretion of the ML. If you are wanting an Advanced topic, you should discuss this with the ML beforehand.
Once signed-off, the development process should be something like
1. choose topic
2. read around/research the topic to get a feel for possible content
3. sketch out (back of envelope! outline only) what you consider the best angle to present the topic & what content you think is appropriate
4. confirm outline (3) with module leader by email/quick 1:1 (to make sure you are on correct track)1
5. develop and capture a short screencast for uploading (short - the appropriate size will vary, but 2-3 minutes (max 4) is the ballpark)
Portfolio 1 - My First makefile1 Project
P1 is an individual exercise, developing the prime number project.
As released, the project uses a makefile to build a debug version of the executable randomPrime; your task is to develop alternative programs with different functionality and to modify the makefile to add new targets for these (debug versions with the exception of release).
interactive this target interactively (using std::cin & std::cout) queries the user, who enters a number; the corresponding2 prime number in the sequence is output, on its own, on a new line.
auto this target will print the first 50 prime numbers, one per line, on std::cout
howMany accepts a command line parameter and outputs the number of prime numbers less than this value; if no parameter is given, output just std::endl to std::cout
release this target will produce a release executable of the randomPrime program, without any debug information; you must decide how to achieve this, which will likely require some changes to the makefile, not just additions.
These are not allocated marks on an individual basis - see the table below for details of the indicative criteria which are assessed holistically
The following are requirements, not optional guidance; non-compliance will impact adversely on the eventual mark awarded
- You must maintain the same project/directory structure - your project must build from the makefile executed in the src folder.
- Use relative file paths in the makefile - you do not know the folder structure where your code will be built.
- Do not modify headers/prime.h or src/prime.cpp; the assessed build will not use your version of these files. If you need to organise extra functionality common across applications, add appropriately named .cpp & .h files to the project, in the appropriate locations.
- All existing functionality (of randomPrime) should be maintainedPortfolio 2 - Parsing NMEA Sentences - phase 1 & phase 2
P2 is an individual exercise, involving the manipulation of text strings; the basis of the problem is to parse log files containing 2 types of NMEA sentences. The files are generated initially by a Sony camera with GPS functionality. Instances of log files can be found on NOW.
The files will contain RMC GGA and GLL sentences - the particular sentence format(s) are not needed until part (c), so the detail is omitted for the moment. All NMEA sentences start with a followed by the identifier for the sentence type, ($GRMCL $GPGGA $GPGLL) and a varying number of comma-separated fields The sentences finish with a two character checksum, starting with ‘*'
In the file p2.cpp, implement the functions p2 declared in p2.h; do not include a main() function in p2.cpp. The latest version of this file includes p2c() & p2d() specifications.
You can include any libraries you need EXCEPT <iostream> - your functions should not perform any console I/O
There are numerous other sentence formats, which will need decoding in future; try to code with this in mind (avoid ‘magic' character positions, prefer to search - expect other fields in your text source, which can then be easily ignored.
Attachment:- Software engeenering.zip