ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

"பல்கலைக்கழகத்திற்குச் செல்வதற்கான காரணங்களில் ஒன்று, எளிய தொழிற்பயிற்சியைத் தாண்டி, அதற்குப் பதிலாக ஆழ்ந்த கருத்துக்களைப் புரிந்துகொள்வது."

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

இந்தக் கேள்வியைக் கொஞ்சம் யோசிப்போம். பல ஆண்டுகளுக்கு முன்பு, கணினி அறிவியல் துறைகள் பல பல்கலைக் கழகங்களில் விரிவுரை வழங்க என்னை அழைத்தன. ஏறக்குறைய தற்செயலாக, எனது முதல் இளங்கலைப் பட்டதாரிகள், பட்டதாரி மாணவர்கள் மற்றும் பேராசிரியர்களிடம் "கணினி அறிவியல்" பற்றிய வரையறையைப் பற்றிக் கேட்டேன். எல்லோரும் ஒரு பொறியியல் வரையறையை மட்டுமே கொடுக்க முடியும். ஒவ்வொரு புதிய இடத்திலும் இதைச் செய்தேன், எல்லா இடங்களிலும் ஒரே மாதிரியான முடிவுகள் இருந்தன.

மற்றொரு கேள்வி: "டக்ளஸ் ஏங்கல்பார்ட் யார்?" பலர், "இது ஒரு கணினி மவுஸுடன் தொடர்புடையதல்லவா?" (இது எனக்கு மிகவும் ஏமாற்றமாக இருந்தது, ஏனெனில் எனது விஞ்ஞான சமூகம் இந்த கேள்விக்கான பதிலை இரண்டு அல்லது மூன்று மவுஸ் கிளிக்குகளில் சாத்தியமாக்கும் மற்றும் எங்கெல்பார்ட்டுக்கு கணினி மவுஸுக்கும் உண்மையில் தொடர்பு இருப்பதாக நம்புவதற்கு நிறைய முயற்சிகள் எடுத்தது) .

பிரச்சினையின் ஒரு பகுதி ஆர்வமின்மை, ஓரளவு கற்றலுடன் தொடர்பில்லாத தனிப்பட்ட இலக்குகளின் குறுகிய தன்மை, ஓரளவு இந்த அறிவியல் என்ன என்பதைப் பற்றிய புரிதல் இல்லாமை மற்றும் பல.

நான் பல ஆண்டுகளாக கலிபோர்னியா பல்கலைக்கழகத்தில் கணினி அறிவியல் துறையில் பகுதி நேரமாக வேலை செய்து வருகிறேன் (நான் அடிப்படையில் ஒரு பேராசிரியர், ஆனால் நான் துறை கூட்டங்களுக்கு செல்ல வேண்டியதில்லை). அவ்வப்போது நான் வகுப்புகள் கற்பிக்கிறேன், சில நேரங்களில் முதல் ஆண்டு மாணவர்களுக்கு. பல ஆண்டுகளாக, கணினி அறிவியலில் ஏற்கனவே குறைந்த அளவிலான ஆர்வம் கணிசமாகக் குறைந்துள்ளது (ஆனால் பிரபலத்தின் அளவும் அதிகரித்துள்ளது, ஏனெனில் கம்ப்யூட்டிங் ஒரு நல்ல ஊதியம் பெறும் வேலைக்கு ஒரு பாதையாகக் கருதப்படுகிறது, நீங்கள் குறியீடு செய்து உயர்மட்ட சான்றிதழைப் பெறலாம். 10 பள்ளி). அதன்படி, கலிபோர்னியா பல்கலைக்கழகத்தில் முதல் மொழி C++ என்று ஒரு மாணவன் கூட இதுவரை புகார் செய்யவில்லை!

