程式設計語言與正規化1.評估封面單位程式碼和名稱::程式設計語言和Paradigms評估設定人:博士評估ID:1CWK100評估權重:100%評估標題:自我建議任務的多範例解決方案型別:個人(100%)上交截止日期:星期一8日2024年4月19日-晚上9點移交形式和機制:提交是線上的,透過Moodle。您必須提交一個包含每個資料夾的所有壓縮檔案課業交付中使用的程式語言部分正在評估的學習成果:使用一系列程式設計實現常見演算法任務的解決方案LO1:
語言和正規化。比較和對比核心程式設計概念的設計和實現方面LO2:使用多種程式語言。
注意:您有責任確保您的工作是完整的,並可由最後期限請確保您認真遵守了提交說明,並且您的工作是以正確的格式提交,使用正確的上交機制(例如Moodle上傳)。如果透過Moodle提交,建議您在上傳後檢查您的作品,以確保其已上傳程式設計語言與正規化2.正確地如果透過OneDrive提交,請確保您的導師可以訪問該作品。不要更改您的在截止日期後工作。您應該至少為您的工作制作一個完整的備份副本。逾期提交的處罰提交材料的及時性受到嚴格監測和執行。
所有課程課業都有7個日曆日的延遲提交視窗,但任何在延遲提交視窗內提交的課業視窗期將限制在40%,除非你們同意延期。7天后提交的工作除非你們同意延期,否則延期視窗的上限為零。參見“評估緩解”以下是有關擴充套件的更多資訊。請注意,個別導師無法延長評估時間。評估緩解措施如果您有正當理由無法在截止日期前提交評估,您可以申請用於評估緩解。您可以透過上的單位區域申請兩種型別的緩解措施Moodle(在頁面右側的“評估”欄中):自我認證:不要求您提交證據。它允許您新增一個簡短的擴充套件(通常但不總是七天)到最後期限。這不適用於基於事件的評估,如課堂測試、演示、面試等。你可以申請延期在評估周內,必須在提交截止日期前提出請求。有證據的延期要求您提供情況的獨立證據影響了你。允許您申請更長的延期,並可用於基於事件的延期評估,如課堂測試、演示、訪談等。對於基於事件的評估正常的結果是評估將推遲到夏季抵抗期。有關評估緩解措施的更多資訊,請訪問專門的評估頁面:
剽竊剽竊是指未經承認地將他人的作品或對其思想的使用作為自己的作品擁有曼徹斯特都市大學注意檢測剽竊,採用剽竊檢測軟體,並實施嚴厲處罰,如《學生行為準則和條例》中所述本科生課程。參考不足或提交錯誤課業仍可能被處理作為剽竊。如果有疑問,請向導師尋求建議。如果您無法將您的作品上傳到Moodle如果你在透過Moodle提交作品時遇到問題,你可以透過電子郵件傳送給評估團隊使用電子郵件地址的應急提交收件箱你應該在你的傳送電子郵件至工作單位,並提供單位負責人的姓名。評估小組將然後將你的作品轉發給合適的人。如果你使用這種提交方法,你的作品必須在釋出的截止日期之前透過電子郵件傳送,否則將被記錄為延遲提交。或者,您可以將你的工作儲存到一個zip資料夾中,然後將該zip資料夾上傳到你的大學OneDrive向Moodle提交一個Word文件,其中包括指向資料夾的連結。你有責任請確保與部門負責人共享OneDrive資料夾,否則將無法標記您的工作。程式設計語言與正規化3.評估規定欲瞭解更多資訊,請參閱學生生活網頁研究。
形成性反饋:我們鼓勵你與導師和同齡人分享你的工作討論和反饋。總結性反饋:您將在20個工作日內收到關於您工作的書面反饋以附錄B所示的反饋表形式提交。還將向所有學習該單元的學生提供一般反饋。1.簡介該單元100%基於課業,有一個單獨的組成部分(1CWK100),權重為單位標記。總之:您將對井字遊戲程式提出改進建議o此任務的解決方案不應在網上輕易獲得。o採用現有的井字遊戲程式碼,代 寫CWK100程式設計語言並新增一些合理的變體。o您的任務應該使用一些可識別的資訊(例如,您的完整資訊姓名或學生證號碼)。您將使用不同的程式語言和正規化。o您的每個解決方案都必須具有一系列典型特徵。o您的解決方案必須各自使用一種獨特的程式語言。對於每個解決方案,您將提供:o(a)你所使用的語言和正規化的名稱。o(b)設計過程的螢幕截圖,展示您是如何建立程式碼和用於確保其適合您的任務的驗證過程o對您的程式進行簡短描述,解釋您如何編寫程式碼完成任務以及您的程式如何符合命名的範例。可交付成果包括:o您唯一提出的任務描述(未標記)o包含3個子目錄的資料夾,每種語言一個子目錄。o每個子資料夾必須包含: 包含程式碼的文字檔案 記錄設計過程的word文件或pdf文件(見附錄A) 帶有程式碼說明的word文件或pdf 評估概述(1CWK100)程式設計語言與正規化4.a) Tic-tac-toe的增強功能你應該寫下你自己的任務描述。這應該是一項新任務,沒有透過網路搜尋隨時可用的解決方案(或者最壞的情況下,很少)。您可以將任務建立在現有任務,例如,從該任務開始,然後新增您自己的元素規範,使任務具有唯一性。例如,您可以從開發井字遊戲的任務開始。讓你與眾不同可以實現一些附加規則或遊戲規則,例如使棋盤更大(例如。,7x7或NxM)或實施一些額外的遊戲規則(例如,您可以選擇刪除其中一個每3個回合對手的O或X。你應該富有想象力地創造你的任務,以確保它是你是獨一無二的,與班上其他人不同。
為了進一步個性化您的任務,您應該包含您的學生身份證號碼或姓名轉換為任務描述和程式碼。這有助於未來的剽竊檢測。例如,您可以用你的學生ID種子一個隨機數生成器,或者如果你的任務包括一些文字元素那麼你可以使用你的名字(例如密碼)。你應該在任務中說清楚描述如何完成個性化元素。我並沒有限制這項任務的難易程度。你應該選擇一個你認為感覺適合你的編碼能力,這將給你帶來適當的挑戰。的解決方案更困難的問題可能會暴露出語言和正規化的更有趣的特徵,從而有機會在評估的檔案上獲得更高的分數。作為一個粗略的指南這項任務應該比典型的實驗室練習更難(例如,改變數字後的嘶嘶聲)可能太簡單了),但比典型的年終課業難度小(例如,你不應該建議實現全面的移動應用程式或web前端)。
b) 選擇三種不同語言您應該選擇三種不同的語言來解決您的任務。這些語言必須是從單元中教授的內容中選擇。您可以參考Moodle瞭解以下語言的完整列表已被覆蓋。您選擇的語言應允許您以各種方式解決任務程式設計風格。對於每個解決方案和您的語言的選擇應該反映出這一點。我們涵蓋的五種程式設計正規化如下:命令性、過程性、物件導向、功能性、邏輯性。c) 建立解決方案你應該按照一種模式,用每種語言編寫一個定製的解決方案。您可以使用大型語言模型或副圖形來幫助您進行程式設計。請確保您的程式碼適當縮排,評論良好,並符合您的語言的適當標準正在進行編碼(例如,變數命名約定等)。歡迎您使用相同的方法解決您在三個解決方案中設計的任務;但是你應該設計你的解決方案的特定正規化特徵D數字作為其名稱。在您應該放置的資料夾中:(
a) 包含您編寫的任務描述的文字檔案。程式設計語言與正規化6.(b) word文件或PDF,其中包含您的解決方案的比較,突出顯示相似之處和使用特定的範例功能來解決每個任務的方式存在差異。(c) 3個子資料夾。每個子資料夾都應該有您所擁有的程式語言的名稱用於該解決方案。在每個子資料夾中,您必須具有:(c.1)一個文字檔案,包含您使用的名為LANG_code.txt的程式碼,其中LANG被替換使用您使用過的語言。
c.2)包含您的設計文件的Word或PDF文件,名為LANG_Design,其中LANG替換為您使用的語言的名稱。
(c.3)一個單詞或PDF文件,其中包含您所使用的範例的陳述以及你對你編寫的程式碼如何符合你所陳述的正規化的解釋。這應該命名為LANG_radigm,其中LANG將替換為您使用過的語言。下面給出了一個示例檔案層次結構,注意,您可以從課程中自由選擇任何3種語言: 99999999o任務.txto比較.docxo Python Python程式碼.txt Python設計.docx Python_radigm.docx o Prolog Prolog_code.txt Prolog _設計.docx Prolog _paradigm.docx o GO GO_code.txt GO_設計.docx GO_paradigm.docx3.標記方案分數分配如下:程式設計語言與正規化7.對於每種語言(每種語言總成績的25%):設計檔案(10分)正規化檔案(15分)比較(總成績的25%)每個部分的單獨標記方案如下所示:設計0分:無文件。1-3分:很少的設計和實現文件工作,或設計和實現文件不連貫,與提交的程式碼無關。4-6分:充分的設計和實施檔案工作。設計和實施文件與提交的程式碼相關。7-10分:優秀且廣泛的設計和實施文件工作。文件超出了本科生的預期。正規化0分:無文件。1-5分:正規化識別錯誤。功能描述不佳,與密碼6-10分:透過適當的推理來陳述一個正規化。大多數功能都得到了正確的描述幾乎沒有錯誤。11-15分:正確識別了正規化。卓越的功能描述,顯示非凡理解如何使用給定的範例。比較0分:無對比。1-5分:不充分的比較,涵蓋了一套不完整的正規化。很少或沒有臨界評價6-15分:足夠的比較水平。至少有兩種正規化得到了正確的比較。一些確定了適當的特徵,並在幾乎沒有或根本沒有的解決方案中證明了等效性錯誤。16-20分:有很好的對比度。所有正規化都進行了適當的比較。一整套特徵被識別而沒有發生錯誤。高度的關鍵性和對程式設計的理解正規化。程式設計語言與正規化8.20-25分:優秀的對比度,超過了對最後一年的學習。將每種正規化與其他兩種正規化進行比較。高度一致的分析使用的功能。4.反饋您對評估的反饋將包括為每個元素指定的標記邊界在上面您還將收到總結反饋,指出課業的積極點,以及指示您丟失標記的區域。附錄B中給出了反饋表示例。5.對任務的支援a) 救命!我不知道從哪裡開始,也不知道該做什麼!您應該首先確定您將要使用的任務和語言。一旦你決定了這些,剩下的任務應該落實到位。您可能希望與同行討論想法,以便了解你的提案範圍是否合適,但要確保你提交與您討論過的任務不同。
b) 形成性反饋的機會您將有機會在學期請參閱Moodle瞭解提交日期。您收到的反饋通常是確認此任務是可接受的,或者建議修改以改進任務。如果你錯過了截止日期,我將無法為任務描述提供特別的形成性反饋。
c) 您的最終反饋您將收到一個總體分數,根據分數方案對該分數進行細分(第4節)。你還將收到一條關於進展順利的簡短評論,讓你獲得給定的分數邊界以及本可以改進以獲得下一個邊界的內容。程式設計語言與正規化9d) 如何聯絡單元導師?如果您想就評估要求提出任何問題,請聯絡我透過電子郵件、團隊或在每週辦公時間面對面進行學習演播室請參閱Moodle瞭解我的聯絡方式。附錄A——示例設計和實施檔案我決定使用Haskell實現修改後的井字遊戲程式。我的高階虛擬碼總體演算法如下:1.將董事會表示為列表2.實現遞迴函式,透過單個列表來確定是否有獲勝(行)
3.實現遞迴函式,遍歷一個列表列表,確定是否獲勝(cols)4.實現遞迴函式,遍歷列表列表,確定是否有獲勝(對角線)
5.實現在列位置新增“M”或“S”的功能。簽名:char,[[Integer]]->整數6.實現刪除“M”或“S”的功能。(重複使用以上功能?)7.實現控制遊戲邏輯的功能a.先是M,然後是Sb.在每次迭代時,得到一個數字(1-49),指示要玩的單元c.每三回合玩家可以移除一個細胞我為下面的每個功能提供了我在白板上寫的虛擬碼的螢幕截圖:遞迴函式:[SCREENSHOT 1]向板新增/刪除字元:[SCREENSHOT 2]遊戲迴圈:[Screenshot3]在實現過程中,我編寫了以下程式碼作為第一次迭代:【程式碼截圖】這使我能夠識別出我的方法中的以下錯誤,這導致我將系統重新設計為跟隨:[錯誤和更新程式碼的截圖]一旦我有了一個工作系統,我就決定測試它。我執行的測試如下:程式設計語言與正規化101) M選手獲勝,跑到底2)跑到最後,S選手獲勝3)以平局跑到最後。【測試截圖】附錄B-反饋表標記名:Matthew Shardlow學生姓名:Matthew Shardlow學號:99999999解決方案1解決方案2解決方案3比較(25)全部的(100)設計(10)解釋(15)設計(10)解釋(15)設計(10)解釋(15)7 1
此提交包含一個井字遊戲,該遊戲具有修改後的棋盤設計和額外的規則,以允許玩家移除對手的瓷磚。解決方案1和3(Haskell和C++)在中得到了很好的實現函式和OO正規化。
C++中的OO結構設計得非常好,並導致高效程式碼。解決方案2未能正確使用Rust,也沒有說明正在使用的範例。我使用了下面的標準來標記你的作品。你可以透過將你分配的分數與每個類別的給定等級相匹配。程式設計語言與正規化11評估標準設計(10)0分:無文件。1-3分:很少的設計和實現文件工作,或設計和實現文件不連貫,與提交的程式碼無關。4-6分:充分的設計和實施檔案工作。設計和實施文件與提交的程式碼相關。7-10分:優秀且廣泛的設計和實施文件工作。文件超出了本科生的預期。解釋25%比較25%程式設計語言與正規化12設計0分:無文件。1-3分:很少的設計和實現文件工作,或設計和實現文件不連貫,與提交的程式碼無關。4-6分:充分的設計和實施檔案工作。設計和實施文件與提交的程式碼相關。7-10分:優秀且廣泛的設計和實施文件工作。文件超出了本科生的預期。解釋0分:無文件。1-5分:正規化識別錯誤。功能描述不佳,與密碼6-10分:透過適當的推理來陳述一個正規化。大多數功能都得到了正確的描述幾乎沒有錯誤。11-15分:正確識別了正規化。卓越的功能描述,顯示非凡理解如何使用給定的範例。程式設計語言與正規化13比較0分:無對比。1-5分:不充分的比較,涵蓋了一套不完整的正規化。很少或沒有臨界評價6-15分:足夠的比較水平。至少有兩種正規化得到了正確的比較。一些確定了適當的特徵,並在幾乎沒有或根本沒有的解決方案中證明了等效性