Кіріспе

PC² – бұл Калифорния мемлекеттік университетінде (Сакраменто) ACM компьютерлік бағдарламалау конкурстарын, әсіресе ACM Халықаралық студенттік бағдарламалау конкурсын қолдау мақсатында жасалған Бағдарламалау конкурстарын басқару жүйесі. Ол 1990 жылы және 1994 жылдан 2009 жылға дейін ACM ICPC әлемдік финалдарын өткізу үшін пайдаланылды. 2010 жылы ACM ICPC әлемдік финалдары KTH-ның автоматтандырылған оқыту құралы Kattis-ке көшті; алайда, PC² бүкіл әлемдегі көптеген ICPC аймақтық конкурстарында қолданыла береді.

Компьютерлік бағдарламалау байқаулары және PC2

Компьютерлік бағдарламалау байқауында жазбаларды бағалау ережелері мен әдістері бар. Төменде PC2 қолданылатын байқаудың жалпы сипаттамасы келтірілген. Компьютерлік бағдарламалау байқауы – командалардың (компьютерлік бағдарлама) шешімдерін төрешілерге ұсынатын жарыс. Командаларға шектеулі уақыт ішінде шешуге берілген мәселелер жиынтығы болады (мысалы, 5 сағат ішінде 8-13 мәселе). Содан кейін төрешілер ұсынылған шешімдерге қабылдау/қабылдамау туралы шешім шығарады. Командалардың орналасуы шешімдерге, шешімдердің ұсынылған уақытына және мәселені шешуге жасалған тырысқандар санына сүйеніп есептеледі. Төрешілер командалардың төрешілердің сынақ деректеріне қол жеткізе алмайтындай қара қорап әдісімен сынақтан өткізеді. PC2 бір немесе бірнеше орынды бағдарламалау байқауларын басқарады. Ол командаға жүйеге кіруге, шешімдерді тексеруге, шешімдерді ұсынуға және төрешілердің шешімдерін көруге мүмкіндік береді. PC2 төрешілерге команда шешімдерін (PC2 серверінен) сұрауға, шешімді іске қосуға және баға енгізуге мүмкіндік береді. PC2 турнирлік кесте модулі рейтингтерді және статистикалық веб-беттерді (HTML/XML) есептейді және жасайды. PC2 Linux/Linux сияқты жүйелерге және MS Windows-қа оңай орнатылады және оны орнату немесе пайдалану үшін супер пайдаланушы (root) құқығы қажет емес: бұл оны супер пайдаланушы құқығы жоқ пайдаланушылар үшін тартымды таңдауға айналдырады.

Пайдалану және пайдаланушы тәжірибесінің ерекшеліктері

PC2 1994 жылдан 2009 жылға дейін ACM International Collegiate Programming Contest World Finals үшін қолданылды. Сондай-ақ, ол әлемдегі жүздеген ICPC аймақтық жарыстарында қолданылды. 1989 жылдан бері ACM Тынық мұхитының солтүстік-батыс аймақтық жарысында, сондай-ақ Африка және Арабия аймақтық жарыстарында, Азиядағы көптеген аймақтық жарыстарда және АҚШ-тағы бірнеше аймақтық жарыстар сияқты көптеген ICPC аймақтық жарыстарында үздіксіз пайдаланылады. Бүгінгі күні ол ICPC аймақтық жарыстары үшін ең көп қолданылатын жарыс басқару жүйесі болып табылады. PC2 Африка және Арабия студенттік бағдарламалау жарысы (ACPC) басталғаннан бері, 25 жылдан астам уақыттан бері жыл сайын қолданылады. ACPC аймақтық жарыстардың жиынтығын қамтиды, оның ішінде Сауд Арабиясы, Нигерия, Оман, Оңтүстік Африка, Того, Марокко, Кувейт, Алжир, Иордания, Палестина, Катар, Бенин, Египет, Ливан, Эфиопия, Тунис, Бахрейн, Судан, Сирия және Анголаның жеке студенттік бағдарламалау жарыстары кіреді. Осы аймақтық/ұлттық жарыстардың әрқайсысы PC2 пайдаланады; көптеген аймақтық жарыстар кіші аймақтық жарыстардан құрамдалады, олардың барлығы да PC2 пайдаланады. Әр аймақтық жарыстың жеңімпаздары PC2 бағдарламасын пайдаланатын ACPC чемпионатында бақ сынасады. ACPC сонымен қатар "ACPC Kickoff", "ACPC for Girls", "ACPC for Teens" және "ACPC for Seniors" сияқты қосымша жарыстарды да қолдайды; тағы да, бұл жарыстардың барлығы да PC2 пайдаланады. Солтүстік Америкадағы ICPC (бұрынғы ACM) Үлкен Нью-Йорк аймақтық бағдарламалау жарысы 20 жылдан астам уақыттан бері PC2 қолданып келеді. Үлкен Нью-Йорк PC2-ді жылдар бойы әртүрлі жолдармен пайдаланды, соның ішінде бір орынды, бірнеше орынды және веб-ге негізделген командалық клиентті. Үлкен Нью-Йорк аймағындағы төрешілер PC2-ді басқа жарыс басқару жүйелерінен артық көреді, себебі ол оларға жарысқа қатысушылардың тапсырмаларын бағалауда ең үлкен икемділікті ұсынады. Тапсырмалар қолмен немесе компьютерлік автоматты түрде бағаланады. Көп жағдайда төрешілер кейбір мәселелерді қолмен шешуге тырысады, ал PC2 осы мүмкіндікті ұсынады. Сонымен қатар, PC2 әзірлеу тобы сұрақтарға жылдам жауап берді және туындаған кез-келген мәселелерге көмектесті. PC2 бірнеше жылдан бері ACM Mid Atlantic бағдарламалау жарысында қолданылады. Алдыңғы жылдары жүйе әкімшілері бағдарламаның таралуына байланысты сәттіліктері шектелді. Әр жарыс орындарында Java RMI-ді бастау және қабылдау үшін қажет PC2 сервері жұмыс істеді. 2005 жылдың күзінде орталық деректер ортасын пайдалануда ешқандай проблемалар туындамады. 2014 жылы PC2 жарыс басталғаннан кейін 3:45 сағаттан соң істен шықты, командалардың өздерінің тапсырмалары үшін квитанция алуына мүмкіндік бермеді. Төрешілер тапсырмаларды ала алмады, жарыс жеңімпазды жарияламай аяқталды. Бұл құжаттарды қайтаруға бір апта уақыт кетті. 2016 жылы да осындай жағдай орын алды. Жүйе әкімшілері PC2-ге веб-қосымшаны орнатуға шешім қабылдады, ол жүктеме кезінде сәтсіз аяқталды. Жарыс басталған уақыты 90 минутқа кешіктірілді. Командалар мәселелерді тапсыра алмады және жарыс директоры командаларға мәселелерді кейінірек қаралатын уақыт белгісімен сақтауға мүмкіндік беретін шешім табуға тырысты. 2013 жылы жүйе операторлары командалардың аттарын дұрыс енгізбеді, нәтижесінде командалар жарыстағы (турнирлік кесте) орын туралы ақпаратсыз қалды. Жүйе операторлары жарыс барысында команда атауларын түзетуге үлкермеді. Осы оқиғалардың салдарынан, аймақтың ұйымдастырушылары қазір Kattis сияқты баламалы жүйеге көшуді қарастыруда, ол ACM-нің ICPC World Finals үшін ресми жүйе болып табылады. 9 нұсқасының (сокетке негізделген нұсқа) енгізілуімен 8 нұсқасындағы көптеген қабырғаға қарсы қабырға мәселелері шешілді.

