প্রোগ্রামারদের জন্য তাত্ত্বিক কম্পিউটার বিজ্ঞান স্ব-অধ্যয়নের সংস্থানসমূহ


14

আমি বেশ দক্ষ সফটওয়্যার ইঞ্জিনিয়ার, তবে আমি বেশি তত্ত্ব জানি না। আমি আরও তত্ত্ব শিখতে চাই। বিশেষভাবে যে বিষয়গুলিতে আমি আগ্রহী সেগুলি হ'ল: গণনা সংক্রান্ত জটিলতা, আনুষ্ঠানিক ভাষা এবং টাইপ তত্ত্ব। তবে আমি কীভাবে এই ক্ষেত্রগুলি সম্পর্কে শিখতে শুরু করব তা নিয়ে আমি ক্ষতি করছি।

যে কেউ স্ব-অধ্যয়নের মাধ্যমে আরও তত্ত্ব শিখতে চায় তাকে আপনি কী সংস্থানগুলি সুপারিশ করবেন? সফ্টওয়্যার ইঞ্জিনিয়ারদের জন্য কি কোনও তাত্ত্বিক কম্পিউটার বিজ্ঞানের স্ব-অধ্যয়নের গাইড রয়েছে?


3
এটি আপনি কী সম্পর্কে জানতে চান তা নির্ভর করে। অরোরা-বারাক গণনা সংক্রান্ত জটিলতার তত্ত্বের একটি পুঙ্খানুপুঙ্খ পরিচিতি দেয় (এবং অনলাইনে নিখরচায় উপলব্ধ)। সুতরাং এটি শুরু করার জন্য একটি ভাল জায়গা।
থমাস মনিকা

4
আপনি কি কলেজ / বিশ্ববিদ্যালয়ে ডেটা স্ট্রাকচার, অ্যালগরিদম ইত্যাদির মতো তত্ত্বের কোর্স গ্রহণ করেছেন? যদি আপনি সাধারণত প্রয়োজনীয় স্নাতক তত্ত্বের কোর্স না নিয়ে থাকেন তবে সেই কোর্সগুলির পাঠ্যপুস্তকগুলি একটি ভাল সূচনার পয়েন্ট হবে। পরে আপনি উইকিপিডিয়া নিবন্ধ কটাক্ষপাত আছে করতে পারে, আমাদের বই তালিকা এবং ভিডিওগুলির তালিকা , Coursera / Udacity / EdX অনলাইন কোর্স / ... Coursera বেশ সুন্দর তত্ত্ব কোর্স রয়েছে।
কাভেহ

আপনি কি কলেজে পড়াশোনা করেছেন?
ওমর শেহাব

আপনি কোন ধরণের ভাষায় প্রোগ্রাম করেন? তাত্ত্বিক সিএসের বেশিরভাগ কিছু কংক্রিটের সাথে তাল মিলিয়ে শেখা যায়। উদাহরণস্বরূপ, আপনি যদি আনুষ্ঠানিক ভাষা সম্পর্কে আরও জানতে চান, নিয়মিত ভাষা / এক্সপ্রেশন (যেমন রেজিএক্সএক্স এর) সংকলকগুলির জন্য শিখতে শুরু করার জন্য একটি ভাল জায়গা। টাইপ থিওরির জন্য, আপনি স্ট্যাটিক্যালি টাইপ করা ভাষা যেমন হ্যাশেল, এফ # বা এমএল দিয়ে খেলতে চাইতে পারেন।
বেবি ড্রাগন

চেষ্টা নিউ টুরিং অমনিবাস একটি বিস্তৃত / প্রবেশযোগ্য ইন্ট্রো সুত্র / জরিপ / প্রস্থচ্ছেদ হিসাবে Dewdney দ্বারা।
টিসিএসকে

উত্তর:


7

এটি বেশ কয়েকটি পৃথক অঞ্চল সহ একটি বিস্তৃত ক্ষেত্র।

কম্পিউটারগুলি কী তা সম্পর্কে আমি কয়েকটি মৌলিক ধারণা দিয়ে শুরু করব: হপকক্রফ্ট এবং ওলম্যান, "অটোমেটা থিওরি, ভাষা এবং গণনার পরিচয়"।

