2021csp怎么考?
考试内容主要覆盖大学计算机专业所学习的程序设计、数据结构以及算法,以及相关的数学基础知识。包括但不限于:
(1)程序设计基础
逻辑与数算,分支循环,过程调用(递归),字符串操作,文件操作等。
(2)数据结构
线性表(数组、队列、栈、链表)、树(堆、排序二叉树)、哈希表、集合与映射、图。
(3)算法与算法设计策略
排序与查找,枚举,贪心策略,分治策略,递推与递归,动态规划,搜索,图论算法,计算几何,字符串算法、线段树、随机算法,近似算法等。
6、认证
认证全部采用上机编程,可以自带参考资料,包括:常用语言的程序设计基础书、数据结构、算法设计、组合数学等相关书籍,入场时须经监考人员检查。但是不允许使用手机和电子设备。
考核为黑盒测试,编制的程序在服务器端被编译执行,采用多组测试数据对程序进行验证,检验在题目规定的运行时间和内存空间限制内,是否能够输出正确结果,根据输出结果正确与否来进行评分,没有人工评判环节,保证认证的公平和公正性;
认证时间为4小时,共5道题,从第一题至第五题,难度依次递进,每题100分,总分500分。
CSP认证考试的编译器环境为:
C/C:Codeblocks-16.01或Dev-CPP5.4.0(MinGW4.7.2)
Java:Eclipse(JavaSDK1.7.0_15)
Python:版本号:3.6.5、PyCharm、Sublime
浏览器:Chrome
有关Python字符串反转的递归实现,为什么以下代码实现不了?
羌笛何须怨杨柳,春风不度玉门关。
日出江花红胜火,春来江水绿如蓝。
不知近水花先发,疑是经冬雪未销。
花间一壶酒,独酌无相亲。
窗含西岭千秋雪,门泊东吴万里船。
欲说还休,却道天凉好个秋。
人皆苦炎热,我爱夏日长。
不知近水花先发,疑是经冬雪未销。
如何自学matlab编程或者python编程?
作为小白,在学习Python的时候,必然会走一定的弯路,有人在弯路上走丢了,有人走出了弯路。在此分享我的Python学习之路:
基础部分:
(1)初始Python:
1.Python简介和发展历史2.Python优缺点3.Python能做什么4.Python环境搭建,命令行打印“Python课程开始了!”5.PyCharm安装及使用6.输入、输出7.注释(2)数据类型
1.变量是什么、变量命名.标识符有哪些3.数据类型概述,Python有中哪些数据类型4.数值类型5.算数运算符、比较运算符、逻辑运算符、运算符优先级6.数据类型转换(3)逻辑控制
1.布尔类型2.if、if...else、if...elif、嵌套结构3.猜拳游戏4.字符串与切片5.字符串常用函数6.while循环(4)复杂类型和循环结构和算法
1.for和for...else2.break、continue3.元组3.列表概念及操作4.集合5.算法:冒泡排序6.字典(5)函数应用和递归算法
1.文件操作概念2.文件打开和关闭3.文件读写4.文件定位读写5.文件重命名、文件删除6.文件夹操作7.递归打印目录8.在指定目标中文件中追加内容(包含目录、文件是否存在判断)(6)文件操作
1.模块简介2.使用标准库中的模块3.自定义模块4._name_属性5.包6.安装及使用第三方模块7.异常概念8.捕获异常9.异常的传递10.自定义异常(7)面向对象
1.面向对象概念介绍2.类和对象概念3.类的定义和实例化对象4.对象初始化状态5.魔方方法7.self8.析构函数9.访问权限控制10.面向对象练习之回合制小游戏(8)继承和多态
1.单继承2.多继承3.重写父类方法和调用父类方法4.类属性和实例属性5.静态方法和类方法6.动态给实例添加属性与方法并使用__slots(9)设计模式
1.设计模式简介2.单例设计模式3.new()3.简单工厂4.抽象工厂
进阶部分:
(1)函数高级特性
1.函数变量2.生成器2.闭包3.装饰器6.匿名函数8.偏函数9.对象比较10.深拷贝和浅拷贝11.私有属性12.属性property(2)进程
1.进程简介2.单任务,启动进程实现多任务3.封装进程为进程池4.进程间通信(Queue)5.fork创建进程6.multiprocessing创建进程(3)线程和协程
1.线程简介2.启动一个线程3.线程间共享数据4.生产者与消费者5.协程简介6.协程原理7.threading模块创建线程8.线程间通信9.threadLocal变量
WEB前端技术
(1)HTML
1.HTML简介2.HTML总体结构3.HTML5和HTML4的对比4.HTML基本语法5.常用标签6.练习案例:简单登录。客户端向服务器端传递数据(2)
1.CSS3.0简介,盒子模型2.引入CSS的三种.引入优先级4.CSS选择器5.CSS各种属性6.CSS伪选择器7.练习案例:完善页面效果。注册信息发送给客户端(3)
1.Javascript简介2.Javascript执行原理3.Javascript组成(三部分)4.ECMAscript核心语法:基本语法、数据类型、判断语句、循环、类型转换、数值类型判断5.内置对象6.字符串常用函数(4)
1.DOM对象:获取元素的几种.BOM对象:弹出框、定时器、计时器(5)
1.jQuery简介2.jQuery和Javascript的联系3.jQuery命名规则4.jQuery对象和DOM对象转换5.全部选择器6.动画(6)
1.jQuery中DOM操作2.事件3.循环遍历4.正则和表单验证(大量练习)Linux基础
(1)Linux系统
1.Linux发展历史介绍2.虚拟机安装(快速演示)3.CentOS6.X安装(快速演示)4.虚拟机快照和管理5.常用命令6.虚拟网卡概述,静态IP设置7.配置Python环境8.安装MySQL(解压版或yum)(2)Redis单机版操作
1.NoSQL是什么,出现目的2.Redis简介3.Linux中JDK安装4.Linux中Redis单机版安装配置5.Redis数据类型6.Redis不同数据的命令操作演示7.Redis的windows客户端工具8.Python连接Redis(3)Redis集群操作
1.分布式概念2.集群概念3.什么场景适用集群4.集群搭建5.Python连接Redis集群6.案例:缓存首页菜单内容
数据库基础及性能优化
(1)MySQL与Python交互
1.MySQL初识2.MySQL安装(不占用课时)3.MySQL命令行工具简单实用4.MySQL客户端工具Navicat使用5.MySQL命令执行原理6.创建、删除数据库命令(带编码字符集)7.列类型8.创建、删除表命令9.约束:主键约束、唯一约束、非空约束10.单条数据CRUD11.练习案例:Python连接MySQL实现单表CRUD(2)MySQL查询
1.分组查询2.聚合函数3.内置函数4.分页查询5.排序6.视图7.索引
(3)MySQL多表查询
1.主外键约束2.关联查询(内连接、外链接)3.自关联4.子查询5.事务(4)MySQL高级应用
1.MySQL慢查日志的开启和存储.MySQL慢查日志分析工具之mysqldumpslow3.MySQL慢查日志分析工具之ptquery-digest4.如何通过慢查日志发现有问题的SQL5.通过explain查询和分析SQL的执行计划6.SQL优化:Count()和Max()的优化、子查询的优化、groupby的优化、Limit查询的优化、索引优化
PythonWeb框架Django
(1)Django入门
1.Django简介2.Django环境搭建3.Django-HelloWorld4.显示登录页面5.Get登录功能6.Post登录功能7.注册功能8.显示注册页面9.处理注册功能(2)Django数据库连接与分页
1.admin后台管理类操作数据库2.查询所有信息3.登录功能(连接MySQL)4.影片展示5.影片展示(原生分页)6.Django分页7.页码翻页功能(3)ORM
1.单表查询CRUD2.创建数据库表3.一对一的关系4.一对多的关系5.多对多的关系6.学生注册功能(4)多表操作
1.查询班级信息_学生详情2.自定义Manager1(查询)3.逻辑删除_单个对象删除_多个对象删除4.自定义Manager3(create)5.分析执行过程6.多表插入(重写save)(5)高级查询
1.聚合函数_分组聚合查询2.原生查询3.Q查询_F查询4.Django事务_查询两个特性5.配置URL6.请求和响应对象(6)上传与下载
1.文件上传2.文件下载3.重定向_错误订制页面4.cookie语法5.三天免登录(7)Session
1.Session语法2.Session应用(显示个人信息)3.jsonpickle序列化隐藏字段4.读取静态文件5.django引入静态文件(8)模版使用
1.模板渲染底层原理2.模板标签语法3.过滤器4.自定义过滤器5.全局上下文(9)CSRF
1.模板继承_CSRF原理2.画图分析CSRF原理3.自定义中间件4.分析CSRF源码5.修改Admin后台页面布局(10)Ajax
1.表单类2.表单校验(表单类)3.表单校验(JS原生校验)4.AJAX语法5.用户名唯一校验(ajax)最后学习,pythonWeb另外两大框架:Flask、Tornado。