在線評測系統開發交流

https://space.bilibili.com/700332132?spm_id_from=333.788.0.0

  • 實驗內容
  • 爬蟲
  • Web系統設計
  • 數據分析
  • 實驗指導
  • 爬蟲
  • Web系統設計
  • 自然語言處理與信息檢索
  • 數據可視化
  • 評分標準
  • FAQ
  • 實驗二:在線評測系統
  • 實驗概述
  • 實驗內容
  • Step1:題目管理
  • Step2:題目評測
  • Step3:評測列表
  • Step4:用戶管理
  • Step5:日志與權限
  • Step6:持久化存儲
  • Adv1:特殊題目評測
  • Adv2:前端交互
  • Adv3:安全機制
  • Adv4:代碼查重
  • API 文檔
  • 評分標準
  • FAQ
  • 倉庫拉取教程
  • 附錄:本地 Git 安裝與配置指南

目錄

  • 實驗目標
  • 技術要求
  • 基礎模塊(必做,共30分)
  • 進階模塊(選做,最多加10分)
  • API 文檔
  • 評分標準
  • 學習資源
  • 致謝

OJ 系統實驗說明?

本實驗作業參考了清華大學韓文弢老師 Rust 程序設計訓練 OJ 大作業(作業背景)。

實驗目標?

構建一個小型但功能完整的 Online Judge (OJ) 系統,分階段實現,逐步掌握系統設計、API開發、安全控制等核心能力。

快速入門可參考快速入門文檔。

技術要求?

異步編程實踐:本次作業要求使用 FastAPI 的異步接口(async def)完成所有 API 開發,目的是讓大家初步體驗異步編程的概念和用法。異步編程是現代 Web 開發的重要技術,有助于提高應用程序的并發性能。不使用異步編程接口將拿不到本次作業分數,請同學們務必注意。

項目規模:為了讓大家初步體驗較大項目的開發,本次作業代碼行數預計在兩千行左右,請同學們合理規劃時間,做好進度管理。

提交規范:要求按照?Conventional Commits?規范編寫 Git 提交信息,不符合規范的提交將酌情扣分。

基礎模塊(必做,共30分)?

Step名稱主要功能描述詳細文檔Step1配置解析題目配置加載、字段校驗、異常處理step1.mdStep2評測控制程序執行、資源限制、輸出比對、動態注冊語言step2.mdStep3用戶系統用戶注冊/更新、權限管理、人工判題接口step3.mdStep4任務狀態管理評測任務流轉、調度、APIstep4.mdStep5評測日志日志結構化記錄、日志接口、權限step5.mdStep6數據持久化數據存儲、備份恢復、持久化結構與接口step6.md

進階模塊(選做,最多加10分)?

Advance名稱主要功能描述Adv1Special Judge特殊題目評測,支持多種評測方式Adv2前端交互極簡前端界面(如 Streamlit),與后端交互Adv3安全機制Docker 容器控制、命令過濾、資源限制Adv4代碼查重查重算法實現、抄襲檢測

API 文檔?

所有接口、參數、異常、狀態碼等詳見?api.md。

評分標準?

參見?requirements.md

學習資源?

  • 技術教程:
  • 系統設計基礎
  • Python 異步編程
  • Docker 容器技術
  • 參考項目:
  • Codeforces?- 知名OJ平臺
  • LeetCode?- 編程練習平臺
  • HackerRank?- 技術評測平臺

程序設計訓練(Python)keg-course 清華大學

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914581.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914581.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914581.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux操作系統從入門到實戰(十)Linux開發工具(下)make/Makefile的推導過程與擴展語法

