Skip to content

Latest commit

 

History

History
195 lines (110 loc) · 14 KB

README.md

File metadata and controls

195 lines (110 loc) · 14 KB

GroupProject

Deliverable 1: C source code Submitted through Ed as a group. You can upload one (or more) .c files, one (or more) .h files, and one makefile. Do NOT upload zip files, executable files or any file type other than .c, .h and makefiles.

One submission from a group is required. If multiple members submitted in a group, only one submission will be marked.

Multiple attempts are allowed before the due date, but we will only mark the last submission and assume that that would be the agreed submission by all members from the group. It is the group members' responsibility to make sure that there is only one person who is doing the submission and the last submission is valid.

Please write in the comments at the beginning of your main.c file, your group number and lab number. Please specify the compiling instructions for your source code in the comments at the beginning of your main.c too. If no instructions are provided and we are not able to compile your source code. You could receive a 0 for the functionality.

Click "Mark" button on Ed to submit your code. This will submit all the files in the your workspace, so make sure that before clicking "Mark" to submit, delete the unwanted files.

You will see "Passed" if your files have been submitted. This does NOT mean you have passed the assessment, only means that you have submitted your files. Your submissions will be manually marked after the due date and feedback will be provided on Canvas.

It is suggested that you should also keep copies of the source code in an alternative storage, or use a version control tool.

The submission link will show the deadline of the assignment.

Standard FEIT late submission penalties apply - check the subject outline for more information.

Deliverable 2: Project report Submitted through Canvas as a group. You can upload one PDF file. Do NOT upload any file type other than .pdf files.

Use the submission link in "Assessment" -> "Assessment task 3: Group project - submission - report" to submit your group report.

Project report should be no more than 10 pages + 1 cover page + 1 table of contents + appendices. Any content in excess of the page limit will not be marked.

The submission link will show the deadline of the assignment.

Standard FEIT late submission penalties apply - check the subject outline for more information.

Checkpoint 1-3 Refer to the "Expected project timeline, in-class activities and checkpoints" section

Marking Criteria Each of the 2 deliverables (code 15%, report 15% in total subject result) will receive a group mark. The total group mark will be calculated as follows:

Group mark = Group mark for the C source code + Group mark for the project report

Each student will complete a self and peer evaluation through UTS Spark. The total group mark of the assessment task (out of 30%) will be adjusted according to the self and peer evaluation as follows:

Individual mark of this assessment task = Group mark X SPA

Individual mark will be capped at 30%. SPA is the self and peer assessment factor produced by SPARK based on the peer reviews. It is calculated as follows:

SPA = (total rating for individual team member) / (average of total ratings for all team members)

NOTE: If the peer review is drastically different from the in-class observations of tutors, SPA will be adjusted accordingly.

NOTE: In addition to the above marking criteria, it is mandatory for each group to pass 3 checkpoints as outlined in the "Expected project timeline, in-class activities and checkpoints" section.

Feedback You will receive the following feedback within 3 weeks of the due date: Individual marks for each deliverable adjusted according to peer review and rubic for the group.

Request to review If you are confident that there are substantial irregularities in your marks, you may personally approach the tutors (not the convenor) within 5 days after releasing results on Canvas to lodge a request to review. Request to review could very well result in marks being left unchanged or even decreased if we find that we have been too lenient.

Plagiarism We take plagiarism very seriously. Why you shouldn't plagiarise?

I will use plagiarism detection software to check that you did not copy parts of the solution from previous submissions, other students in the class, online forums and other online resources. You could receive 0 marks for the assignment or fail the unit if you plagiarise. If one student in the group commits plagiarism in this group assessment, all group members maybe subject to the formal misconduct procedure of the University.

Attendance By attending the lab you will be able to meet and discuss with the group members. Also you will benefit from discussing your project with your tutor.

Attendance in each lab is mandatory. Attendance will be recorded and will be reflected in the peer-review adjustment of individual marks.

Description In this research-inspired project, students will work together in teams to develop a professional grade program that manipulates real-world data. You will develop team working skills, project management skills and communication skills.

Put yourself in the position of a C programmer working in a company as a team. Your task is to find a customer with a real-world data manipulation need that involves data compression and/or encryption. Your customer could be someone from industry, your parents/siblings, a friend, or even yourself. The customer requirement you find MUST have at least a component of compression or encryption. If you are trying to pass pick either a compression or encryption problem, but if you are trying to get a high mark try to do both. If you are trying to get even higher marks, implement additional algorithms such as sorting and searching as specified in the "Marking Criteria" section.

Once you find a customer and an appropriate problem you will work together as a team to develop a C program that solves the problem you found. The best way to develop as a group is to breakdown the task into small functions and assign functions to each team member. So that all team members can develop at home, and use the laboratory time to integrate the code.

If you are only trying to pass, it is sufficient to integrate the code from all team members into one program that can be compiled the way that we have been doing whole semester. But if you are aiming to achieve high marks, you will need to develop your own library (as a header file), have different runtime modes of the program (using command line parsing), and develop makefiles. You may also provide a debugging mode in your code using preprocessor directives for high marks.

Only if you are trying to get high marks you also have to demonstrate that you can use advanced data structures such as linked lists, queues, etc, as specified in the Marking Criteria section - students only trying to pass can stick to simple data structures such as struct and arrays. Read the Marking Criteria section to fully understand the expectations depending on the levels that you want to achieve.

