讲课方法
讲课方法
1. 简介
重点去讲方法,多做一些算法真题,多做一些习题。
对于算法来说,解决两个关键问题,一是如何设计算法,二是如何实现算法。
设计算法是针对给出的问题,如何设计算法来解决这个问题。
实现算法是如何用编程语言来实现算法。
2. 设计算法
设计算法,首先要理解问题。
借助算法中的相关理论,如动态规划,贪心算法,回溯法等。将大问题分解成小问题,大问题化成小问题。
3. 实现算法
算法的实现,就是如何用编程语言来实现算法。
但是,现在学生的编程能力较弱,唯一的办法是多练,多练,再练。
编程能力对以后的学习很重要,编程能力是基础。尤其是读研的学生,编程能力很重要。
4.讲课内容安排
第1周 基本知识
第2-4周 递归与分治
第5-8周 动态规划
第9-11周 贪心算法
第12-14周 回溯法
第15-17周 分支限界法
以真题为主,习题为辅。理论与实践相结合。
4. 总结
就是多练,建议每天都要刷题,每天至少1道算法题。大家可以去力扣,蓝桥杯官网,ACM官网去找题,牛客网, 洛谷也不错,还有其它一些网站。 具体如下:
国内平台
维基OI (已关闭,但资源仍有参考价值)
国际平台
Project Euler (专注于数学/计算问题)
Advent of Code (每年圣诞节期间的趣味编程挑战)
DMOJ (加拿大现代竞赛平台)
USA Computing Olympiad (USACO) (美国计算机奥林匹克竞赛)
其他/专项平台
LintCode (类似LeetCode,主要面向求职)
hihoCoder (曾由微软赞助,题目质量高)
JudgeGirl (台湾师范大学的OJ,中文题)
Eolymp (面向欧洲和中亚学生的多语言OJ)
Rosalind (专注于生物信息学编程问题)
CheckiO (以游戏化的方式学习Python和TypeScript)
Codewars (通过挑战“ Kata ” 来提升技能)
Exercism (提供多种编程语言的练习和导师指导)
以上内容由AI生成。