"கணினி" மற்றும் "அறிவியல்" ஆகிய இரண்டு அர்த்தங்களும் பலவீனமான, பாரிய கருத்துக்களால் அழிக்கப்பட்டு ஒரு புதிய சொல்லை உருவாக்குவதற்கான ஒரு சூழ்நிலையை எதிர்கொள்கிறோம் என்று எனக்குத் தோன்றுகிறது - ஜீன்ஸ் மீது ஒரு வகையான லேபிள் - இது நன்றாகத் தெரிகிறது. மிகவும் காலியாக உள்ளது. இதேபோல் அழிக்கப்பட்ட தொடர்புடைய சொல் "சாப்ட்வேர் இன்ஜினியரிங்" ஆகும், இது மீண்டும், "புரோகிராமிங்" மற்றும் "இன்ஜினீயரிங்" போன்ற மிகவும் புத்திசாலித்தனமான யோசனைகளைப் பயன்படுத்தவில்லை, ஆனால் அவற்றை ஒன்றிணைத்தது (இது அறுபதுகளில் வேண்டுமென்றே செய்யப்பட்டது. உருவாக்கப்பட்ட சொல்).

உண்மையில் பல்கலைக் கழகத்திற்குச் செல்வதற்கான காரணங்களில் ஒன்று, எளிய தொழிற்பயிற்சிக்கு அப்பால் சென்று, அதற்குப் பதிலாக ஆழ்ந்த கருத்துக்களைப் புரிந்துகொள்வது. நிஜ வாழ்க்கைப் பிரச்சனைகளில் மாணவர்களை ஈடுபடுத்தி, உண்மையில் சுவாரஸ்யமான, முக்கியமான, மற்றும் துறையின் மையமானவற்றைப் புரிந்துகொள்ளத் தொடங்குவதற்கு-முடிந்தால் எடுத்துக்காட்டுகள் மூலம்-ஒரு சிறப்பு பற்றிய அறிமுகம் மிகவும் நியாயமானதாக எனக்குத் தோன்றுகிறது.

முதல் வகுப்பு மாணவர்கள், மற்றொரு ஆட்சியாளரின் மேல் உள்ள ஆட்சியாளர் எவ்வாறு சேர்க்கும் இயந்திரமாக மாறுகிறார் என்பதைக் காட்டும்போது அவர்கள் மகிழ்ச்சியடைகிறார்கள். பின்னர் அவர்கள் மேம்படுத்தப்பட்ட சேர்க்கும் இயந்திரங்களின் வளர்ச்சியில் பங்கேற்பதில் மகிழ்ச்சி அடைவார்கள். அவர்கள் உண்மையான கணினியைத் தொட்டனர் - இது நமக்கு சிந்திக்க உதவும் உடல் மற்றும் மனக் கருவி. பள்ளிகளில் கற்பிக்கப்படுவதை விட, எண்களைப் பிரதிநிதித்துவப்படுத்துவதற்கான மிகவும் பயனுள்ள வழியை அவர்கள் கற்றுக்கொண்டனர்!

"சேர்ப்பது" என்ற அவர்களின் பொது அறிவு யோசனையை "குவித்தல்" போன்ற சக்திவாய்ந்த புதிய பண்புகளுடன் இணைக்க முடிந்தது. பல்வேறு பிரச்சனைகளை தீர்க்கும் வகையில் அதை நிரல்படுத்தினார்கள்.

அதையும் விரிவுபடுத்தினார்கள். மற்றும் பல. இது டிஜிட்டல் கணினி அல்ல. மேலும் இது மனப்பாடம் செய்யப்பட்ட நிரலைக் கொண்ட கணினி அல்ல. ஆனால் அதுதான் கணினியின் சாராம்சம். அப்படியே ஆன்டிகைதெரா பொறிமுறை - இது பொதுவாக கணினி மற்றும் கம்ப்யூட்டிங்கின் சாராம்சம்.

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

ஆன்டிகிதெரா மெக்கானிசம்

விஷயங்கள் கையை விட்டு வெளியேறி, சுருக்கங்களில் தொலைந்து போகும் முன் நாம் எவ்வளவு தூரம் செல்ல முடியும், எவ்வளவு செய்ய முடியும்? நான் எப்போதுமே குணாதிசயத்தில் பாரபட்சமாகவே இருக்கிறேன் ஆலன் பெர்லிஸ் - முதல் டூரிங் விருது வென்றவர், "கணினி அறிவியல்" என்ற வார்த்தையை கண்டுபிடித்தவர் - 60 களில் அவர் கூறினார்: "கணினி அறிவியல் செயல்முறைகளின் அறிவியல்." அனைத்து செயல்முறைகளும்.

