大學程式能力檢定

短碼競賽

一、競賽緣起
為提升大專學生程式寫作能力,培養學生獨立思考及解決問題的能力,訂於「大學程式能力檢定」(CPE)之後,針對CPE考題進行短碼競賽。希望CPE競賽考題不僅僅用於認證考試,更希望學生能使用長時間思考同一問題,尋找各式不同的解法,追求程式碼的簡潔、俐落,同時保有效能及可讀性。CPE短碼競賽,在程式碼效能方面設有執行時間限制;在程式碼簡潔方面,則以使用最少詞數者為優勝。
二、競賽辦法
  1. 競賽時間:2012年12月18日23:59:59至2013年01月01日23:59:59。
  2. 報名資格:所有大專院校學生(含碩士班及博士班學生)皆可報名參加,註冊http://coding-frenzy.arping.me帳號,即完成報名。
  3. 競賽環境:http://coding-frenzy.arping.me,使用「瘋狂程設」競賽專用軟體環境。
  4. 服務信箱:arping@gmail.com謝育平教授
  5. 競賽語言:C/C++或Java語言皆可,
    C/C++語言:編譯器以微軟VC++2010 Express(免費)為標準。
    Java語言:編譯器以甲骨文Java1.7.0(免費)為標準。
  6. 競賽方式:參賽者須於競賽期限內,在任何地點使用競賽軟體完成程式寫作。
三、競賽題目
  1. 競賽題目:競賽題目為2012/09/25 CPE考試題目。
  2. 競賽組別:競賽分成C/C++組與Java組,任何人皆可同時參加兩組競賽,請依分組謹慎繳交程式碼。如有繳交錯誤組別,請使用服務信箱請求協助。
  3. 評分標準:程式碼評分標準以功能為主,簡潔為輔;在通過功能驗證的程式碼中,依使用「詞數」由少到多排定「名次」。
  4. 程式要求:繳交程式碼須能體現題目意思,而非觀察測資分佈撰寫而得;程式碼須能在標準設定電腦中通過編譯及執行,程式碼須為參賽者自行撰寫並擁有相關智財權。有爭議者,將由審查委員開會決定之。
四、詞數計算
#include<iostream>
using namespace std;
int main(){
   int n;cin>>n;
   if(n>0 && n%2)cout<<"Positive Odd\n";
   else if(n>0)cout<<"Positive Even\n";
   else cout<<(n<0?"Negtive\n":"Zero\n");
   return 0;
}
  1. 詞數計算:以系統呈現詞數為評分標準。
  2. 計詞準則:計算關鍵詞、變數名、函數名、類別名、數字等出現總次數。
  3. 計詞例外:「using namespace不計詞」、「?:計2詞」、「&&計1詞」、「 || 計1詞」、「字串計1詞」、「反斜線計1詞」。
  4. 計詞範例:右側程式碼共計37詞。
五、獎勵辦法
本競賽分兩種語言C/C++、Java處理,每組7題,計14題短碼競賽。
將在CPE官網記錄優勝者姓名與程式原始碼。