课内学习 · ACM 竞赛
计算机科学与技术|ACM 俱乐部成员|冯顾炜
总结:越打越菜。
目标:围绕课程分类、绩点计算与资源工具,构建高效学习闭环。
理清课程谱系,区分基础、核心与选修的不同发力点。
从平均绩点公式到等级映射,搭建可量化的成绩分析体系。
平均绩点基于所有课程绩点与学分的加权平均:
其中 gi 表示第 i 门课程的绩点,ci 表示对应学分。
CREATE OR REPLACE VIEW vw_score_grade AS
SELECT
student_id,
score,
ROUND(PERCENT_RANK() OVER (ORDER BY score DESC) * 100, 2) AS M,
CASE
WHEN is_pass = 0 AND is_makeup_pass = 1 THEN 'D'
WHEN is_pass = 0 AND is_makeup_pass = 0 THEN 'F'
WHEN PERCENT_RANK() OVER (ORDER BY score DESC) <= 0.15 THEN 'A'
WHEN PERCENT_RANK() OVER (ORDER BY score DESC) <= 0.30 THEN 'A−'
WHEN PERCENT_RANK() OVER (ORDER BY score DESC) <= 0.45 THEN 'B⁺'
WHEN PERCENT_RANK() OVER (ORDER BY score DESC) <= 0.60 THEN 'B'
WHEN PERCENT_RANK() OVER (ORDER BY score DESC) <= 0.80 THEN 'B−'
WHEN PERCENT_RANK() OVER (ORDER BY score DESC) <= 0.90 THEN 'C⁺'
ELSE 'C'
END AS grade_level
FROM score_table;
基于班级百分位数自动划分等级(PostgreSQL)。
CREATE OR REPLACE VIEW vw_score_grade_point AS
WITH grade_min AS (
SELECT grade_level, MIN(score) AS min_score
FROM vw_score_grade
GROUP BY grade_level
)
SELECT
g.student_id,
g.score,
g.M,
g.grade_level,
ROUND(
CASE
WHEN g.grade_level = 'A⁺' THEN 4.3
WHEN g.grade_level = 'A' THEN 4.0
WHEN g.grade_level = 'A−' THEN 3.7
+ 0.3 * (g.score - gmAminus.min_score) / (gmA.min_score - gmAminus.min_score)
WHEN g.grade_level = 'B⁺' THEN 3.3
+ 0.4 * (g.score - gmBplus.min_score) / (gmAminus.min_score - gmBplus.min_score)
WHEN g.grade_level = 'B' THEN 3.0
+ 0.3 * (g.score - gmB.min_score) / (gmBplus.min_score - gmB.min_score)
WHEN g.grade_level = 'B−' THEN 2.5
+ 0.5 * (g.score - gmBminus.min_score) / (gmB.min_score - gmBminus.min_score)
WHEN g.grade_level = 'C⁺' THEN 2.0
+ 0.5 * (g.score - gmCplus.min_score) / (gmBminus.min_score - gmCplus.min_score)
WHEN g.grade_level = 'C' THEN 1.5
+ 0.5 * (g.score - gmC.min_score) / (gmCplus.min_score - gmC.min_score)
WHEN g.grade_level = 'D' THEN 1.0
WHEN g.grade_level = 'F' THEN 0.0
END,
1) AS grade_point
FROM vw_score_grade g
LEFT JOIN grade_min gmA ON gmA.grade_level = 'A'
LEFT JOIN grade_min gmAminus ON gmAminus.grade_level = 'A−'
LEFT JOIN grade_min gmBplus ON gmBplus.grade_level = 'B⁺'
LEFT JOIN grade_min gmB ON gmB.grade_level = 'B'
LEFT JOIN grade_min gmBminus ON gmBminus.grade_level = 'B−'
LEFT JOIN grade_min gmCplus ON gmCplus.grade_level = 'C⁺'
LEFT JOIN grade_min gmC ON gmC.grade_level = 'C';
利用各等级的最低分作为基点,使用线性插值细化绩点梯度。
聚合校内资源与数字工具,打造可持续的学习支撑体系。
教材、实验指导书、助教答疑与办公时间。
B站大学、GitHub、OJ 刷题站。
Markdown 笔记、Chat 老师、Git 代码管理、多人小团体。
推荐大家尽早接触 Arch Linux 操作系统。
I use Arch btw.
目标:串联竞赛定位、俱乐部生态与训练规划,帮队友快速进入状态。
走进 ICPC / CCPC 赛制,明确“三人一机”的协作要求。
某次比赛中教练对“摸鱼”队员的调侃。
了解俱乐部结构、导师制度与知识共享氛围。
Deep Learning · Reinforcement Learning · NaiLong Learning
既着眼于传统算法竞赛,也向前沿科研靠拢。
左手抓竞赛,右手抓科研。
制定从入门到赛前冲刺的节奏、复盘与协作策略。
熟悉竞赛常用语言的语法与 IO 技巧。
扎实掌握数据结构、复杂度与常用算法。
面向比赛的专题训练与代码复盘。
熟练掌握 C/C++ 基础语法,熟悉 STL 容器的使用。
11月13日晚 18:30 奶龙主题编程训练赛,面向新生。
地点:机房 B129