क्रमादेश या कम्प्यूटर प्रोग्राम  किसी विशेष कार्य को संगणक द्वारा कराने अथवा करने के लिये संगणक को समझ आने वाली भाषा में दिये गए निर्देशो का समूह होता है। संगणक को कोई भी काम करने के लिये प्रोग्राम या क्रमादेश की आवश्यकता होती है।

क्रमादेशों को प्रोग्रामिंग भाषा मे लिखा जाता है। इन भाषाओँ को अक्सर इंसानों के समझने योग्य बनाया जाता है। अपने मूल रूप मे, ज़्यादतर प्रोग्रामिंग भाषाओं मे लिखे गए प्रोग्रामों को, संगणक/कंप्यूटर समझ नही सकते, और उनमे लिखे गए निर्देशों का पलन नही कर सकते। इस काम के लिये "कंपाइलर" और "इंटर्प्रेटर" सॉफ्टवेयर का प्रयोग किया जाता है। "कंपाइलर" और "इंटर्प्रेटर" खुद प्रोग्राम होते हैं जो प्रोग्रामिंग भाषा मे लिखे गए प्रोग्राम, जो इंसानों के समझने योग्य है, को कंप्यूटर द्वारा चलाने मे मदद करते हैं।

प्रोग्रामिंग  भाषा मे लिखे गए प्रोग्राम का उधाहरण तस्वीर मे दिया गया है। इस उदाहरण मे प्रोग्राम, अंगरेज़ी  मे लिखा गया है, जैसे कि ज्यादातर प्रोग्राम लिखे जाते है। हालांकी अंगरेज़ी का उपयोग होता है, लेकिन प्रोग्राम लिखने के लिये अधिक अंगरॆज़ी की आवश्यकता नही है।

क्रमानुदेशन के विभिन्न चरण 
किसी भी प्रोग्राम की क्रमानुदेशन करने के लिये सर्वप्रथम प्रोग्राम के समस्त निर्दिष्टीकरण को भली-भाँति समझ लिया जाता है। प्रोग्राम में प्रयोग की गई सभी शर्तो का अनुपालन सही प्रकार से हो रहा है या नही, यह भी जांच लिया जाता है। अब प्रोग्राम के सभी निर्दिष्टीकरण को जांचने-समझने के उपरांत प्रोग्राम के शुरू से वांछित परिणाम प्राप्त होने तक के सभी निर्देशो को विधिवत क्रमबध्द कर लिया जाता है अर्थात प्रोग्रामो की डिजाइनिंग कर ली जाती है। प्रोग्राम की डिजाइन को भली-भांति जांचकर, प्रोग्राम की कोडिंग की जाती है एवं प्रोग्राम को कम्पाईल किया जाता है। प्रोग्राम को टेस्ट डाटा इनपुट करके प्रोग्राम की जांच की जाती है कि वास्तव में सही परिणाम प्राप्त हो रहा है या नही। यदि परिणाम सही नहीं होते हैं तो इसका अर्थ है कि प्रोग्राम के किसी निर्देश का क्रम गलत है अथवा निर्देश किसी स्थान पर गलत दिया गया है। यदि परिणाम सही प्राप्त होता है तो प्रोग्राम में दिये गये निर्देशो के क्रम को एकबध्द कर लिया जाता है एवं निर्देशो के इस क्रम को संगणक मे स्थापित कर दिया जाता है। इस प्रकार क्रमानुदेशन की सम्पूर्ण प्रक्रिया सम्पन्न होती है।