Quora க்காக, இதை மேலும் தள்ளவோ ​​அல்லது மதக் கோட்பாடாக மாற்றவோ முயற்சிக்க வேண்டாம். ஐடியாவை சந்தோஷமாக பயன்படுத்துவோம் ஆலா பெர்லிசாநமது துறையை பற்றி நன்றாக சிந்திக்க வேண்டும். குறிப்பாக அதை எப்படி கற்பிப்பது என்பது பற்றி. "அறிவியல்" என்பதன் நவீன அர்த்தத்தை நாம் இப்போது பார்க்க வேண்டும், மேலும் அது பழைய அர்த்தங்கள் ("அறிவு சேகரிப்பு" போன்றவை) மற்றும் பயன்பாடுகளுடன் ("நூலக அறிவியல்" அல்லது "சமூகவியல் போன்றவை) நீர்த்துப்போகக்கூடாது என்பதில் பெர்லிஸ் மிகவும் உறுதியாக இருந்தார். அறிவியல்") "). "விஞ்ஞானம்" மூலம் அவர் ஒரு நிகழ்வைப் புரிந்து கொள்ள முயற்சித்த மாதிரிகள்/வரைபடங்களை உருவாக்கி, நிகழ்வுகளை "கண்காணிக்க" மற்றும் கணிக்க முயற்சித்தார்.

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

மேக்ஸ்வெல்லின் சமன்பாடுகள் மற்றும் பிறர் செய்யும் விதம், டி-ஷர்ட்டுக்கு சிறந்த வரைபடங்கள் மற்றும் மாடல்கள் எவ்வாறு பொருந்துகின்றன என்பதைப் பற்றி நான் பல நேர்காணல்களை வழங்கியுள்ளேன். ஒப்புமை என்னவென்றால், பெரும்பாலான பாலங்கள் மனிதனால் உருவாக்கப்பட்டிருந்தாலும், "பாலங்களின் அறிவியல்" உள்ளது. ஆனால் ஒரு பாலம் கட்டப்பட்டதும், அது விஞ்ஞானிகள் ஆய்வு செய்யக்கூடிய நிகழ்வுகளை பிரதிபலிக்கிறது, பாலங்கள் பல வகையான மாதிரிகளை உருவாக்க பயன்படுகிறது, மேலும் விரிவான மற்றும் பயனுள்ள "பாலம் கோட்பாடுகளை" உருவாக்குகிறது. வேடிக்கை என்னவென்றால், நீங்கள் புதிய பாலங்களை வடிவமைத்து உருவாக்கலாம் (பெரிய மற்றும் முக்கியமான சிக்கல்களைத் தீர்க்க விஞ்ஞானிகள் மற்றும் பொறியாளர்கள் ஒன்றிணைந்து செயல்படுவதை விட வேடிக்கையாக எதுவும் இல்லை என்று நான் ஏற்கனவே குறிப்பிட்டுள்ளேன்!)

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

ஹெர்பர்ட் சைமன், டூரிங் விருது மற்றும் நோபல் பரிசு வென்றவர், இதையெல்லாம் "செயற்கை அறிவியல்" என்று அழைத்தார் (மேலும் அதே தலைப்பில் ஒரு சிறந்த புத்தகத்தை எழுதினார்).

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

ஒரு உதாரணம் சொல்கிறேன். 50 களில், நிறுவனங்கள் மற்றும் பல்கலைக்கழகங்கள் நினைவக கணினிகளை உருவாக்கி அவற்றை நிரலாக்கத் தொடங்கின - மேலும் 1956 இல் ஃபோர்ட்ரான் வெளிவந்தபோது ஒரு சிறப்பு தருணம் இருந்தது - இது முதல் உயர் மட்ட மொழி அல்ல, ஆனால் முதல் மொழி மிகவும் நன்றாக இருந்தது. முன்பு இயந்திர மொழியில் மட்டுமே செய்யப்பட்டவை உட்பட பல்வேறு பகுதிகளில் பயன்படுத்தப்பட்டது.

இவை அனைத்தும் "நிகழ்வுகளுக்கு" வழிவகுத்தன.

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

ஜான் மெக்கார்த்தி

