2021csp怎么考?
考試內(nèi)容主要覆蓋大學(xué)計算機(jī)專業(yè)所學(xué)習(xí)的程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)以及算法,以及相關(guān)的數(shù)學(xué)基礎(chǔ)知識。包括但不限于:
(1)程序設(shè)計基礎(chǔ)
邏輯與數(shù)算,分支循環(huán),過程調(diào)用(遞歸),字符串操作,文件操作等。
(2)數(shù)據(jù)結(jié)構(gòu)
線性表(數(shù)組、隊列、棧、鏈表)、樹(堆、排序二叉樹)、哈希表、集合與映射、圖。
(3)算法與算法設(shè)計策略
排序與查找,枚舉,貪心策略,分治策略,遞推與遞歸,動態(tài)規(guī)劃,搜索,圖論算法,計算幾何,字符串算法、線段樹、隨機(jī)算法,近似算法等。
6、認(rèn)證
認(rèn)證全部采用上機(jī)編程,可以自帶參考資料,包括:常用語言的程序設(shè)計基礎(chǔ)書、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計、組合數(shù)學(xué)等相關(guān)書籍,入場時須經(jīng)監(jiān)考人員檢查。但是不允許使用手機(jī)和電子設(shè)備。
考核為黑盒測試,編制的程序在服務(wù)器端被編譯執(zhí)行,采用多組測試數(shù)據(jù)對程序進(jìn)行驗證,檢驗在題目規(guī)定的運(yùn)行時間和內(nèi)存空間限制內(nèi),是否能夠輸出正確結(jié)果,根據(jù)輸出結(jié)果正確與否來進(jìn)行評分,沒有人工評判環(huán)節(jié),保證認(rèn)證的公平和公正性;
認(rèn)證時間為4小時,共5道題,從第一題至第五題,難度依次遞進(jìn),每題100分,總分500分。
CSP認(rèn)證考試的編譯器環(huán)境為:
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
有關(guān)Python字符串反轉(zhuǎn)的遞歸實現(xiàn),為什么以下代碼實現(xiàn)不了?
羌笛何須怨楊柳,春風(fēng)不度玉門關(guān)。
日出江花紅勝火,春來江水綠如藍(lán)。
不知近水花先發(fā),疑是經(jīng)冬雪未銷。
花間一壺酒,獨(dú)酌無相親。
窗含西嶺千秋雪,門泊東吳萬里船。
欲說還休,卻道天涼好個秋。
人皆苦炎熱,我愛夏日長。
不知近水花先發(fā),疑是經(jīng)冬雪未銷。
如何自學(xué)matlab編程或者python編程?
作為小白,在學(xué)習(xí)Python的時候,必然會走一定的彎路,有人在彎路上走丟了,有人走出了彎路。在此分享我的Python學(xué)習(xí)之路:
基礎(chǔ)部分:
(1)初始Python:
1.Python簡介和發(fā)展歷史2.Python優(yōu)缺點3.Python能做什么4.Python環(huán)境搭建,命令行打印“Python課程開始了!”5.PyCharm安裝及使用6.輸入、輸出7.注釋(2)數(shù)據(jù)類型
1.變量是什么、變量命名.標(biāo)識符有哪些3.數(shù)據(jù)類型概述,Python有中哪些數(shù)據(jù)類型4.數(shù)值類型5.算數(shù)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、運(yùn)算符優(yōu)先級6.數(shù)據(jù)類型轉(zhuǎn)換(3)邏輯控制
1.布爾類型2.if、if...else、if...elif、嵌套結(jié)構(gòu)3.猜拳游戲4.字符串與切片5.字符串常用函數(shù)6.while循環(huán)(4)復(fù)雜類型和循環(huán)結(jié)構(gòu)和算法
1.for和for...else2.break、continue3.元組3.列表概念及操作4.集合5.算法:冒泡排序6.字典(5)函數(shù)應(yīng)用和遞歸算法
1.文件操作概念2.文件打開和關(guān)閉3.文件讀寫4.文件定位讀寫5.文件重命名、文件刪除6.文件夾操作7.遞歸打印目錄8.在指定目標(biāo)中文件中追加內(nèi)容(包含目錄、文件是否存在判斷)(6)文件操作
1.模塊簡介2.使用標(biāo)準(zhǔn)庫中的模塊3.自定義模塊4._name_屬性5.包6.安裝及使用第三方模塊7.異常概念8.捕獲異常9.異常的傳遞10.自定義異常(7)面向?qū)ο?/p>
1.面向?qū)ο蟾拍罱榻B2.類和對象概念3.類的定義和實例化對象4.對象初始化狀態(tài)5.魔方方法7.self8.析構(gòu)函數(shù)9.訪問權(quán)限控制10.面向?qū)ο缶毩?xí)之回合制小游戲(8)繼承和多態(tài)
1.單繼承2.多繼承3.重寫父類方法和調(diào)用父類方法4.類屬性和實例屬性5.靜態(tài)方法和類方法6.動態(tài)給實例添加屬性與方法并使用__slots(9)設(shè)計模式
1.設(shè)計模式簡介2.單例設(shè)計模式3.new()3.簡單工廠4.抽象工廠
進(jìn)階部分:
(1)函數(shù)高級特性
1.函數(shù)變量2.生成器2.閉包3.裝飾器6.匿名函數(shù)8.偏函數(shù)9.對象比較10.深拷貝和淺拷貝11.私有屬性12.屬性property(2)進(jìn)程
1.進(jìn)程簡介2.單任務(wù),啟動進(jìn)程實現(xiàn)多任務(wù)3.封裝進(jìn)程為進(jìn)程池4.進(jìn)程間通信(Queue)5.fork創(chuàng)建進(jìn)程6.multiprocessing創(chuàng)建進(jìn)程(3)線程和協(xié)程
1.線程簡介2.啟動一個線程3.線程間共享數(shù)據(jù)4.生產(chǎn)者與消費(fèi)者5.協(xié)程簡介6.協(xié)程原理7.threading模塊創(chuàng)建線程8.線程間通信9.threadLocal變量
WEB前端技術(shù)
(1)HTML
1.HTML簡介2.HTML總體結(jié)構(gòu)3.HTML5和HTML4的對比4.HTML基本語法5.常用標(biāo)簽6.練習(xí)案例:簡單登錄。客戶端向服務(wù)器端傳遞數(shù)據(jù)(2)
1.CSS3.0簡介,盒子模型2.引入CSS的三種.引入優(yōu)先級4.CSS選擇器5.CSS各種屬性6.CSS偽選擇器7.練習(xí)案例:完善頁面效果。注冊信息發(fā)送給客戶端(3)
1.Javascript簡介2.Javascript執(zhí)行原理3.Javascript組成(三部分)4.ECMAscript核心語法:基本語法、數(shù)據(jù)類型、判斷語句、循環(huán)、類型轉(zhuǎn)換、數(shù)值類型判斷5.內(nèi)置對象6.字符串常用函數(shù)(4)
1.DOM對象:獲取元素的幾種.BOM對象:彈出框、定時器、計時器(5)
1.jQuery簡介2.jQuery和Javascript的聯(lián)系3.jQuery命名規(guī)則4.jQuery對象和DOM對象轉(zhuǎn)換5.全部選擇器6.動畫(6)
1.jQuery中DOM操作2.事件3.循環(huán)遍歷4.正則和表單驗證(大量練習(xí))Linux基礎(chǔ)
(1)Linux系統(tǒng)
1.Linux發(fā)展歷史介紹2.虛擬機(jī)安裝(快速演示)3.CentOS6.X安裝(快速演示)4.虛擬機(jī)快照和管理5.常用命令6.虛擬網(wǎng)卡概述,靜態(tài)IP設(shè)置7.配置Python環(huán)境8.安裝MySQL(解壓版或yum)(2)Redis單機(jī)版操作
1.NoSQL是什么,出現(xiàn)目的2.Redis簡介3.Linux中JDK安裝4.Linux中Redis單機(jī)版安裝配置5.Redis數(shù)據(jù)類型6.Redis不同數(shù)據(jù)的命令操作演示7.Redis的windows客戶端工具8.Python連接Redis(3)Redis集群操作
1.分布式概念2.集群概念3.什么場景適用集群4.集群搭建5.Python連接Redis集群6.案例:緩存首頁菜單內(nèi)容
數(shù)據(jù)庫基礎(chǔ)及性能優(yōu)化
(1)MySQL與Python交互
1.MySQL初識2.MySQL安裝(不占用課時)3.MySQL命令行工具簡單實用4.MySQL客戶端工具Navicat使用5.MySQL命令執(zhí)行原理6.創(chuàng)建、刪除數(shù)據(jù)庫命令(帶編碼字符集)7.列類型8.創(chuàng)建、刪除表命令9.約束:主鍵約束、唯一約束、非空約束10.單條數(shù)據(jù)CRUD11.練習(xí)案例:Python連接MySQL實現(xiàn)單表CRUD(2)MySQL查詢
1.分組查詢2.聚合函數(shù)3.內(nèi)置函數(shù)4.分頁查詢5.排序6.視圖7.索引
(3)MySQL多表查詢
1.主外鍵約束2.關(guān)聯(lián)查詢(內(nèi)連接、外鏈接)3.自關(guān)聯(lián)4.子查詢5.事務(wù)(4)MySQL高級應(yīng)用
1.MySQL慢查日志的開啟和存儲.MySQL慢查日志分析工具之mysqldumpslow3.MySQL慢查日志分析工具之ptquery-digest4.如何通過慢查日志發(fā)現(xiàn)有問題的SQL5.通過explain查詢和分析SQL的執(zhí)行計劃6.SQL優(yōu)化:Count()和Max()的優(yōu)化、子查詢的優(yōu)化、groupby的優(yōu)化、Limit查詢的優(yōu)化、索引優(yōu)化
PythonWeb框架Django
(1)Django入門
1.Django簡介2.Django環(huán)境搭建3.Django-HelloWorld4.顯示登錄頁面5.Get登錄功能6.Post登錄功能7.注冊功能8.顯示注冊頁面9.處理注冊功能(2)Django數(shù)據(jù)庫連接與分頁
1.admin后臺管理類操作數(shù)據(jù)庫2.查詢所有信息3.登錄功能(連接MySQL)4.影片展示5.影片展示(原生分頁)6.Django分頁7.頁碼翻頁功能(3)ORM
1.單表查詢CRUD2.創(chuàng)建數(shù)據(jù)庫表3.一對一的關(guān)系4.一對多的關(guān)系5.多對多的關(guān)系6.學(xué)生注冊功能(4)多表操作
1.查詢班級信息_學(xué)生詳情2.自定義Manager1(查詢)3.邏輯刪除_單個對象刪除_多個對象刪除4.自定義Manager3(create)5.分析執(zhí)行過程6.多表插入(重寫save)(5)高級查詢
1.聚合函數(shù)_分組聚合查詢2.原生查詢3.Q查詢_F查詢4.Django事務(wù)_查詢兩個特性5.配置URL6.請求和響應(yīng)對象(6)上傳與下載
1.文件上傳2.文件下載3.重定向_錯誤訂制頁面4.cookie語法5.三天免登錄(7)Session
1.Session語法2.Session應(yīng)用(顯示個人信息)3.jsonpickle序列化隱藏字段4.讀取靜態(tài)文件5.django引入靜態(tài)文件(8)模版使用
1.模板渲染底層原理2.模板標(biāo)簽語法3.過濾器4.自定義過濾器5.全局上下文(9)CSRF
1.模板繼承_CSRF原理2.畫圖分析CSRF原理3.自定義中間件4.分析CSRF源碼5.修改Admin后臺頁面布局(10)Ajax
1.表單類2.表單校驗(表單類)3.表單校驗(JS原生校驗)4.AJAX語法5.用戶名唯一校驗(ajax)最后學(xué)習(xí),pythonWeb另外兩大框架:Flask、Tornado。