(6G6Z0041_2425_9FHU):Programming Languages and Paradigms

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

ASSIGNMENT COVER SHEE

Unit code and title:
(6G6Z0041_2425_9FHU):Programming Languages and Paradigms
Assignment set by:
Dc Aryan Kaushik
Assignment ID:
1CWK100
Assignment weighting:
100%
Assignment title:
Multi-paradigmatic Solutions to a Self-Proposed Task
Type: (Group/Individual)
Individual
Hand-in deadline:
Friday 23May 2025-9PM China Time
Hand-in format and mechanism:

Submission is online, via Moodle.

You must sub mit a single zipped file containing all folders for each programming language referred in the assignment delivery section.

Learning Outcomes Being Assessed:

LO1: Implement solutions to common algorithmic tasks using a range of programming languages and paradigms.

LO2:Compare and contrast design and implementation aspects of core programming concepts using multiple programming languages

Note: It is your responsibility to make sure that your work is complete and available for marking by the deadline. Make sure that you have followed the submission instructions carefully, and that your work is submitted in the correct format, using the correct hand-in mechanism (eg., Moodle upload).If submitting via Moodle, you are advised to check your work after upload, to make sure it has uploaded properly. Do not alter your work after the deadline. You should make at least one full backup copy of your work.

The Timeliness of Submissions is Strictly Monitored and Enforced.

Joint institute students will follow Hubei's policies with respect to late submission. Where, following a late submission, a student has approved Exceptional Factors that cover the original submission period, the mark for the assessment will revert to the original,uncapped grade.Exceptional Factors shall be dealt with in accordance with Hubei University regulations. Students shall not be entitled to undertake reassessment in any assessment with a capped mark applied as a result of late submission.

Please note that individual tutors are unable to grant extensions to coursework. Extensions can only be granted on the basis of approved Exceptional Factors (see below).

Exceptional Factors affecting your performance: Students wishing to apply for Exceptional Factors should do so through the Hubei University process. The outcome of any application will be considered and decided by Hubei University and applied to both awards. lf the application is accepted, the student shall have the right to be reassessed as if for the first time in any or all the elements of the assess ment covered. Further details can be found in the joint Assessment Regulations,

Plagiarism: The Joint Institute students will follow Manchester Met policy for plagiarism. For further information on the Manchester Met policy, please see Academic Integrity and Misconduct. Plagiarism is the unacknowledged representation of another person's work, or use of their ideas, as one's own. Manchester Metropolitan University takes care to detect plagiarism, employs plagiarism detection software, and imposes severe penalties, as outlined in the Student Handbook.Bad referencing or submitting the wrong assignment may still be treated as plagiarism. If in doubt, seek advice from your tutor.

Use of Generative Al: The use of generative Al is permitted in this assessment, so long as it is used in accordance with the instructions provided in the 'Are you allowed to use Al in assessments?' section of the Al Literacy Rise Study Pack.All submitted work must be your own original content.All submitted work must be your own original content with appropriate citations and references. When using Al to improve the quality of your work always remember:

  • Your work should authe ntically represent your capabilities.
  • You should never trust the outputs of Generative Al uncritically.
Specifically for this module you:
  • Can use generative Al to help you understand the module and the associated content, but you must check this against other sources.
  • Can use generative Al as part of the planning process (e.g., to get ideas, to break down tasks, to explore different structures)
  • Can use generative Al to find information but should not consider it a reliable source.
  • Can use generative Al to provide feedback but be aware of its limitations,be critical ofits outputs.
Your work will be submitted through Moodle.

Assessment Criteria:
Indicated in the attached assignment specification.
Summative Feedback Format:
Marks and feed back will be returned through Moodle after 4 weeks.

The Assessment Specification

1. Introduction

The unit is 100% coursework based, and has a single component (1CWK100), weighted at 100% of the unitmarks. In summary:
  • You will propose enhancements to the tic-tac-toe program
    • Solutions for this task should not be easily available online.
    • Take the existing tic-tac-toe code and add some sensible variation to it.
    • Your task should be personalized using some identi fia ble information (e.g., your full name,or your student ID number).
  • You will write Three solutions to your task, using different programming languages and paradigms.
    • Your solutions must each exhibit a range of paradigmatic features.
    • Your solutions must each use a unique programminglanguage.
  • For each solution, you will provide:
    • (a) the name of the language and paradigm you have used.
    • (b) Screenshots of your design process, demonstrating how you created the code and the validation process you used to ensure that it was suitable for your task
    • (c) a short description of your programme, explaining how the code you have written completes the task and how your programme fits the named paradigm.
  • The deliverables are:
    • Your uniquely proposed task description (unmarked)
    • Afolder containing 3 subdirectories, one per language.
    • Each subfolder must contain:
      • A text file with your code
      • A word document or pdf documenting your design process (see Appendix A)
      • A word document or pdf with your code explanation
      • Assessment Overview (1CWK100)