Қысқаша қайта қарау тарихы

VersionYearНегізгі мүмкіндіктерІске асыру тілі1.01989Бастапқы шығарылым MS DOS, дискеттік байланысTurbo Pascal2.01990Kermit арқылы көп сайтты қолдауTurbo Pascal4.2B1994LAN қолдауыTurbo Pascal6.11996Windows нұсқасыVisual Basic7.01998Windows, FreeBSD немесе Linux; Java RMI байланысыIBM VisualAge for Java8.02004Толық кодты қайта жазуEclipse Java9.02008Жалғыз сайтты әкімшілеу, қауіпсіздік пен конфигурацияны жақсарту, сокет негізіндегі байланысJava9.12009Автоматтандырылған бағалау, Run/Clar сүзгілеу, Сыртқы API, ICPC деректерін импорттау, Жергілікті LAFJava9.22012GUI сервері жоқ, қауіпсіздікті жақсарту, серверлерді әкімшілеуге бақылау, жаңа конфигурация опциялары, есеп беруJava9.32015YAML арқылы жарыс конфигурациясы, CLICS оқиғалар генераторы, жарыс профилін ауыстыру, веб-интерфейс, бірнеше тест жағдайларын және үлкен дерек файлдарын қолдау, GUI сервері жоқ, командалық жолмен жіберу, CLICS JSON кестелерін қолдайтын кіріктірілген веб-сервер, жаңа конфигурация опцияларыJava9.42016Жарыс конфигурациясын импорттауды жақсарту; жарысты автоматты түрде бастауды қолдау; кеңейтілген REST веб-қызметтеріJava9.52017CLICS кіріс және шығыс тексерушілерін қолдау; қосымша REST веб-қызметтері; API функционалдығын жақсарту; GUI емес кестелерJava9.62019Қорғалған серверлер үшін "Прокси" қолдауы; жарыс мәселелерінің "топтарын" қолдау; бағалау конвейерін жақсарту; ICPCToolsпен өзара әрекеттесуді жақсарту; YAML файлдарын пайдаланып жарыс конфигурациясын жақсарту; JSON оқиғалар ағынын шығаруды қолдауJava9.72021PC2 енді GitHub-та АШЫҚ КОДТЫ, толық құжаттамасы PC2 веб-бетінде және PC2 Wiki-де; пайдаланушы GUI параметрін беруді қолдау; ескі веб-серверді пайдалану қажеттілігін жоятын жаңа Web Team Interface; кесте мұздату операцияларын автоматты түрде басқару; ("көлеңке режимі" деп аталатын) қолдау; бағалау конвейерін және YAML конфигурациясын қолдауды одан әрі жақсарту; жарыс API-лары үшін ICPC "CLICS" спецификацияларын жақсартуJava9.82022Кестедегі команда атын форматтауды қолдау; "көлеңке режимі" қолдауын жақсарту; Web Team Interface жақсартулары; үлгілік және құпия дерек файлдарын біріктіру мүмкіндігі; қосымша CLICS үйлесімділігі үшін оқиғалар беруші веб-қызметтеріне түзетулер және жаңартулар; өнімділік пен GUI макеттерін жақсарту; қосымша әкімшілік өңдеу мүмкіндіктерін қолдау. Java

Басқа қолданыстар

PC² – Германияның Падерборн университетінің Параллельді Есептеу орталығының (http://www.upb.de/pc2) аббревиатурасы.