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。