a) Enhancement to Tic-tac-toe
You should write your own task description for the game tic-tac-toe. This should be an extension to the tic-tac-toe code, which should be your own piece of work. You can add your own elements of specification to make the task of tic-tac-toe unique.


For example, to make the task of developing a tic-tac-toe game unique you could implement someadditional rule, or rules to the game, such as making the board larger (e.g., 7x7, or NxM) or implementsome extra gameplay rule (e.g., you can choose to remove one of the opponent's O's or X's every 3md turn. You should be imaginative in creating your task to ensure it is unique to you and different to those in the rest of the class. On Moodle as well there are some more enhancement suggestions provided and as discussed during the lecture.

To further personalise your task, you should incorporate either your student ID number or your nameinto the task description and code. This helps for future plagiarism detection. You should make it clear in your task description oftic-tac-toe game on how the element of personalization will be done.

I am not making a limit to the difficulty or ease of the task. You should choose a difficulty level that youfeel is appropriate to your coding ability and that will set you an appropriate challenge. Solutions tomore difficult problems will likely expose more interesting features of the languages and paradigms,leading to the opportunity to score more highly on the assessed documents.

b) Choose three different languages

You should select three different lang unges to use to solve your task. These languages mustbe selected from those taught during the unit. You can refer to Moodle for a full list of languages that have been covered. The languages you choose should allow you to solve the task in a variety of programming styles. You must use a different programming paradigm for each solution and your choice of language should reflect this. The five programming paradigms we cover are as follows: imperative,Procedural, Object-Oriented,Functional, Logic.
c) Create Solutions

You should write a bespoke solution in each language, conforming to a paradigm. You are allowed to use a large language model, or copilot to aid in your programming. Please ensure that your code is appropriately indented, well commented, and conforms to appropriate standards for the language you are coding in (e.g., variable naming conventions, etc.). You are welcome to use the same approach to solve the task you have designed across your three solutions; however, you should design your solutions in such a way that the specific paradig matic features ofeach language you have used may be properly showcased.
d) Document Solutions

You must provide two distinct documents for each language. The first document should show yourdesign and development process for your solution in that language. You should include any sketches, UML diagrams,class diagrams, pseudocode or wireframes that you create. There may be some crossover in your design work between languages, but you should still document this for each language. As part of your design document, you should also capture the development process that you have undertook induding testing and bug-fixing. You should include intermediary screenshots of your design process. If you use a large language model or copilot as part of your programming, you should include screenshots of all interactions, as well as some indication as to how you used this information and how you validated the results. This document may be presented in a 'scrapbook' format and should be made mostly of images or figures (with short connecting texts) collected during your design and implementation process.
The second document is a short paragraph (max 300 words) describing the language features that you have used to solve the solution, and explaining how the solution conforms to the stated paradigm.A typical solution might spend 200 words on the former and 100 words on the latter, although this will vary from one langunge to another.

You should not use a language model to produce either of these documents. They will typically produce hallucinated documentation or false reasoning for this type of task which will impede your marks. If you do choose to use a language model you must include all interactions as screenshots as an appendix to the specific document that they are relevant to.

e) Compare Solutions

Finally, you should write a comparison of your three solutions. Your comparison should be no more than 1000 words and should highlight similarities and differences between your solutions in each pair of languages, especially considering the paradigms that you have conformed to. A typical solution might spend around 150 words introducing the three languages and paradigms, then 250 words per language pair highlighting similarities and differences in approach, with 100 words reserved for a summary conclusion. You may assume that the marker is aware of your task and has read your design and explanation documents.

Again, you should not use a language model to produce your comparison document as they are not suitable for this task and are likely to give incorrect answers, harming your chance to succeed. If you do use a language model, you must include screenshots of your interactions as an appendix to your comparison document.


2.The Submission

Your submission is via Moodle. You must submit a zip file containing a folder. The folder should have your ID number as its name. Inside the folder you should place:


(a) a text file containing the task description you have written.

(b) A word document or PDF containing a comparison of your solutions, highlighting similarities and diffe rences in how you used specific paradigmatic features to solve each task.(c)3 sub-folders. Each sub-folder should have the name of the programming language thatyou have used for that solution. Inside each sub-folder you must have:

(c.1)a text file containing the code you used named LANG_code.txt, where LANG is replaced with the language you have used.

(c.2) A Word or PDF document containing your Design documentation, named LANG_design, where LANG is replaced with the name of the language you have used.

(c.3)Aword or PDF document containing a statement of the paradigm that you have used and your explanation of how the code you have written meets your stated paradigm. This should be named LANG_paradigm, where LANG is replaced with the language you have used.