Linux操作系統從入門到實戰(十)Linux開發工具(下)make/Makefile的推導過程與擴展語法前言一、 make/Makefile的推導過程1. 先看一個完整的Makefile示例2. make的工作流程(1)尋找Makefile文件(2&…

NFS磁盤共享

步驟:注意事項?:確保服務端防火墻關閉,或者允許2049端口通信,客戶端需具備讀寫權限。服務器端安裝NFS服務器:sudo apt-get install nfs-kernel-server # Debian/Ubuntu sudo yum install nfs-utils # Ce…

ORA-06413: 連接未打開

System.Data.OracleClient.OracleException:ORA-06413: 連接未打開 oracle 報錯 ORA-06413: 連接未打開 db.Open();的報錯鏈接未打開,System.Data.OracleClient.OracleException HResult0x80131938 MessageORA-06413: 連接未打開 關于ORA-06413錯誤(…

【PCIe 總線及設備入門學習專欄 5.1.2 -- PCIe EP core_rst_n 與 app_rst_n】

文章目錄 app_rst_n 和 core_rst_n 的作用1. core_rst_n — PCIe 控制器內部邏輯復位作用控制方式2. app_rst_n — 應用層/用戶邏輯復位作用特點兩者關系圖示:示例流程(Synopsys EP)rst_sync[3] 的作用詳解(復位同步邏輯)為什么使用 rst_sync[3]?圖示說明Synopsys 官方手…

Python初學者筆記第二十期 -- (文件IO)

第29節課 文件IO 在編程中,文件 I/O(輸入/輸出)允許程序與外部文件進行數據交互。Python 提供了豐富且易用的文件 I/O 操作方法,能讓開發者輕松實現文件的讀取、寫入和修改等操作。 IO交互方向 從硬盤文件 -> 讀取數據 -> 內…

Java JUC包概述

Java 的 java.util.concurrent(簡稱 JUC)包是 JDK 5 及以后引入的并發編程工具包,旨在解決傳統線程模型(如 synchronized、wait/notify)的局限性,提供更靈活、高效、可擴展的并發編程組件。它極大簡化了多線…

LeetCode--44.通配符匹配

前言:不知不覺又斷更一天了,其實昨天就把這道題寫得差不多了,只是剛好在力扣里面看見了一種新的解法,本來想寫出來的,但是我把它推到今天了,因為太晚了,但是今天又睡懶覺了,所以我直…

WHAT - 依賴管理工具 CocoaPods

文章目錄1. 什么是 CocoaPods?2. 如何安裝 CocoaPods?(1) 確保已安裝 Ruby(macOS 默認自帶)(2) 安裝 CocoaPods(3) 驗證安裝3. 在 React Native 項目中使用 CocoaPods(1) 進入 iOS 目錄(2) 初始化 Podfile(如果不存在&…

C++ Boost Aiso TCP 網絡聊天(服務端客戶端一體化)

代碼功能說明: 程序模式: 主動連接模式:當用戶指定對端 IP 和端口時,嘗試連接到對端被動監聽模式:當用戶未指定對端 IP 時,等待其他節點連接線程模型: 主線程:處理用戶輸入和消息發送接收線程:后臺接收并顯示對端消息關鍵組件: std::atomic<bool> connected:原…

WeakAuras 5.12.9 Ekkles lua

3.45獵人寶寶狼 技能恢復宏已知3.45BUG RL技能位會清空&#xff0c;小退大退 BB技能全部激活&#xff0c;修復以前可用宏一鍵恢復狀態-------方法一&#xff1a;宏命令---------------------------------------------------------#showtooltip 狂怒之嚎 /petautocaston [btn:1]…

對于編寫PID過程中的問題

當stm32RCT6使用位置環pid控制麥輪轉動一定路程時&#xff0c;在這個時間段內想讓一邊輪胎速度加大應該怎么做&#xff1f;比如我pid的目標脈沖值為9000&#xff0c;在運行到3000的時候車偏左了&#xff0c;那我應該怎樣讓他回正&#xff0c;我想到的辦法是增加其最大的脈沖值&…

LeetCode|Day13|88. 合并兩個有序數組|Python刷題筆記

LeetCode&#xff5c;Day13&#xff5c;88. 合并兩個有序數組&#xff5c;Python刷題筆記 &#x1f5d3;? 本文屬于【LeetCode 簡單題百日計劃】系列 &#x1f449; 點擊查看系列總目錄 >> &#x1f4cc; 題目簡介 題號&#xff1a;88. 合并兩個有序數組 難度&#xf…

【C++】初識C++(1)

個人主頁&#xff1a;我要成為c嘎嘎大王 希望這篇小小文章可以讓你有所收獲&#xff01; 目錄 前言 一、C的第一個程序 二、命名空間 2.1 namespace 的價值 2.2 namespace 的定義 2.2.1 正常的命名空間定義 2.2.2 命名空間可以嵌套 2.2.3 匿名命名空間 2.2.4 同名的name…

在新聞資訊 APP 中添加不同新聞分類頁面,通過 ViewPager2 實現滑動切換

在新聞資訊 APP 中添加不同新聞分類頁面&#xff0c;通過 ViewPager2 實現滑動切換 核心組件的作用 ViewPager2&#xff1a;是 ViewPager 的升級版&#xff0c;基于RecyclerView實現&#xff0c;支持水平 / 垂直滑動、RTL&#xff08;從右到左&#xff09;布局&#xff0c;且修…

vuex操作state為什么要使用mutations作為規范而不是直接修改state

1. 狀態變更的可追蹤性 (Trackable Changes)Devtools 集成&#xff1a;Vue Devtools 可以捕獲每次 mutation 的執行記錄&#xff0c;記錄變更前后的 state 快照、參數和調用棧。直接修改 state&#xff1a;Devtools 無法檢測到變更來源&#xff0c;導致調試困難&#xff08;如無…

Spring AI 系列之九 - RAG-入門

之前做個幾個大模型的應用&#xff0c;都是使用Python語言&#xff0c;后來有一個項目使用了Java&#xff0c;并使用了Spring AI框架。隨著Spring AI不斷地完善&#xff0c;最近它發布了1.0正式版&#xff0c;意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

【數據結構】基于順序表的通訊錄實現

目錄 1 順序表的概念及結構 1.1 線性表 1.2 順序表分類 1.2.1 靜態順序表 1.2.2 動態順序表 2 順序表的實現 2.1 順序表的初始化 2.2 順序表中數據的增加和修改 2.2.1 順序表的頭插 2.2.2 順序表的尾插 2.2.3 順序表的頭刪 2.2.4 順序表的尾刪 2.2.5 順序表指定位置…

C語言與匯編混合編程

一、GCC 擴展語法與MSVC約束 &#xff08;一&#xff09;GCC&#xff08;GNU Compiler Collection&#xff09;內聯匯編語法 asm("匯編指令");#或者 __asm__("匯編指令");#使用更復雜的語法來指定輸入、輸出操作數和修改的寄存器&#xff1a; asm volatile…

WPF中的ListBox詳解

文章目錄簡介ListBoxItem選中項目動態列表簡介 【ListBox】是列表控件&#xff0c;其內部可包含多個【ListBoxItem】&#xff0c;用戶可以從列表中選擇一個或多個項&#xff0c;若Item個數超過指定高度&#xff0c;則右側會自動出現滾動條&#xff0c;非常便捷。盡管邏輯上來說…

【歷史人物】【李白】生平事跡

目錄 一、李白個人簡歷 二、個人主要經歷 三、個人成就及影響 1、詩 2、詞 3、書法 4、劍術 5、理想 四、歷史評價 五、趣事 1、李白擱筆 2、贈汪倫 一、李白個人簡歷 基本信息? 姓名&#xff1a;李白&#xff0c;字太白&#xff0c;號青蓮居士 性別&#xff1…