प्रोग्राम के लक्षण 
किसी भी उच्च कोटि के प्रोग्राम में निम्नांकित लक्षण वांछनीय होते हैं-
 शुद्धता-कोई भी प्रोग्राम अपने उद्देश्य को पूर्ण करता हुआ होना चाहिए। प्रोग्राम में वांछित परिणाम को प्राप्त करने की प्रक्रिया एवं निर्देश पूर्ण रूप से सत्य एवं दोष रहित होने चाहिए, अर्थात यदि किसी इनपुट से गलत परिणाम प्राप्त होता है तो प्रोग्राम पर कार्य करने वाला उपयोक्ता निश्चय ही यह जान ले कि उससे डाटा इनपुट करने में ही कोई गलती हुई है क्योंकि सही इनपुट से सही परिणाम अवश्य प्राप्त होता है।
 विश्वसनीयता-प्रोग्राम की विश्वसनीयता से तात्पर्य है कि प्रयोगकर्ता इस पर कार्य करते समय यदि कोई त्रुटि करता है तो उसे इस गलती से संबंधित स्पष्ट त्रुटि संदेश प्राप्त होना चाहिये ताकि वह उस त्रुटि को ठीक करके अपना कार्य सुचारू रूप से कर सकें।
 सक्षमता-प्रोग्राम विभिन्न स्त्रोतो से प्राप्त डाटा के प्रबन्धन में सक्षम होना चाहिये।
 प्रयोग करने में सुगम -प्रोग्राम में दिये गये निर्देश इस प्रकार व्यवस्थित होने चाहिये कि प्रयोगकर्ता को इस पर कार्य करने में समस्याओ का सामना न करना पडे। प्रोग्राम को प्रयोग करने में समस्त संभावित समस्याओ को हल करके कार्य को आगे बढ़ाने के लिये सहायता प्रयोगकर्ता को प्रोग्राम में ही उपलब्ध होनी चाहिये।
 पठनीयता-प्रोग्राम की पठनीयता से तात्पर्य है कि प्रयोगकर्ता को प्रोग्राम पर कार्य करते समय विभिन्न परिवर्तनांको के लिये स्पष्ट सूचनायें प्राप्त हो;अर्थात यदि प्रोग्राम में किसी स्थान पर name इनपुट करना है तो प्रोग्राम में उसका परिवर्तनांक name अथबा इससे मिलता- जुलता होना चाहिये ताकि प्रयोगकर्ता यह समझ सके कि उसे यहां पर name इनपुट करना है।

संगणक क्रमानुदेशन किस प्रकार की जाती है? 
संगणक के कार्य करने की प्रक्रिया अत्यंत जटिल होती है। संगणक की अपनी स्मृति तो होती है लेकिन बुद्धि नहीं होती। संगणक मात्र वही कार्य करता है, जिसका कि उसे निर्देश दिया जाता है;अर्थात संगणक को कार्य की बुद्धि क्रमबद्ध निर्देशो अथवा प्रोग्राम द्वारा दी जाती है। संगणक मे प्रोग्राम कुंजीपटल पर टाईप करके फीड किया जाता है, प्रोग्राम में संगणक को क्या क्या, किस प्रक्रार करना है, यह स्पष्ट एवं क्रमबद्ध रूप में लिखा जाता है।
कल्पना कीजिये कि किसी व्यक्ति को दो कप चाय बनाने का कार्य दिया गया। अब हमे संगणक को चाय बनाने से सम्बंधित सभी निर्देश निश्चित क्रम में देने होंगे। यदि निर्देश मौखिक रूप से देने हो तो ये निम्नानुसार होंगे:-
१.रसोई घर में जाएं।
२.एक कप लें।
३.पानी की टोटी खोलें।
४.कप में पानी भरकर टोटीं को बन्द कर दें।
५.कप को स्लेब पर रख दें।
६.चाय का भगोना लें।
७.स्लैब पर रखे कप का पानी चाय के भगोने में उलट दे।
८.चाय का भगोना गैस बर्नर पर रख दे।
९.गैस लाईटर जलाये।
१०.एक हाथ से गैस की नॉब को ऑन करें तथा साथ ही लाईटर भी जलाऎ।
११ यदि गैस नहीं जलती है तो नॉब को ऑफ करे और अब क्रमांक ९ वाली क्रिया को दोहराये।
१२.यदि गैस जल जाती है तो चाय के भगोने के पानी को तब तक गरम होने दे जब तक कि वह उबलने न लगे।
१३. पानी गरम होने की अवधि में चाय व चीनी का डिब्बा जिन पर क्रमश: चाय और चीनी लिखा है; और एक चम्मच अपने पास रख लें।
१४. पानी के उबलने पर चाय का डिब्बा खोलकर आधा चम्मच चाय और उसके बाद चीनी का डिब्बा खोलकर एक चम्मच चीनी उसमे डाल दे।
१५.चाय व चीनी के डिब्बो को बन्द करके जहां से उठाये थे वही रख दे।
१६.अब दूध के भगोने में से एक कप दूध ले लें।
१७.अब पानी के पुनः उबलने पर उसमे कप का दूध डाले।
१८.इस मिश्रण के उबलने पर गैस की नॉब को ऑफ कर दे।
१९.एक ट्रे ले।
२०.इस ट्रे में दो प्लेटे अलग अलग रखिये।
२१.ट्रे में रखी गयी प्लेटो में एक एक कप रखिये।
२२.अब चाय छन्नी व संडासी ले।
२३.संडासी से चाय के भगोने को पकडकर छननी एक कप के ऊपर रखकर चाय छानिए और तब तक छानिए जब तक की कप ८०% न भर जाये।
२४.क्रमांक २३ वाली क्रिया को दूसरे कप के लिये दोहराये।
२५.दोनो कपो में चाय भर जाने के पश्चात छननी व चाय के भगोने को सिंक में रख दिजिए। 
आपने देखा कि चाय बनाने के लिये स्पष्ट एवं एक निश्च्चित क्रम में निर्देश दिये गए। ये निर्देश किसी ऎसे व्यक्ति से भी चाय बनवाने के लिये पर्याप्त है जिसने कभी चाय न बनाई हो।
इसी प्रकार संगणक से कोई कार्य कराने के लिये उसे स्पष्ट एवं निश्चित क्रम में निर्देश दिये जाते हैं;और यही प्रक्रिया संगणक क्रमानुदेशन है।