A sample file hierarchy is given below, Note, you are free to choose any 3 languages from the course:


  • 99999999
  • Task.txt
    • Compa rison.docx
    • Python
      • Python_code.txt
      • Python_design.docx
      • Python_paradigm.docx o Prolog
      • C++_code.txt
      • C++_design.docx
      • C++_paradigm.docx o GO
      • C_code.txt
      • C_design.docx
      • C_paradigm.docx

3. Mark Scheme

Marks will be apportioned as follows:
  • 15% Code Design
  • 15% Language 1-Paradigm Description
  • 15% Language 2-Paradigm Description
  • 15% Language 3-Paradigm Description
  • 40% Comparison
Individual mark schemes for each section are given below:
Design
0 marks: No documentation.
1-5 marks: little design and implementation documentation work, or design and implementation documentation is incoherent and unrelated to submitted code.
6-10 marks: Adequate design and implementation documentation work. Design and implementation documentation is related to submitted code.
11-15 marks: Excellent and extensive design and implementation documentation work. Documentation goes beyond usual expectations for a final year undergraduate student.

Paradigm

0 marks: No documentation.

1-5 marks: Paradigm is incorrectly identified. Poor description of features, with little relationship to the code.

6-10 marks: A paradigm is stated with appropriate reasoning. Most features are correctly described, with few to no errors.

11-15 marks: Paradigm is correctly identified. Outstanding description of features, showing exceptional understanding of how the given paradigm is used.

Comparison
0 marks: No Comparison.

1-10 marks: An inadequate comparison, covering an incomplete set of paradigms. Little or no criticality in evaluation.

11-20 marks: An adequate level of comparison. At least two paradigms are correctly compared.Some appropriate features are identified and equivalencies are demonstrated in solutions with little or no errors.

21-30 marks: A good degree of comparison. All paradigms are compared appropriately. A complete set of features is identified with no errors made.High level of criticality and understanding of programming paradigms.

31-40 marks: An excellent degree of comparison, above and beyond the reasonable expectations for the final year of study. Each paradigm is compared to the other two paradigms.Highly coherent analysis of features used.

4. Feedback

Your feedback on the assess ment will consist of an assigned marking boundary for each element as given above. You will also receive summary feedback indicating positive points of the assignment, as well as an indication of areas that you have lost marks. An example feedback sheet is given in Appendix B.

AppendixA- Example Design and
Implementation Document

I decided to implement the modified tic-tac-toe programme using Haskel. My high-level pseudocode for the overall algorithm is as follows:

1. Represent board as list of lists

2. Implement recursive function to go through a single list determining if there is a win (rows)

3. Implement recursive function to go through a list of lists determining if there is a win (cols)

4.Implement recursive function to go through a list of lists determining if there is a win (diagonal) 

5. Implement function to add a 'M' or 'S in a row-col position.Signature: char,[[integer]]-> [[Integer)]

6. Implement function to removea ‘M' or 'S'. (reuse a bove function?)
7.Implement function to govern game logic
a. Mgoes first, then S
b. At each iteration get a number (1-49) indicating cell to play in
C.Every 3"tum players can remove a cell

I have provided screenshots of the pseudocode that 1 wrote on my whiteboard for each function below:

Recursive function:[SCREENSHOT 1]

Add/remove char to board:[SCREENSHOT 2]

Game Loop:[SCREENSHOT 3]

During my implementation process, I wrote the following code as a first iteration:

[SCREENSHOTS OF CODE]

This allowed me to identify the following errors in my approach, which led me to redesign my system as follows:
[SCREENSHOTS OF ERRORS AND UPDATED CODE)

Once I had a working system, i decided to test it. The tests that I ran are as follows:

1) Run to the end with M player winning
2) Run to the end with S player winning
3) Run to the end with a draw.
SCREENSHOTS OF TESTING]

Appendix B- Feedback Sheet

Marker Name: Matthew Shardlow
Student Name: Matthew Shardlow
Student ID:99999999
Score for Design: X;
Score for LANG1 Paradigm Description:Y1;
Score for LANG2 Paradigm Description:Y2;
Score for LANG3 Paradigm Description: Y3;

Comparison Score:Z

Total Score: T

This submission contains a tic-tac-toe game with a modified board design and an additional rule to allow players to remove their opponents' tiles. Solutions 1 and 3 (Haskell and C++) were well implemented in the functional and 00 paradigms. The 00 structure in C++ was exceptionally well designed and led to efficient code. Solution 2 failed to use Rust correctly and did not state the paradigm that was being used.

I have used the criteria below to mark your work. You can see a further breakdown of your marks by matching your assigned grade to the given band for each category.

发表评论

电子邮件地址不会被公开。 必填项已用*标注