আমি বিশেষত যে কারণে সুপারিশ করছি তার কারণ প্রমাণের উপর তাদের জোর। তারা আপনাকে কঠোরভাবে চিন্তা করার পথ দেখায়। প্রোগ্রাম লেখার এবং বৈজ্ঞানিক হওয়ার মধ্যে পার্থক্য।


1
ধন্যবাদ! আমি জানি না এটি কিছু পরিবর্তন করে কিনা, তবে প্রুফ ভিত্তিক গণিতে আমার আসলে কিছু পটভূমি আছে (আমার সম্ভবত প্রশ্নটিতে এটি উল্লেখ করা উচিত) ছিল। আমি প্রমাণ-ভিত্তিক বাস্তব বিশ্লেষণ, পয়েন্ট-সেট টপোলজি এবং বিমূর্ত বীজগণিত করেছি done
হেনরি এইচ।

তারপরে আপনি খুব তাড়াতাড়ি এটির মাধ্যমে কাজ করতে সক্ষম হবেন :)
কেট এফ

তার একটি পার্থক্য কিন্তু পার্থক্য।
সিএসে আরও

আমি মনে করি না যে কঠোরতার প্রয়োজনীয়তা প্রোগ্রামিং এবং গণিতের মধ্যে পার্থক্য। প্রোগ্রামিং এবং প্রমাণিত উপপাদাগুলি imho খুব সম্পর্কিত কাজ (সিএফ। কারি-হাওয়ার্ড আইসোমর্ফিজম), এবং কোনও অ-গাণিতিক কার্যক্রমে প্রোগ্রামিংয়ের চেয়ে বেশি কঠোরতার প্রয়োজন হয় না। সংকলকরা প্রমাণগুলি পড়ে এমন মানুষের চেয়ে ত্রুটিগুলি সম্পর্কে খুব কম ক্ষমা করে।
জান জোহানসেন

2
@ জাঞ্জোহানসেন আমি বেশ দ্বিমত পোষণ করেছেন - উদাহরণস্বরূপ, সি এর জন্য অপরিজ্ঞাত আচরণ দেখুন
কেট এফ

9

টাইপ তত্ত্ব সম্পর্কে জানার বিভিন্ন উপায় রয়েছে। একজন ওয়ার্কিং প্রোগ্রামারের জন্য, বি পিয়ার্সের টাইপ এবং প্রোগ্রামিং ল্যাঙ্গুয়েজ একটি ভাল শুরু। আর। হার্পার দ্বারা প্রোগ্রামিং ভাষার জন্য ব্যবহারিক ভিত্তিগুলিও ভাল হতে পারে। যদি আপনি অপারেশনাল শব্দার্থবিজ্ঞানের বিষয়ে কিছুটা সহজ পটভূমি পড়তে চান তবে আমি জি উইনসকেলকে, প্রোগ্রামিং ল্যাঙ্গুয়েজের আনুষ্ঠানিক শব্দার্থসমূহ: একটি পরিচিতির প্রস্তাব দিই । টি। নিপকো, জি ক্লেইন, কংক্রিট শব্দার্থবিজ্ঞান সহউইসকেলের বইয়ের একটি রূপ ইসাবেল / এইচএল ইন্টারেক্টিভ প্রুফ সহকারীটির জন্য আনুষ্ঠানিকভাবে অনুমোদন করা হয়েছে। আমার সন্দেহ হয় ঠিক এই (বা যে কোনও) বই থেকে প্রবাদটি ধরা খুব কঠিন, আপনি কাছের বিশেষজ্ঞের কাছে প্রশ্ন জিজ্ঞাসা করতে চান। আপনি যদি টাইপ-থিওরির আরও গাণিতিক পদ্ধতির চান, আপনি জেআর হিন্ডলি, জেপি সেলডিন, ল্যাম্বদা-ক্যালকুলাস এবং সংযুক্তকারীগুলির : একটি পরিচিতি , বা এইচ । বারেন্ড্রেগস , টাইপের সাথে ল্যাম্বডা ক্যালকুলির দিকে নজর দিতে পারেন । যদিও আমি বারেন্ড্রেগেট থেকে শুরু করার পরামর্শ দেব না।