क्रमानुदेशन मे ध्यान रखने योग्य बाते 

१.किसी कार्य विशेष के लिये प्रोग्राम कई प्रकार से तैयार किया जा सकता है।
२.प्रोग्राम तैयार करने हेतु विभिन्न निर्देश के लिये विशेष शब्दो का प्रयोग किया जाता है। ये विशेष शब्द कमांड कहलाते हैं।
३.प्रोग्राम में निर्देश उसी क्रम में लिखे जाते हैं, जिस क्रम से वह कार्य सम्पन्न होता है।
४.प्रोग्राम संगणक की समझ आने वाली भाषाओ अर्थात programming language अथवा उन तन्त्रांशों, जिनमे कि क्रमानुदेशन करने की सुविधा है, में लिखा जाता है।

संगणक अपनी भाषा किस प्रकार समझता है 
संगणक केवल मशीनी भाषा समझता है। विभिन्न क्रमानुदेशन भाषा में लिखे गए प्रोग्राम में निर्देशो को Assembler, compiler अथवा Interpreter की सहायता से मशीनी भाषा में परिवर्तित करके संगणक के माईकोप्रोसेसर में भेजा जाता है। तभी संगणक इन निर्देशो का पालन कर उपयुक्त परिणाम प्रस्तुत करता है। मशीनी भाषा मात्र बायनरी अंको अर्थात 0 से १ के समूहो से बनी होती है जिसे संगणक का माईकोप्रोसेसर सीधे समझ सकता है।
जब हम संगणक को कोइ भी निर्देश किसी इनपुट के माध्यम से देते हैं तो संगणक स्वतः इन निर्देशो को ASCII Code में परिवर्तित कर सकता है। निर्देश देने के लिये हमे सामान्यत: अक्षरो, संख्याओ एवं संकेतो के "कीज" को की-बोर्ड पर दबाना होता है और संगणक स्वतः ही इन्हे अपनी भाषा में बदल लेता है। 
example-TYPE
मशीनी भाषा में -T(01000101) Y(10010101) P(00000101)E(01010100)

