গ্রাফ তত্ত্বের ধারণাগুলি কম্পিউটার নেটওয়ার্ক অপারেটিং সিস্টেম এবং কম্পাইলারের গবেষণায় কাজে আসে
সেট তত্ত্বের ধারণাগুলি সফটওয়্যার প্রকৌশল এবং ডাটাবেজের গবেষণায় কাজে লাগে
বিচ্ছিন্ন গণিতে আলোচ্য বিষয়গুলির মধ্যে আছে অ্যালগোরিদম ও উপাত্ত সংগঠনসমূহ ব্যবহার করেই কম্পিউটার প্রোগ্রাম রচনা করা হয়
প্রথীতযশা কম্পিউটার বিজ্ঞানী নিকলাউস ভির্টের একটি সুবিখ্যাত বইয়ের নাম ছিল os es os
অ্যালগোরিদম o হল সুনির্দিষ্ট ও সসীম সংখ্যক ধাপবিশিষ্ট পদ্ধতি যা সসীম সময়ের মধ্যে ও সসীম পরিমাণ কম্পিউটার মেমরি ব্যবহার করে কোন সমস্যার সমাধান করে
অতিব্যবহৃত অ্যালগোরিদমগুলোর মধ্যে আছে কোন উপাত্ত সংগ্রহ অনুসন্ধান se উপাত্ত বিন্যস্তকরণ so মেট্রিক্স গুণন ও অন্যান্য সাংখ্যিক অপারেশনসমূহ ইত্যাদি
কোন উপাত্ত সংগঠন se হল তথ্যের একটি নির্দিষ্ট ধরনের সুবিন্যস্ত রূপ যা উপাত্তের বিভিন্ন মানের মধ্যে সম্পর্ক স্থাপন করে
লিস্ট অ্যারে রেকর্ড স্ট্যাক কিউ ট্রি ইত্যাদি কিছু বহুব্যবহৃত উপাত্ত সংগঠন
অ্যালগোরিদম কম্পিউটার বিজ্ঞানের একটি মৌলিক বিষয়
কোন্ অ্যালগোরিদম পচ্ছন্দ করা হয়েছে এবং সেটি কীভাবে বাস্তবায়ন করা হয়েছে এই দুইটি বিষয় বাস্তব বিশ্বে যেকোন সফটওয়্যার ব্যবস্থার কর্মদক্ষতা নির্ধারণ করে
ভাল অ্যালগোরিদমের ডিজাইন তাই সফটওয়্যারের সাফল্যের চাবিকাঠি
তাছাড়া অ্যালগোরিদম নিয়ে গবেষণা প্রোগ্রামিং ভাষা ঘরানা কিংবা কম্পিউটার হার্ডওয়্যার নির্বিশেষে বিভিন্ন সমস্যার অন্তর্নিহিত প্রকৃতি বুঝতে সহায়তা করে
কম্পিউটার বিজ্ঞানের অন্যতম একটি লক্ষ্য হল কোন একটি বিশেষ উদ্দেশ্যের জন্য কোন্ অ্যালগোরিদমটি সবচেয়ে শক্তিশালী ও উপযোগী কিংবা এরকম আদৌ কোন অ্যালগোরিদম আছে কি না তা বের করা
অ্যালগোরিদমের সব ধরনের আলোচনায় তাই দক্ষতার পরিমাপের ব্যাপারটি ঘুরে ফিরে আসে
অ্যালগোরিদম তত্ত্বের মধ্যে রয়েছে গণনাযোগ্যতার তত্ত্ব গণনামূলক জটিলতা তথ্যভিত্তিক জটিলতা সহবর্তমানতা তত্ত্ব সম্ভাবনাভিত্তিক অ্যালগোরিদম আরোহী ডাটাবেস তত্ত্ব ও সাম্পর্কিক ডাটাবেস তত্ত্ব দৈবকৃত অ্যালগোরিদম বিন্যাসমিলানো অ্যালগোরিদম গ্রাফ ও নেটওয়ার্ক অ্যালগোরিদম বীজগাণিতিক অ্যালগোরিদম গুচ্ছবিন্যাসতাত্ত্বিক সর্বোচ্চ অনুকূলীকরণ এবং তথ্যগুপ্তিবিদ্যা
অ্যালগোরিদম তত্ত্ব অন্যান্য যেসব জ্ঞানের শাখার ওপর ভিত্তি করে দাঁড়িয়ে আছে সেগুলো হল বিচ্ছিন্ন গণিত যার মধ্যে পড়ে গ্রাফ তত্ত্ব পৌনঃপুনিক ফাংশন পুনর্ঘটন সম্পর্কসমূহ গুচ্ছবিন্যাস তত্ত্ব ক্যালকুলাস আরোহী পদ্ধতি বিধেয় যুক্তিবিজ্ঞান সময়ভিত্তিক যুক্তিবিজ্ঞান অর্থবিজ্ঞান সম্ভাবনা ও পরিসংখ্যান
জটিল অ্যালগোরিদম এবং বাস্তব অভিজ্ঞতাভিত্তিক সমস্যাগুলির ক্ষেত্রে পরীক্ষানিরীক্ষার সহায়তা নেয়া হয়
অ্যালগোরিদমসমূহকে টেস্ট কেসের সুইট দিয়ে মূল্যায়ন করা হয়
বিভক্তিওবিজয় অ্যালগোরিদম লোভী অ্যালগোরিদম ডাইনামিক প্রোগ্রামিং সসীম অবস্থার যন্ত্র ইন্টারপ্রেটার স্ট্যাক যন্ত্র ইন্টারপ্রেটার অভিজ্ঞতাভিত্তিক অনুসন্ধান ও দৈবকৃত অ্যালগোরিদমের আচরণ নির্ধারণে পরীক্ষানিরীক্ষা ব্যাপক সাহায্য করেছে
এছাড়াও পরীক্ষার মাধ্যমে সমান্তরাল ও বিতরণকৃত অ্যালগোরিদমের কর্মদক্ষতা সম্পর্কে অন্তর্দৃষ্টি লাভ করা সম্ভব হয়েছে
অ্যালগোরিদম ও উপাত্ত সংগঠন এলাকায় আলোচিত বিষয়গুলির মধ্যে আছে অ্যালগোরিদম ও উপাত্ত সংগঠনগুলো কম্পিউটারে বাস্তবায়িত করার জন্য সফ্টওয়্যার প্রকৌশলীরা প্রোগ্রাম রচনা করেন
এই প্রোগ্রামগুলো লিখতে গিয়ে তাঁরা যেসব কৃত্রিম ভাষার সাহায্য নেন তাদেরকে প্রোগ্রামিং ভাষা বলা হয়
মানুষের মুখের স্বাভাবিক ভাষা দ্ব্যর্থবোধক এবং এ ভাষার পদসংগঠন ও শব্দার্থ বহুভাবে অনুধাবন করা যায় তাই এটি প্রোগ্রাম লেখার জন্য উপযুক্ত নয়
এর পরিবর্তে সরল ও দ্ব্যর্থহীন কৃত্রিম প্রোগ্রামিং ভাষার আশ্রয় নেয়া হয়
কম্পিউটার বিজ্ঞানীরা এমন প্রোগ্রামিং ভাষা উদ্ভাবনের চেষ্টা করেন যা দিয়ে সহজে প্রোগ্রাম লেখা যায় এবং প্রোগ্রামে ভুলের পরিমাণ কম হয়
প্রোগ্রামিং ভাষাগুলোকে যন্ত্রের ভাষায় ভাষান্তরিত করে নিতে হয় যাতে কম্পিউটার প্রোগ্রামের নির্দেশগুলো পালন করতে পারে
কম্পিউটার বিজ্ঞানীরা আরও ভাল ভাষান্তরকরণ অ্যালগোরিদম বের করার চেষ্টা করেন যাতে যন্ত্রের ভাষায় ভাষান্তরিত প্রোগ্রামগুলো আরও দক্ষভাবে সম্পাদন করা যায়
কম্পিউটার বিজ্ঞানের একেবারে আদি পর্যায়ে বাইনারী সংখ্যাভিত্তিক যান্ত্রিক ভাষায় e e কম্পিউটারের হার্ডওয়্যারকে নির্দেশ দেয়া হত
এরপর কাজের সুবিধার জন্য প্রথম যেসব প্রোগ্রামিং ভাষা তৈরি করা হয় তাদের নাম অ্যাসেম্বলি ভাষা
এগুলি যান্ত্রিক ভাষা থেকে খুব একটা বেশি পৃথক ছিল না
এর দশক থেকে ব্যবহারকারীরা আরও স্বাচ্ছন্দ্যদায়ী প্রোগ্রামিং ভাষা লেখা শুরু করেন
এদের মধ্যে ফোরট্রান ভাষাটি ছিল অন্যতম
ফোরট্রান প্রোগ্রামারদেরকে গাণিতিক অপারেশন ছাড়াও বীজগাণিতিক এক্সপ্রেশন লেখার সুযোগ দেয়
এর দশকে ফোরট্রানের একটি সরলীকৃত সংস্করণ বেসিক তৈরি করা হয় এবং এটি নতুনদের শেখার জন্য প্রথম প্রোগ্রামিং ভাষা হিসেবে স্কুলকলেজে ব্যাপক জনপ্রিয়তা লাভ করে
ফোরট্রান উদ্ভাবনের কাছাকাছি সময়ে আরেকটি ভাষা কোবোল তৈরি করা হয় যেটি সাধারণ ব্যবসায়িক রেকর্ড নথিপত্র ও অন্যান্য ব্যাবসায়িক প্রক্রিয়া দেখাশোনা করার জন্য ব্যবহার করা হয়
কোবোল ও ফোরট্রান এবং এদের উত্তরসূরী প্যাসকাল ও সি হল নির্দেশমূলক ভাষা ee e
অর্থাৎ এগুলোতে কম্পিউটারকে কতগুলি প্রত্যক্ষ নির্দেশ দেয়ার মাধ্যমে কাজ করানো হয় এটা যান্ত্রিক ভাষার সাথে অনেকটাই তুলনীয়
এই ধারার আরও দুটি ভাষা হল অ্যাডা ও অ্যালগল
এছাড়াও আরেক ধরনের ভাষা আছে যেগুলি ফাংশনভিত্তিক o অর্থাৎ প্রোগ্রামের ভিতরের অংশবিশেষ বা ফাংশন কল করে প্রোগ্রামিংএর লক্ষ্য পূরণ করা হয়
ফাংশনভিত্তিক ভাষার মধ্যে সবচেয়ে পরিচিত হচ্ছে লিস্প এমএল ও হ্যাস্কেলও ফাংশনভিত্তিক ভাষা
পরবর্তীকালে বস্তুসংশ্লিষ্ট e ee অব্জেক্টওরিয়েন্টেড ভাষা উদ্ভাবন করা হয় যেখানে উপাত্ত ও মেথড আধারে আবৃত করা হয় এবং এই আধারকে বলা হয় অবজেক্ট বা বস্তু
এই ধারায় একাধিক অবজেক্টের মধ্যে বার্তা আদানপ্রদান করে প্রোগ্রামিঙের লক্ষ্য পূরণ করা হয়
স্মলটক সি আইফেল ভিজুয়াল বেসিক জাভা ইত্যাদি বস্তুসংশ্লিষ্ট ভাষার উদাহরণ
এছাড়াও আছে উপাত্তপ্রবাহ o ডাটাফ্লো ভাষা যেমন সিসাল ভাল ইদ নুভো লজিক প্রোগ্রামিং ভাষা যেমন প্রোলগ স্ট্রিং প্রসেসিং ভাষা যেমন স্নোবল ও আইকন এবং সহবর্তমানতাভিত্তিক oese প্রোগ্রামিং ভাষা যেমন কনকারেন্ট প্যাসকাল অকাম এসআর মডুলা
প্রোগ্রামিং ভাষার তত্ত্বে আলোচিত বিষয়গুলির মধ্যে রয়েছে কম্পিউটার বিজ্ঞানের প্রাণকেন্দ্রে অবস্থিত কম্পিউটার নামের যন্ত্র
কম্পিউটার না থাকলে কম্পিউটার বিজ্ঞান গণিতের একটি তাত্ত্বিক শাখা হয়ে থাকত
কম্পিউটার বিজ্ঞানীদেরকে তাই কম্পিউটারের বিভিন্ন অংশ তাদের কাজ ও পারস্পরিক মিথস্ক্রিয়া সম্পর্কে ধারণা রাখতে হয়
কম্পিউটার স্থাপত্য সম্পর্কে ধারণা থাকলে কোন প্রোগ্রামের কাঠামো যাতে এটি একটি একটি বাস্তব মেশিনে দ্রুত নির্বাহ করা যায়
কোন কাজের জন্য কম্পিউটার নির্বাচনের ক্ষেত্রে সিপিইউ ক্লকের দ্রুতি মেমরির আকার ইত্যাদি ব্যাপার বুঝতেও কম্পিউটার স্থাপত্যের জ্ঞান কাজে আসে
কম্পিউটার স্থপতিরা নতুন নতুন কম্পিউটার ব্যবস্থা ডিজাইন ও বিশ্লেষণ করেন
তাঁরা কম্পিউটারের গতি সংরক্ষণ ক্ষমতা ও নির্ভরযোগ্যতা কীভাবে বাড়ানো যায় এবং খরচ ও শক্তির ব্যবহার কীভাবে কমানো যায় তা নিয়ে গবেষণা করেন
এ কাজে তাঁরা হার্ডওয়্যার ও সফটওয়্যার মডেলের সাহায্য নেন
অনেক ক্ষেত্রেই তাঁরা কম্পিউটার হার্ডওয়্যার প্রকৌশলীদের সাথে মিলে নতুন কম্পিউটার বানানোয় অংশ নেন কেননা তাদের স্থাপত্য মডেলগুলো অনেকাংশেই কম্পিউটারের বর্তনীবিন্যাসের ওপর নির্ভর করে
অনেক কম্পিউটার স্থপতি বিশেষায়িত প্রয়োগ যেমন ছবি প্রক্রিয়াকরণ সিগনাল প্রক্রিয়াকরণ ইত্যাদির জন্য কম্পিউটার ডিজাইন করেন যাতে বেশি কর্মক্ষমতা নিম্ন দাম কিংবা উভয়ই সম্ভব হয়
কম্পিউটার স্থাপত্যে আলোচিত বিষয়গুলির মধ্যে রয়েছে অপারেটিং সিস্টেম হল কম্পিউটারের সার্বিক পরিচালনায় নিয়োজিত বিশেষ প্রোগ্রামসমষ্টি বা সফটওয়্যার
অপারেটিং সিস্টেম ব্যবহারকারী ও কম্পিউটারের হার্ডওয়্যারের মধ্যকার যোগসূত্র ee প্রদান করে কম্পিউটারের স্মৃতিতে অন্যান্য অ্যাপ্লিকেশন প্রোগ্রাম স্থাপন করতে সাহায্য করে কম্পিউটার কীভাবে অ্যাপ্লিকেশনগুলি চালাবে তা দেখাশোনা করে কম্পিউটারের বিভিন্ন সম্পদ esoe যেমন ডিস্ক পরিসর s se ব্যবস্থাপনায় সাহায্য করে অননুমোদিত ব্যবহার থেকে কম্পিউটারকে রক্ষা করে এবং সংরক্ষিত উপাত্তের নিরাপত্তা নিশ্চিত করে
সাম্প্রতিক বছরগুলিতে অপারেটিং সিস্টেম ও তাদের সাথে সম্পর্কিত বিমূর্তায়নগুলি সাধারণ অ্যাপ্লিকেশন সফটওয়্যারের তুলনায় জটিলতর রূপ পেয়েছে
কম্পিউটার বিজ্ঞানীরা কীভাবে অপারেটিং ব্যবস্থা আরও সহজে ব্যবহার করা যায় সংবেদনশীল উপাত্তের ব্যবহারাধিকার প্রতিরোধ করে কীভাবে অন্যান্য উপাত্ত অংশীদারযোগ্য করা যায় কীভাবে কম্পিউটারের স্মৃতি ও সময়ের আরও দক্ষ ব্যবহার করা যায় তার চেষ্টা করেন
একাধিক কম্পিউটার সংযুক্ত হলে একটি কম্পিউটার নেটওয়ার্ক গঠিত হয়
নেটওয়ার্কের কম্পিউটারগুলি কীভাবে একে অপরের সাথে যোগাযোগ স্থাপন করে ও তথ্যের আদানপ্রদান সম্পাদন করে তার বিভিন্ন প্রোটোকল নিয়ে কম্পিউটার বিজ্ঞানীরা গবেষণা করেন
এ ব্যাপারে তাঁরা টেলিযোগাযোগ তথ্য প্রযুক্তি ও হার্ডওয়্যার প্রকৌশল ক্ষেত্রগুলি থেকে অনেক তাত্ত্বিক ও ব্যবহারিক সাহায্য নেন
ল্যান ওয়্যান তারহীন ওয়্যারলেস নেটওয়ার্ক এই তিন ধরনের নেটওয়ার্কই বেশি দেখা যায়
ইন্টারনেট বিশ্বের সর্ববৃহৎ কম্পিউটার নেটওয়ার্ক