আপনি যদি কোনও একক সুপারিশ চান তবে আমি বলব পঞ্চম পার্ট (উচ্চ-আদেশ সিস্টেমগুলি) বাদে সমস্ত পিয়ার্স পড়ুন এবং বইটিতে আলোচিত খেলনাগুলির ভাষা প্রয়োগ করুন implement আপনি টাইপ থিওরির একটি শক্তিশালী গ্রাউন্ডিং এবং সম্ভবত একটি ভাল প্রোগ্রামারও শেষ করবেন।


2

আমি মার্টিন ডেভিস, রন সিগাল এবং ইলাইন ওয়েইউকারের দ্বারা কমপ্যুটেবিলিটি , জটিলতা এবং ভাষাগুলির প্রস্তাব দিই।


এটি পুরানো-স্কুল টিসিএসের জন্য একটি সুন্দর বই। ডোমেন তাত্ত্বিক শব্দার্থবিজ্ঞানের অংশ ব্যতীত, যা এড়িয়ে যেতে পারে।
মার্টিন বার্গার

1

আমি থিওরি এবং অ্যালগরিদমের বড় অনুরাগী। আমার একবার ইন্ডিয়ান ইনস্টিটিউট অফ টেকনোলজি, মাদ্রাজে (আইআইটি-এম) ভারতবর্ষের তাত্ত্বিক কম্পিউটার বিজ্ঞান দেখার সুযোগ হয়েছিল। আইআইটি-এম-তে আমি প্রচুর তাত্ত্বিকদের সম্পর্কে জানতে পেরেছি। আমি যখন সেখানে গিয়েছিলাম তখন থিওরিটি কী ছিল সে সম্পর্কে আমার কোনও ধারণা ছিল না তবে আজ আমি এটির সাথে সম্পূর্ণ ভালবাসা।

পয়েন্টারটির জন্য @ কেট এফকে ধন্যবাদ, হ্যাঁ হপকক্রফ্ট এবং ওলম্যান শুরু করার জন্য একটি দুর্দান্ত জায়গা।

তবে এখানে আমি কীভাবে শুরু করেছি,

  1. কর্পেন দ্বারা অ্যালগরিদমের ভূমিকা পড়ুন <<বিআর> এটি শুরু করার জন্য একটি দুর্দান্ত জায়গা। আপনি যখন অধ্যয়ন করেন তখন প্রতিটি প্রমাণ যথাসম্ভব দৈর্ঘ্যে বোঝার চেষ্টা করুন। আপনি যদি প্রমাণটি ভালভাবে বুঝতে পারেন তবে আপনার পছন্দের যেকোন ভাষায় একই যুক্তিকে কোড করার চেষ্টা করুন। (এটি কিছুটা বেশি সময় নেয় তবে এটি চেষ্টা করে দেখুন)


  2. থিয়োরিতে শীর্ষস্থানীয় সম্মেলনগুলির মতো অনুসরণ করুন যেমন FOCS
    সোডা
    স্টক
    ইসি (বৈদ্যুতিন বাণিজ্য) - অ্যালগরিদমিক গেম থিওরি
    সিওএলটি (শেখার তত্ত্বের সম্মেলন) - শেখার তত্ত্ব
    CRYPTO - ক্রিপ্টোগ্রাফি
    এসওসিজি (সিম্পোজিয়াম অন কম্পিউটেশনাল জ্যামিতি) - কম্পিউটেশনাল জ্যামিতি
    সিসিসি (সম্মেলন গণনামূলক জটিলতা) - জটিলতা তত্ত্ব

আপনি যদি না পড়ার বেশি চেষ্টা করেও বুঝতে পারেন এবং যথাসম্ভব ভাবেন । আপনাকে যথাসম্ভব প্রমান করতে হবে ..

  1. আপনি বিশেষ করে কম্পিউটেশনাল জটিলতার কথা ভাবছেন কিনা তা দেখার জন্য এটি একটি আশ্চর্যজনক জায়গা ( এটি স্ট্যানফোর্ডের )।
  2. অধ্যাপক সঞ্জীব অরোরা, বোয়াজ বারাক, জেলানী নেলসন, মধু সুদান অনুসরণ করুন
  3. এখানে কম্পিউটারের জটিলতার ক্ষেত্রে সংশ্লেষিত তথ্যের একটি সেট রয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.