संगणक को निर्देश किस प्रकार देते हैं 
संगणक को निर्देश प्रोग्राम तरीके से, अत्यन्त स्पष्ट भाषा में एवं विस्तार से देना अत्यन्त आवश्यक होता है। संगणक को कार्य विशेष करने के लिये एक प्रोग्राम बनाकर देना होता है। दिया गया प्रोग्राम जितना स्पष्ट, विस्तृत और सटीक होगा, संगणक उतने ही सुचारू रूप से कार्य करेगा, उतनी ही कम गलतिया करेगा और उतने ही सही उत्तर देगा। यदि प्रोग्राम अस्पष्ट होगा और उसमे समुचित विवरण एवं स्पष्ट निर्देश नहीं होंगे तो यह संभव है कि संगणक बिना परिणाम निकाले ही गणना करता रहे अथवा उससे प्राप्त परिणाम अस्पष्ट और निरर्थक हो। अतः प्रोग्राम अत्यन्त सावधानी और एकाग्रचित होकर तैयार करना चाहिये। संगणक की सम्पूर्ण कार्यक्षमता योजनेवालाअर्थात प्रोग्राम बनाने वाले व्यक्ति की क्षमता पर निर्भर होती है।

संगणक मे अपनी कोइ बुध्दि नहीं होती। यह एक मस्तिष्क रहित एवं अत्यन्त आज्ञाकारी मशीन है। यदि उसे कोइ निर्देश नहीं दिया जाता अथवा अस्पष्ट निर्देश दिया जाता है तब भी वह कोइ आपत्ति नहीं करता और दिए गए निर्देशानुसार ही कार्य करता है। अतः प्रोग्राम बनाते समय अत्यन्त सावधानी बरतनी पडती है।

संगणक पर प्रोग्राम बनाते समय निम्न बातो को ध्यान में रखना आवध्यक है:-

१.समस्या का सावधानीपूर्वक अध्ययन करके निर्देशो को निश्चित क्रम में क्रमबध्द करना।
२.निर्देश इस प्रकार लिखना कि उनका अक्षरशः पालन करने पर समस्या का हल निकल सके।
३.प्रत्येक निर्देश एक निश्चित कार्य करने के लिये हो।

प्रोग्राम में दिये जाने वाले निर्देशो को एक प्रवाह तालिका के रूप में प्रस्तुत करना उचित होता है। इसमे यह स्पष्ट होना चाहिये कि संगणक को कब और क्या करना है एवं उसे विभिन्न क्रियाये किस रूप में करनी है। प्रोग्राम को ऊपर से नीचे की ओर प्रवाह चित्र के रूप में दर्शाया जाता है एवं जहां तर्क आदि करना होता है वहां यह दो भागो में विभक्त कर दिया जाता है।

प्रोग्राम में निर्देशो को संगणक की समझ में आने वाली भाषा में लिखना आवश्यक होता है; ताकि संगणक प्रदत्त निर्देशो को समझ सके और उनके अनुसार कार्य करके वांछित परिणाम प्रस्तुत कर सके। एक बार प्रोग्राम को संगणक भाषा में लिखने के बाद इसे संगणक की स्मृति में अर्थात फ्लॉपी, चुम्बकीय फीते, छिद्रित कार्ड आदि निवेश युक्तियो पर अंकित कर दिया जाता है। साथ ही यह समस्या को हल करने के लिये आवश्यक डाटा भी संगणक की इनपुट यूनिट को प्रदान किया जाता है। अब संगणक उस प्रोग्राम के अनुसार कार्य करके इनपुट डाटा का विश्लेषण प्रदर्शित करके उचित परिणाम प्रस्तुत करता है। यदि प्रोग्राम में प्राप्त परिणामो को मॉनीटर स्क्रीन पर प्रदर्शित करने अथवा फ्लॉपी, हार्डडिस्क या चुम्बकीय फीते पर अंकित करने के निर्देश दिये गए हैं तब संगणक प्राप्त परिणामो को वहीं अंकित कर देता है।

शब्दावली 
प्रोग्राम अनुवादक
कम्पाइल

कंप्यूटर
क्रमानुदेशन भाषा
संगणक अभियान्त्रिकी