லிஸ்ப்பின் வரலாறு மிகவும் சிக்கலானது, ஆனால் ஜான் மெக்கார்த்தி "கணக்கீடு பற்றிய கணிதக் கோட்பாட்டை" கண்டுபிடிப்பதில் ஆர்வம் காட்டினார், மேலும் எல்லாவற்றையும் சரியாகச் செய்ய வேண்டும் என்பதில் உறுதியாக இருந்தார். லிஸ்பை விளக்கும் ஏவல் செயல்பாடு, டி-ஷர்ட்டில் எளிதாகப் பொருந்துகிறது! "புரோகிராமிங் சிஸ்டத்துடன்" ஒப்பிடுகையில், இது முக்கியமற்றது. மிக முக்கியமாக, இந்த "கணக்கீட்டு கோட்பாடு" Fortran ஐ விட மிகவும் சக்திவாய்ந்த கருத்தாகும்! இது சிறந்த பாலம் யோசனை!

லிஸ்ப்பின் மினியேச்சர் தன்மை, நிரலாக்கத்தின் முழு யோசனையையும் ஆழமான மட்டத்தில் இரண்டு கிளிக்குகளில் பிடிக்கவும், பெரிய கலைப்பொருட்களைப் பார்க்கும்போது வெறுமனே சாத்தியமற்றதாகத் தோன்றும் ஒரு மட்டத்தில் சிந்திக்கவும் அனுமதிக்கிறது (இதுவும் ஒரு காரணம். விஞ்ஞானிகள் ஏன் கணிதம் கச்சிதமாகவும் சக்திவாய்ந்ததாகவும் இருக்க விரும்புகிறார்கள்). இங்கே பயன்படுத்தப்படும் கணிதம் புதிய கணிதமாகும், ஏனெனில் இது "முன்" மற்றும் "பின்" போன்ற கருத்துகளை அனுமதிக்கிறது மற்றும் இது "மாறி தர்க்கத்திற்கு" வழிவகுக்கிறது, இது செயல்பாட்டு சார்பு மற்றும் தர்க்கரீதியான சிந்தனை ஓட்டம் இரண்டையும் பாதுகாக்க அனுமதிக்கிறது, அதே நேரத்தில் நிலை மற்றும் பத்தியையும் அனுமதிக்கிறது நேரம். (சூழ்நிலை நிரலாக்கத்தின் கொடூரமான உலகில் நம் காலத்தில் இது இன்னும் புரிந்து கொள்ளப்படவில்லை).

லிஸ்ப், ஒரு சக்திவாய்ந்த நிரலாக்க மொழி மற்றும் அதன் சொந்த கோட்பாட்டை பிரதிநிதித்துவப்படுத்தக்கூடிய மெட்டலாங்குவேஜ், உண்மையான கணினி அறிவியலுக்கு ஒரு எடுத்துக்காட்டு. நீங்கள் அதையும் மற்ற விஷயங்களையும் கற்றுக்கொண்டால், நீங்கள் ஃபோட்ரான் அல்லது அதற்கு இணையான நிரல்களில் (... அதனால் நீங்கள் புரோகிராமர்களுடன் நெருங்கிப் பழகலாம்) என்பதை விட ஆழமாக சிந்தித்து உங்கள் சொந்த விதிக்கு அதிக பொறுப்பாளியாக இருக்க முடியும்! )

கம்ப்யூட்டிங்கில் தேவைப்படும் சிறப்பு வகை வடிவமைப்புகளைப் பற்றி நீங்கள் அதிகம் அறிந்து கொள்வீர்கள் (உதாரணமாக, கம்ப்யூட்டிங் சூழலுக்கு வெளியே செல்லும் போது இது பொதுவாக பாராட்டப்படுவதில்லை: சேமித்து வைக்கப்படும் சாஃப்ட் கம்ப்யூட்டிங்கின் சிறப்புப் பண்புகளில் ஒன்று அது மட்டும் அல்ல. நிரலுக்கான பொருள், ஆனால் முற்றிலும் புதிய கணினிக்கான பொருள்).

