સ્પર્ધાત્મક પ્રોગ્રામિંગનો ધ્યેય, આપેલા કોયડાઓને ઉકેલી શકે તેવા કમ્પ્યુટર પ્રોગ્રામનો સોર્સ કોડ લખવાનો હોય છે. પ્રોગ્રામિંગ સ્પર્ધાઓમાં આવતાં કોયડાઓ માંથી મોટા ભાગના કોયડાઓ (સ્વભાવે) ગાણિતિક કે તાર્કિક હોય છે. તેવા કોયડાઓ લાક્ષણિક રીતે નીચેનામાંથી કોઈ એક વર્ગના હોય છે: ક્રમચય-સંચયનું વિજ્ઞાન, અંક સિદ્ધાંત, ગ્રાફ સિદ્ધાંત, ભૂમિતિ, લખાણ (સ્ટ્રીંગ)નું વિશ્લેષણ and માહિતી માળખાં . કેટલીક સ્પર્ધાઓમાં કૃત્રિમ બુદ્ધિમત્તાને લગતાં કોયડા પણ પ્રચલિત છે.

કોયડાના પ્રકાર (વર્ગ)થી નિરપેક્ષ રીતે, કોયડા ઉકેલવાની પ્રક્રિયા મુખ્યત્વે બે ભાગોમાં વિભાજીત કરી શકાય, ૧) એક કાર્યક્ષમ અલગોરિધમની રચના, અને ૨) તે અલગોરિધમને કોઈ એક અનુકુળ પ્રોગ્રામિંગ ભાષામાં અમલમાં મૂકવો. (જૂદી જૂદી સ્પર્ધાઓમાં જૂદી જૂદી પ્રોગ્રામિંગ ભાષાઓ માન્ય હોય છે.) આ બે સ્કીલ્સ પ્રોગ્રામિંગ સ્પર્ધાઓમાં સર્વસામાન્ય રીતે ચકાસાતી હોય છે.

મોટાભાગની સ્પર્ધાઓમાં યોજનાર કમ્પ્યુટર (સર્વર) (જેમને જજ કહે છે) દ્વારા સ્વયંસંચાલિત રીતે નિર્ણયો અપાય છે. સ્પર્ધક દ્વારા અપાયેલ દરેક ઉકેલને જજ વિવિધ (સામાન્ય રીતે ગુપ્ત) 'ચકાસણી કેસ' માટે ચકાસે છે. સામાન્ય રીતે, સ્પર્ધાઓમાં "બધા-અથવા-એકે નહી ગુણ-પ્રણાલિ" હોય છે, એટલે કે કોઈ ઉકેલ તો જ "સ્વીકાર" થાય છે જો તે જજ દ્વારા ચલાવતાં બધા જ test કેસમાં સાચો ઉત્તર આપે, અન્યથા તે ઉકેલ ખોટો ગણાય છે. પરંતુ, કેટલીક સ્પર્ધાઓમાં આંશિક ગુણ માન્ય હોય છે, જેના માટે પાસ કરેલ test કેસની સંખ્યા, પરિણામોની ગુણવત્તા, અથવા અન્ય કોઈ ખાસ માપદંડ હોય છે. કેટલીક સ્પર્ધાઓમાં સ્પર્ધકે માત્ર આપેલ ઈનપુટ માહિતીને અનુરૂપ આઉટ્પુટ માહિતી આપવાની હોય છે, જેમાં જજ માત્ર આઉટ્પુટ માહિતી જ ચકાસે છે.

સામાન્ય પરિચય
નોંધપાત્ર સ્પર્ધાઓ
ઓનલાઇન સ્પર્ધાઓ અને તાલીમ મેળવવાના સ્ત્રોતો
ઈતિહાસ