One important requirement is that you are free to use any of the following standard C libraries ONLY - stdio, stdlib, string and math. This will help you pick a reasonable scope for the project. If you develop your own libraries of course you can use them. However, you must NOT use any other libraries that come with GCC or developed by other programmers. You may get 0 marks for your source code if you fail to follow this requirement.

You will go through the software development cycle as follows:

Problem requirement Students must meet potential clients and find out a real-world data manipulation need that involves data compression and/or encryption.

Problem analysis Identify the inputs, outputs and required resources. Break down the data manipulation task to small functions. Think about features you want to add to the program. Start writing parts of the project report - read the submission requirements to understand what should be included in the report.

Solution design Develop simple algorithms to achieve the objectives of each function. Develop the program design - single file, or custom C library? Consider a (fairly) user friendly interface.

Implement and test Do research and learn a simple encryption and/or compression algorithms. Implement one function at a time, and test every single function as you develop. Complete writing the project report.

NOTE: This assessment task is OPEN ENDED. What that means is you will need to find an appropriate problem yourself (I will not tell you what to do – I can only specify the rules that you will need to follow). How far you want to push the project and how good you want the end program to be, are completely up to you. Do the best you can, within the allocated time. This style is fundamentally different from the “Assessment Task 2: Assignment” where I specified every single bit of detail on what you have to do, even gave an executable that you can follow. You will need to adjust to the OPEN ENDED assessment style in this project – this is mostly how how the real-world works.

NOTE: Being able to develop is not good enough. You need to be able to communicate what you did and how you did it – this is where the lab report come in. This is typically what you would be doing when you go to industry.

NOTE: The focus of the assignment is to allow you showcase the knowledge gathered through this subject by applying the knowledge to a real-world data encryption and/or compression problem. Depending on the mark that you are aiming, you will need to research and learn simple encryption/compression algorithms, data structures (except linked lists - which was covered in Forums), etc, to meet the criteria outlined in the "Marking Criteria" section.

Your approach Developing a program as a team is very different from writing your own program. Working as a team helps develop large programs, but the success depends on having a proper plan from day zero and ability to communicate.

Tip 1: Click the “Groups” tab on the left, you should be able to see which group you belong to, the team members, and their email addressed. So TALK!

Tip 2: When writing a program by yourself, maybe you write the code first and then write comments. But when writing a program as a team, past experience of the subject is that it is more effective to write the comments first and then the code.

Tip 3: Group project does not mean that one person writes the code, and other writes the report etc. Everyone should do a bit of all deliverables. Avoid the situations that everyone sit around one student and watch him/her writing the code!

Tip 4: Differentiate the “WHAT” from “HOW”. Spend the laboratory time to figure out “WHAT” as a team, and worry about “HOW” as individuals at home.

Tip 5: Integration of the code is a mammoth task when working as a group. Develop at home as individuals, integrate as a team during the lab time.

Where to get help from?

Tutors can help you understand the task. Make full use of them. Forum 7 - linked list data structure. You can learn about other data structures through research. Forum 8 - how to write your own libraries and makefiles. Forum 9 - command line parsing for implementing different runtime modes. Encryption/compression - some resources in "Example project" section below. Advanced sorting/searching algorithms, handling incorrect data type at the input (i.e. program expects an int, user input is a string. etc.) - These two items are required to get very high marks. If you aim to achieve that you will need to do some self-driven research. But a group trying to pass this assessment task would be better off focusing on other aspects of the task.

Expected project timeline, in-class activities and checkpoints Week 08

Go through the description of Assignment 3 Group members discuss and come up a problem to work on Think about the function prototypes and report outline

Week 09

Before the lab, write all function prototypes and block comments for the problem Produce a structure chart Produce the project report outline with section headings and fill in the scope During the lab, each group may ask for feedbacks from tutors

CHECKPOINT 1:

send the report outline with the scope to your tutor (other sections could be incomplete) Submit one/more .c/.h files with function prototypes, block comments, and the name of the author of each function on Ed

It is mandatory for students to pass this checkpoint. Students will receive valuable verbal feedback in the following lab, but no marks for this checkpoint. Submission is through Canvas for the report and Ed for the source code.

Week 10

Each student comes to the lab having implemented functions and algorithms Debugging and integration Tutor provides feedback on previous week's submission. Students readjust the scope of the project and make necessary changes to the program design.

Week 11

Each student comes to the lab having implemented functions and algorithms Debugging and integration of the code Document bugs found, how they were found, and the steps taken to fix them Fill in more sections in the project report

CHECKPOINT 2:

In the lab: A running (but not necessarily complete) program shown to the tutor

It is mandatory for students to pass this checkpoint. Students will receive valuable immediate verbal feedback, but no marks for this checkpoint. In-lab demonstration only.

Week 12

Final program is functional and the coding style is good Project report finalised

CHECKPOINT 3:

In the lab: The complete program is demonstrated to the tutor

It is mandatory for students to pass this checkpoint. Students will receive valuable immediate verbal feedback, but no marks for this checkpoint. In-lab demonstration only.

Submission of deliverables > Confirm the final submission within the group > Submit SPARK review, score and comments. Only the scores and comments for the source code and report will be considered. Please leave the presentation section in SPARK as 100%, this section will not be included in SPA calculation.

      > Submit source code on Ed and report on Canvas