பெர்லிஸின் வரையறையைத் தேர்ந்தெடுப்பதற்கான மற்றொரு காரணம், பொதுவாக, கணிப்பொறியானது அல்காரிதம்கள், "தரவு கட்டமைப்புகள்" அல்லது நிரலாக்கத்தைக் காட்டிலும் பல வகையான அமைப்புகளை உருவாக்குவதில் அதிக அக்கறை கொண்டுள்ளது. எடுத்துக்காட்டாக, கணினி என்பது ஒரு அமைப்பு, கணினி என்பது ஒரு அமைப்பு, ஒரு உள்ளூர் நெட்வொர்க் மற்றும் இணையம் ஆகியவை அமைப்புகள், மேலும் பெரும்பாலான நிரல்கள் அவற்றை விட சிறந்த அமைப்புகளாக இருக்க வேண்டும் (50 களில் இருந்து நிரலாக்கத்தின் பழைய பாணி நிரலாக்கமாக இருக்க வேண்டும் என்று தோன்றும் வரை நீடித்தது. இது போன்ற - உண்மைக்கு அப்பால் எதுவும் இருக்க முடியாது).

இணையம் ஒரு நல்ல உதாரணம் - இந்த நாட்களில் பெரும்பாலான மென்பொருள்களைப் போலல்லாமல், எதையும் சரிசெய்ய அல்லது மேம்படுத்த இணையத்தை நிறுத்த வேண்டிய அவசியமில்லை - இது ஒரு உயிரியல் அமைப்பு போன்றது - எங்கள் நோக்கத்தால் - பெரும்பாலான மக்கள் கணினி அமைப்பு என்று நினைப்பதை விட. இன்று கிடைக்கும் அனைத்து மென்பொருள் அமைப்புகளையும் விட இது மிகவும் அளவிடக்கூடியது மற்றும் நம்பகமானது. புதிய புரோகிராமர்களுக்கு குறைந்த சக்தி வாய்ந்த கருத்துக்களைக் கற்பிக்கும் முன் இது உண்மையில் சிந்திக்கத்தக்கது!

எனவே, முதல் ஆண்டு கணினி அறிவியல் பாடத்தில் நாம் செய்ய வேண்டியது என்னவென்றால், மாணவர்கள் ஆரம்பத்தில் சரியாக என்ன செய்கிறார்கள் என்பதைக் கருத்தில் கொண்டு, பின்னர் அவர்களின் "அறிவாற்றல் சுமை" க்குள் இருக்க முயற்சி செய்து, அவர்களுக்கு மிகவும் முக்கியமானதைப் பெற உதவுங்கள். "உண்மையாக இருத்தல்" மற்றும் அறிவார்ந்த நேர்மையான மற்றும் தொடங்குபவர்களுக்கு ஏற்ற வழிகளைக் கண்டறிவது முக்கியம். (கொஞ்சம் எளிமையாகத் தோன்றுவதால், தயவு செய்து மோசமான யோசனைகளைக் கற்பிக்காதீர்கள் - நிறைய கெட்ட யோசனைகள் உண்மையில் எளிமையானவை!).

நான் இங்கு விவாதித்த பல முக்கிய குணாதிசயங்களைக் கொண்ட ஒன்றை உருவாக்குவதன் மூலம் மாணவர்கள் தொடங்க வேண்டும். இது பல மாறும் ஊடாடும் பகுதிகளின் அமைப்பாக இருக்க வேண்டும், மற்றும் பல. எந்த நிரலாக்க மொழியைப் பயன்படுத்த வேண்டும் என்பதைத் தீர்மானிக்க ஒரு சிறந்த வழி, ஆயிரக்கணக்கான ஊடாடும் பகுதிகளைக் கொண்ட ஒன்றை உருவாக்குவதுதான்! இல்லையென்றால், நீங்கள் ஒன்றைக் கண்டுபிடிக்க வேண்டும். நீங்கள் செய்யக்கூடிய மிக மோசமான விஷயம் என்னவென்றால், மாணவர்களை மிகக் குறைந்த சரளமான பாதையில் அமைப்பதாகும், இது பெரிய யோசனைகளை கடுமையாகக் கட்டுப்படுத்தும். அது அவர்களைக் கொல்கிறது - நாம் அவர்களை வளர்க்க விரும்புகிறோம், அவர்களைக் கொல்லவில்லை.

GoTo பள்ளி பற்றி

ஆலன் கே: கணினி அறிவியல் 101 ஐ நான் எவ்வாறு கற்பிப்பேன்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்