คอมพิวเตอร์ Windows อินเทอร์เน็ต

ภาษาโปรแกรมการศึกษา การพัฒนาทักษะการเขียนโปรแกรมโดยใช้แพ็คเกจ Maple เมื่อสอนวิทยาการคอมพิวเตอร์ในระดับเฉพาะทาง

เมื่อปลายสัปดาห์ก่อนหน้าที่ผ่านมา มีการแสดงเล็กๆ ที่มอสโคว์ ซึ่งเขาได้บอกกับมือใหม่เกี่ยวกับภาษาที่จะเริ่มต้นเส้นทางอาชีพของพวกเขาด้วย และอาชีพในอนาคตที่มีความรู้ที่เหมาะสมควรมุ่งมั่น

คุณสามารถดูรายละเอียดบางส่วนของการประชุมนี้ได้ในความคิดเห็นของโพสต์ แต่สำหรับตอนนี้ เรามาลองค้นหากันที่นี่: ภาษาไหนที่ควรเรียนรู้ก่อน

ดูเหมือนครูของลูกชายฉัน ที่เรียนอยู่ชั้นป.1 กำลังเขียนจดหมายโดยไม่เซ็นชื่อโดยไม่มีหัวข้อ มองตรงหน้าจอมวลปุ๊บ ปั๊บ! สันนิษฐานว่ามัทมาสอนการคิด แต่ก็ไม่ได้ผล ... แนวคิดในการแนะนำการเขียนโปรแกรมให้กับโรงเรียนนั้นยอดเยี่ยม วิธีการนำเสนอเป็นเรื่องที่แตกต่างอย่างสิ้นเชิงและมีปัญหามากมายกับมัน ประการแรก สิ่งที่เขียนโดย Pstrejček หรือคณาจารย์ที่ไม่ได้เตรียมตัวไว้ แซมไม่ใช่สุนัขตัวใหญ่ แต่เขาพยายาม

ก่อนหน้านี้ในโรงเรียนประถมมีคนแบบนี้อยู่ในโรงยิมและแทบจะไม่มีใครเลยเหรอ? และยังมีสิ่งที่ต้องทำอีก 2 อย่าง อีกทางหนึ่ง เราสามารถตกลงกันได้ว่าจะมีคนเขียนโปรแกรมได้อย่างไร แทนที่จะอยากเป็นครู เราทุกคนรู้ดีว่ากลุ่มสังคมนี้ทำเงินได้อย่างไร และเป็นสิ่งสำคัญมากที่จะต้องมีความหลงใหลในการสอนคนรุ่นต่อไป

โรงเรียนเก่า

บทเรียนแรกของวิทยาการคอมพิวเตอร์ ครูที่มีความรู้สึกจุกจิกในใจปล่อยให้เด็กๆ อยู่ใกล้คอมพิวเตอร์ของโรงเรียนเพื่อสอนภาษาการเขียนโปรแกรมภาษาแรกในชีวิตของพวกเขา 15 ปีที่แล้ว ส่วนใหญ่แล้วเป็นภาษาพื้นฐานหรือภาษาปาสกาล แต่ถ้าคุณโชคดีมากกับครู คุณก็ยังสามารถเรียนภาษาซีได้

ตอนนี้เราเลิกใช้วงเล็บปีกกาไปก่อนแล้วลองคิดดูว่า: เป็นการดีหรือไม่ที่จะเริ่มเรียนรู้ด้วยภาษาที่จำกัดมาก ข้อดีชัดเจน: ไวยากรณ์ง่าย ๆ คล้ายกับปกติ ภาษาอังกฤษและความสามารถในการเรียนรู้พื้นฐานการเขียนโปรแกรมในเวลาเพียงไม่กี่ชั่วโมง แต่ก็มีข้อเสียเช่นกัน คือ ขาดการนำไปใช้จริงโดยไม่ต้องเรียน พัฒนาต่อไปภาษาเหล่านี้ (Visual Basic และ Object Pascal) และในกรณีนี้ คุณจะยังห่างไกลจากการพัฒนาแอพพลิเคชั่นที่ทันสมัยอย่างเต็มรูปแบบ

ประการที่สอง โปรแกรมมีความสำคัญมากกว่า โดยทั่วไปแล้ว ฉันไม่ชอบความคิดในการสอนการเขียนโปรแกรมที่เข้มงวด เราต้องให้ความสำคัญในขณะที่ทุกคนที่นี่เขียนเกี่ยวกับเทคโนโลยีใหม่

  • แม้ว่าจะไม่อยู่ใน ทิศทางที่ถูกต้อง, ทุกอย่างปกติดี.
  • คุณสามารถแก้ไขได้ในอนาคต
  • ทำงานดีกว่าไม่ทำงาน
คุณควรโปรแกรมชั้นเรียนใด

  • ฉันไม่มีคุณสมบัติที่จะตอบคำถามโดยเฉพาะ
  • ในความคิดของฉัน พวกเขาควรจะมีนักจิตวิทยา
การกระทำที่ยอดเยี่ยมมากโดยสอนเด็ก ๆ ว่าพื้นฐานของการเขียนโปรแกรมสามารถเข้าถึงได้ง่ายและน่าสนใจสำหรับพวกเขา แนวคิดในการแนะนำโปรแกรมการศึกษานั้นงี่เง่า สิ่งต่างๆ สามารถใส่ไว้ในวงล้อข้อมูลในโรงเรียนมัธยมได้ เช่นเดียวกับกรณีการใช้งานที่มีเครื่องมือที่ทุกคนใช้ได้ฟรีเพื่อเข้าสู่วิชาฟิสิกส์ เคมี หรือคณิตศาสตร์ เป็นคนที่สนใจก็จะหาข้อมูลทางอินเตอร์เน็ตเอง

ดังนั้นหากคุณอายุยังน้อยอยู่ สถานการณ์ไม่ได้บังคับให้คุณเลือกอาชีพในอนาคต ภาษาที่ใช้ก็เป็นทางเลือกที่ดี การฝึกอย่างที่พวกเขาพูดนั้นดีที่สุดสำหรับแมว แต่ถ้าคุณต้องการเริ่มทำเงินในวันพรุ่งนี้แล้วล่ะก็ ... อย่างไรก็ตามเพิ่มเติมในภายหลัง

โรงเรียนสมัยใหม่

อย่างที่คุณคงทราบดี เด็กนักเรียนสมัยใหม่หลายคนเริ่มต้นการเขียนโปรแกรมด้วยภาษา "ใหญ่" บางเวอร์ชันที่เรียบง่าย เช่น Scratch, Blockly หรือ Logo โดยทั่วไป ข้อดีสามารถเขียนใหม่จากภาษาขั้นตอน ถ้าไม่ใช่สำหรับ "แต่" อย่างใดอย่างหนึ่ง: ภาษาและแอปพลิเคชันเหล่านี้สร้างขึ้นจากพื้นฐานเป็นบริการความบันเทิงสำหรับเด็ก

ถัดมา - คนหนุ่มสาวส่วนสำคัญเป็นคนดังเพราะพวกเขาต้องการที่จะบริโภคและไม่ทำลายกำแพงรหัส - คุณต้องมีใจโอนเอียง เนื้อหาของรายการดีมากจนถ้าใครต้องการเขาจะพบว่าตัวเอง ตอนนี้สิ่งที่สำคัญที่สุดสำหรับเด็กคือการเรียนรู้การรักษาที่ถูกต้อง การคิดเชิงตรรกะ การเรียนรู้ภาษาต่างประเทศที่ดีมาก - ในแง่ของความต่อเนื่องและการกระจายในระดับที่ถูกต้อง ไม่ว่าในกรณีใด สิ่งเหล่านี้สามารถทำได้บนเสื่อ-กายภาพ เพื่อไม่ให้รบกวนนักมนุษยศาสตร์และโปรแกรมเมอร์ทางการแพทย์ในอนาคต

นั่นคือสิ่งเดียวที่สามารถเรียนรู้ได้จากการเขียนโปรแกรมดังกล่าวคือโครงสร้างทั่วไปของโปรแกรม แนวคิดของลูปและตัวดำเนินการ ดังนั้น หากคุณอายุ 12 ปีแล้ว ลืมเกี่ยวกับภาษาของเด็กเหล่านี้ ถึงเวลาที่คุณจะเข้าสู่โลกของผู้ใหญ่

เริ่มต้นอย่างรวดเร็วด้วยมุมมอง

สมมติว่า ทิ้งช่วงโหมโรงทั้งหมด คุณต้องการเริ่มต้นการเรียนรู้ภาษาโปรแกรมหลักอย่างใดอย่างหนึ่งทันที ในเวลาเดียวกันเรียนรู้พื้นฐานทั้งหมดของการเขียนโปรแกรม ถ้าอย่างนั้นก็คุ้มค่าที่จะตอบคำถามง่ายๆ เพียงคำถามเดียว: คุณต้องการทำอะไรกันแน่? หากคุณตั้งโปรแกรมฮาร์ดแวร์ จะไม่มีการสนทนาใด ๆ ที่นี่: คำตอบคือ C นั่นคือภาษา C ซึ่งรวมทุกอย่างที่ผู้เริ่มต้นต้องการ: ไวยากรณ์ง่าย ๆ โอกาสที่ดีทั้งสำหรับการทำงานในสภาพแวดล้อมนี้ต่อไปและเพื่อเพิ่มเติม การฝึกอบรมใหม่ให้กับโปรไฟล์ " ไม่ใช่เหล็ก " ในเวลาเดียวกัน ในร้านค้าปลีกอิเล็กทรอนิกส์รายใหญ่เกือบทุกแห่ง คุณจะพบบอร์ดพัฒนา ชุดสตาร์ทหุ่นยนต์ และความสนุกสนานอื่นๆ สำหรับผู้เริ่มต้น

เพราะฉันมีวิทยาการคอมพิวเตอร์และวิทยาลัยและนั่นคือจุดต่ำสุด แทนที่จะคิดถึงเรื่องรัฐบาล ให้รัฐบาลลอกเลียนแบบและทำให้หลักสูตรเป็นจริงมากขึ้น เพราะข้อมูลที่โง่ที่สุดที่เด็กๆ มี เราก็จะมีน้อยลง คนที่น่าสนใจเพราะการพัฒนาความหลงใหลหลังเลิกเรียนและการทำงานจะไม่มีอำนาจอีกต่อไป

อย่างไรก็ตาม มีคนเข้าใจผิดคิดว่าผู้ใหญ่ทำงาน 8 ชั่วโมงและไฟดับ และเด็กต้องอ่านหนังสือทั้งวันที่โรงเรียนและหลังเลิกเรียน เพราะท้ายที่สุด ครูทุกคนเชื่อว่าวิชาของเขาสำคัญที่สุด เป็นงานที่น่าเบื่อหน่ายที่ไม่มีใครจำได้ในอีกไม่กี่ปีข้างหน้า แต่คนรวยจะมีเงินมากขึ้นในการเริ่มต้นธุรกิจด้วยมือของหุ่นยนต์ ซึ่งดูเหมือนจะมีความหมายมากกว่านั้น คุณบอกว่าคุณมีความหมายมากกว่านั้น คุณมีความคิด สองมือ และความปรารถนา

  • พลเมืองที่โง่ที่สุด ยิ่งดีสำหรับชนชั้นปกครองและนักการเงิน
  • มันเป็นคอมพิวเตอร์หรือการขุดหลุม - ไม่สำคัญ
ทุกอย่างสวยงามมาก แต่ทันทีที่คุณสังเกตเห็นสิ่งนี้ ใครจะเป็นคนสอนการเขียนโปรแกรมให้พวกเขา

หากคุณถือว่าเว็บเป็นอาชีพของคุณ คุณต้องเริ่มต้นการเดินทางเป็นมาตรฐานด้วย HTML และ CSS วิธีนี้จะช่วยให้คุณสร้างเพจแบบสแตติกและรับแนวคิดคร่าวๆ เกี่ยวกับสิ่งที่คุณต้องจัดการ ต่อไป ขอแนะนำอย่างยิ่งให้จัดการกับ Python ประการแรกเพราะภาษานี้เรียนรู้ได้ง่ายจริงๆ ประการที่สอง ตามแหล่งข้อมูลบางแห่ง Python เป็นภาษาที่ได้รับความนิยมมากที่สุด หากเราพิจารณาเฉพาะสถิติของนักเรียนตั้งแต่ปี 2011 ประการที่สาม ความสามารถของภาษานี้จนถึงทุกวันนี้ คุณสร้างเว็บด้วยมัน (เช่น DropBox หรือ Google) และพรุ่งนี้คุณจะเริ่มพัฒนาเกม (Civilization IV)

ครูที่ไม่เข้าใจพื้นฐานการเขียนโปรแกรมด้วยตัวเอง? อย่าหลงกล แต่นี่คือความจริง ในระดับวิชาการ เป็นเรื่องยากที่จะหาครูที่สอนการเขียนโปรแกรมเป็นอย่างดีและเฉพาะในโรงเรียนเท่านั้น การเขียนโค้ดเป็นเรื่องสนุกเป็นเรื่องที่ดี แต่วิดีโอนี้นำเสนอในรูปแบบที่ต่างไปจากเดิมอย่างสิ้นเชิง

  • แน่นอน พนักงานคือตัวปัญหา
  • แต่จะไม่มีอะไรเปลี่ยนแปลงหากไม่มีการกระทำ
  • การกระทำปรากฏว่าดี
และผู้ปกครองที่ยากจนซึ่งตอนนี้ทำโครงการออกแบบสำหรับวาฟเฟิลตอนนี้จำเป็นต้องเรียนรู้วิธีการเขียนโปรแกรมและทำโครงการเขียนโปรแกรมหรือไม่?


เรียนยาก สู้ง่าย

คุณสามารถเลือก JavaScript เป็นภาษาการเขียนโปรแกรมแรก (อันที่จริงเป็นภาษาที่สามหลังจาก HTML และ CSS) ของการเขียนโปรแกรมได้โดยไม่ต้องละทิ้งธีมของเว็บ นี่คือสิ่งที่พวกเขาทำในบทเรียนวิทยาการคอมพิวเตอร์เมื่อ 15 ปีที่แล้ว และนี่มีความหมายที่ชัดเจนมาก: หน้าคงที่ที่มีการเพิ่ม 4-5 บรรทัดตามตัวอักษรมีองค์ประกอบที่ใช้งานซึ่งเพิ่มแรงจูงใจในการทำงานในทิศทางนี้ ในเวลาเดียวกัน ประสิทธิภาพไม่ได้ขึ้นอยู่กับเบราว์เซอร์หรือบน ระบบปฏิบัติการ... และนั่นยังไม่รวมถึงโอกาสในการพัฒนา Node.js ต่อไป

จากนั้นคุณต้องสร้าง สำรองนักเรียนที่พ่อแม่จ่ายภาษีมหาศาล? เป็นไปได้ไหมที่นักเรียนจะแก้แค้นผู้ปกครองมากกว่าหนึ่งคนที่พ่อแม่เรียกเก็บเงิน 500 สำหรับ น้องชายและน้องสาว?

  • นักเรียนที่เรียนการเขียนโปรแกรมในโรงเรียนประถมศึกษา?
  • นอกจากอบรมต้องมีประสบการณ์หรือความรู้
  • นักเรียนคอมพิวเตอร์ค่อนข้างตรงข้ามกับครู
มีเป้าหมายชัดเจน! ตอนนี้แฟชั่นโดยเฉพาะอย่างยิ่งในสื่อวิพากษ์วิจารณ์ทุกอย่างเพราะมันสร้างทางเลือกทางการเมืองที่นั่น

เป็นเรื่องที่ควรค่าแก่การอภิปรายบนพื้นฐานของข้อเท็จจริงและโดยเฉพาะอย่างยิ่ง "เอกสาร" ที่เป็นทางการ และวิดีโอแบบนี้ได้สร้างหน่วยงานที่ได้รับมอบหมายจากกระทรวงและน่าจะเข้าถึงรสนิยมของคนทั่วไป ไม่ใช่ผู้เชี่ยวชาญด้านไอที ทำความเข้าใจ วิเคราะห์ และแก้ปัญหาตามการคิดเชิงตรรกะและเชิงนามธรรม การคิดแบบอัลกอริธึม และวิธีการนำเสนอ ข้อมูล. การเขียนโปรแกรมและการแก้ไขปัญหาด้วยคอมพิวเตอร์และอื่นๆ อุปกรณ์ดิจิทัล: อัลกอริธึมสำหรับการวางและการเขียนโปรแกรม การจัดระเบียบ การค้นหา และการแลกเปลี่ยนข้อมูลโดยใช้โปรแกรมคอมพิวเตอร์

คุณสามารถเริ่มต้นการเดินทางบนเว็บด้วย PHP หรือ Ruby ได้ แต่ถ้าคุณไม่เคยเขียนโปรแกรมมาก่อน จะดีกว่าที่จะปฏิบัติตามเส้นทางที่มีความต้านทานน้อยที่สุด และปล่อยให้สองภาษานี้สำหรับการศึกษาในอนาคต เปรียบเทียบในเวลาเดียวกัน

และสุดท้ายคือการพัฒนาแอพพลิเคชั่น สามวิธี: Java, Swift, C # ความปรารถนาที่จะเริ่มต้นเรียนรู้การเขียนโปรแกรมกับพวกเขานั้นเป็นความท้าทายที่ร้ายแรงมาก ซึ่งหากไม่มีงานหนักก็อาจกลายเป็นเรื่องงี่เง่าได้ เพราะแต่ละคนจะต้องเรียนอย่างเข้มข้นเป็นเวลาหลายเดือน อย่างไรก็ตาม ผู้ที่มีแนวโน้มจะเป็นลูกค้าสามารถใช้เป็นสิ่งจูงใจ ไม่ว่าจะเป็นอาชีพที่ประสบความสำเร็จในวงการมือถือ (Java - Android, Swift - iOS) หรือการเล่นเกม (C # + Unity)

การใช้คอมพิวเตอร์ อุปกรณ์ดิจิทัล และเครือข่ายคอมพิวเตอร์ รวมทั้งความรู้เกี่ยวกับหลักการทำงานของอุปกรณ์ดิจิทัลและเครือข่ายคอมพิวเตอร์ตลอดจนการดำเนินการคำนวณและโปรแกรมต่างๆ การพัฒนาความสามารถทางสังคม เช่น การสื่อสารและการทำงานร่วมกันเป็นทีม รวมถึงสภาพแวดล้อมเสมือนจริง การทำงานร่วมกัน และการจัดการโครงการ การปฏิบัติตามกฎหมายและข้อบังคับด้านความปลอดภัย

หลักสูตรแกนกลางในปัจจุบันไม่ได้เพิ่มเติมอะไรใหม่ ดังนั้นครูสามารถนอนหลับอย่างสงบสุขและระดับวิทยาการคอมพิวเตอร์จะไม่เปลี่ยนแปลง การเขียนโปรแกรมเป็นส่วนหนึ่งของวิทยาการคอมพิวเตอร์ตั้งแต่อายุยังน้อย มีอิทธิพลต่อวิธีการสอนวิชาอื่นๆ นำเสนอความหมายที่ถูกต้องของแนวคิดด้านไอทีและวิทยาการคอมพิวเตอร์ รองรับการพัฒนาทักษะต่างๆ เช่น การคิดเชิงตรรกะ การนำเสนอที่ชัดเจน ทำงานร่วมกันและการดำเนินโครงการอย่างมีประสิทธิภาพ ถ้าไม่ดีก็ต้องเปลี่ยน การเปลี่ยนแปลงในตอนเริ่มต้นไม่จำเป็นต้องไปในทิศทางที่ถูกต้อง แต่ดีกว่าการอยู่ผิดที่ คุณคิดว่าวิสัยทัศน์ของเจ้าหน้าที่ถูกต้องหรือไม่? โครงการนี้จะล้มเหลวอย่างแน่นอนเพราะจะไม่มีใครที่เหมาะสมอยู่แล้วและมีแกนกลางในคน โรงเรียนควรเป็นสถานที่สนับสนุนการพัฒนาในหลาย ๆ ด้าน ไม่ใช่แค่สิ่งที่ฟังดูดีหรือที่ "เจ้าหน้าที่" ถูกตัดขาดจากโลก โดยทั่วไป ข้อมูลส่วนใหญ่ที่ให้มานั้นเป็นข้อมูลเชิงลบและบังคับเราให้คิดอย่างไร เมื่อเร็ว ๆ นี้ผู้เขียนบล็อกนี้โพสต์บนบล็อกของเขา a very หัวข้อที่น่าสนใจเกี่ยวกับโรงเรียนเขียนโปรแกรมซึ่งเกี่ยวข้องกับบทความข้างต้น ถ้าฉันต้อง "เป็นทางการ" ให้พูดว่าฉันอาจจะต้องอ่าน แต่โชคดีที่ฉันไม่ต้องอ่าน ฉันไม่ได้รับข้อความของคุณ! นี่คือความกตัญญูของฉันต่อนักข่าว "มืออาชีพ" ของ TVNOV, agoors และคนอื่น ๆ ที่เกี่ยวข้องกับความผิดพลาดทางการเมือง ฐานใหม่การเขียนโปรแกรมและไม่เกี่ยวข้องกับสาระสำคัญเลย คุณไม่จำเป็นต้องอ่านกฎ ตั้งกฎเกณฑ์ และแสดงความคิดเห็นได้ เพราะนี่คือบล็อกของคุณ เพื่อเงินของคุณ และไม่เกี่ยวอะไรกับมัน ในทางกลับกัน กระแสหลักดำเนินการบนพื้นฐานสัมปทานและมักจะเป็นตลาดที่มีการควบคุม ดังนั้นอย่างน้อยควรเตรียมทฤษฎีให้พร้อมกว่านี้ ครูมักเป็นคนที่ไม่มีประสบการณ์ทางธุรกิจและชอบที่จะได้ยินจากคุณอย่างแน่นอน คุณเป็นคนสำคัญที่สุดสำหรับการนำโปรแกรมไปใช้ อย่ากีดกัน และเตรียมมืออาชีพในอนาคต คุณรู้ว่าหัวข้อนั้นน่าสนใจมาก ในความคิดของฉัน นี่เป็นมุมมองที่สำคัญมาก ข้อตกลงยังตกลงกัน แต่ด้วยเหตุผลบางอย่างมันไม่ได้ออกมา น่าเสียดายที่ยังไม่มีสื่อกระแสหลัก ... มันเป็นเรื่องของการสร้างนักพัฒนาราคาไม่แพงบนพื้นฐานเดียวกับคอมมิวนิสต์ที่ผลิตคนงานเทปและคนงานพิเศษในโรงงาน

วันนี้ฉันเขียนคำตอบให้กับ Nina Shumilina จาก Tver สำหรับคำถามเกี่ยวกับ Python เป็นภาษาการเขียนโปรแกรมภาษาแรกที่โรงเรียน

เธอยกคำพูดของ Konstantin Polyakov ซึ่งเป็นบทสรุปของบทความของเขาในนิตยสาร Informatics ฉบับเดือนกันยายน:
ด้วยเหตุผลเหล่านี้ ผู้เขียนจึงมีแนวโน้มที่จะสนับสนุนความคิดเห็นของ I.A. Sukina: Python นั้นดีสำหรับโปรแกรมเมอร์มืออาชีพ แต่การใช้มันเป็นภาษาโปรแกรมแรกอาจเป็นการตัดสินใจที่ไม่ดี ตามที่ครู Python ยอมรับ คนที่เรียนการเขียนโปรแกรมใน Python จะไม่เต็มใจที่จะย้ายไปใช้ภาษาอื่น (ระดับล่าง) การสอนให้เด็กนักเรียนจัดเรียงอาร์เรย์โดยการเรียกวิธีการจัดเรียง เป็นการยากที่จะอธิบายในภายหลังว่าทำไมจึงมีการเขียนโวลุ่มทั้งหมดเกี่ยวกับอัลกอริทึมการเรียงลำดับ และสิ่งนี้สามารถนำไปสู่การเกิดขึ้นของกาแล็กซี่ของ "โปรแกรมเมอร์เฉพาะ Python" ที่ไม่พร้อมที่จะเอาชนะข้อจำกัดเพิ่มเติม เพื่อปรับปรุงประสิทธิภาพของโปรแกรม อันที่จริง ครูพบว่าตัวเองอยู่ในสถานการณ์ที่บรรยายได้ดีด้วยวลีที่ว่า "Python มีโอกาสเช่นนั้น แต่คุณไม่สามารถสอนแบบนั้นได้!" (E.V. Andreeva). ในขณะเดียวกัน การเรียนรู้ Python เป็นภาษาโปรแกรมที่สองในชั้นเรียนวิทยาการคอมพิวเตอร์ขั้นสูงก็จะเป็นประโยชน์ (เช่น หลัง Pascal หรือ C เป็นต้น)

การอบรมเป็นหน่วยงานย่อยของกระทรวงศึกษาธิการ การปรึกษาหารือเป็นขั้นตอนสุดท้ายของการทำงานภายในสภาเทคโนโลยีสารสนเทศเพื่อการศึกษา ก่อนส่งร่างแก้ไขโปรแกรมเพื่อการตัดสินใจของรัฐมนตรี

เมื่อสิ้นสุดการปรึกษาหารือ สภาการศึกษาไอซีทีจะนำเสนอรายงานเกี่ยวกับการดำเนินการและการเปลี่ยนแปลงโครงการขั้นสุดท้ายในหลักสูตรหลักและไอที ที่น่าสนใจคือคาดว่าการศึกษาด้านเทคโนโลยีสารสนเทศใน โรงเรียนอนุบาล... เด็กเล็กใช้อุปกรณ์ดิจิตอลอิเล็กทรอนิกส์เพื่อสื่อสารกับคนที่คุณรักและเล่นกับพวกเขา นักเรียนมัธยมต้นจะต้องเผชิญกับความท้าทายในการพัฒนาโปรแกรมและเว็บไซต์ของตนเอง

คำตอบของฉันมีมากกว่ารูปแบบของจดหมายอย่างชัดเจน ดังนั้นสำหรับตอนนี้ ฉันจะเผยแพร่ที่นี่ และบางที ฉันจะสรุปให้เป็นบทความ

ไม่ต้องสงสัยเลยว่าทัศนคติที่มีต่อ Python นั้นแตกต่างกัน มีความกลัวว่าการพิมพ์แบบไดนามิกและภาษา "ระดับสูง" มากเกินไปเป็นอันตรายต่อการเรียนรู้ เป็นไปไม่ได้ที่จะแทนที่แนวคิดของ "อาร์เรย์" ด้วยรายการระดับสูงเนื่องจากเด็กนักเรียน "หลอก" โดยความสะดวกในการดำเนินการ กับรายการจะไม่เข้าใจหลักการขององค์กรภายในเป็นต้น

อย่างไรก็ตาม ความท้าทายที่ยิ่งใหญ่ที่สุดในการตระหนักถึงความมุ่งมั่นที่ทะเยอทะยานคือการขาดครูที่ได้รับการฝึกอบรมและแรงบันดาลใจอย่างเหมาะสม การแนะนำหลักสูตรแกนกลางได้รับการออกแบบมาเพื่อตอบสนองความต้องการที่เพิ่มขึ้นสำหรับผู้ที่มีทักษะเหล่านี้ในตลาดแรงงาน บริษัทจัดการโครงการการศึกษา “Master Coding” ซึ่งมีจุดมุ่งหมายเพื่อเผยแพร่วิทยาศาสตร์การเขียนโปรแกรมในโรงเรียนในโปแลนด์ และรวมถึงนักเรียนจากโรงเรียนประถมศึกษาทั่วประเทศโปแลนด์ ครูที่เข้าร่วมโครงการได้รับการฝึกอบรมจากผู้เชี่ยวชาญเพื่อดำเนินโครงการต่อไปในโรงเรียนของพวกเขาในอีก 8 สัปดาห์ข้างหน้า

แต่ในความเห็นของฉัน การวิจารณ์ดังกล่าวส่วนใหญ่มาจาก "นักทฤษฎี" ที่ไม่เคยพยายามสอนการเขียนโปรแกรมในภาษา Python ซึ่งเป็น Polyakov คนเดียวกัน แม้ว่าเขาจะเริ่มตีพิมพ์บทความเกี่ยวกับ Python ใน "Informatics" แต่ดูเหมือนว่าเขาไม่เคยใช้ประกอบการสอน ... แต่ฉันไม่รู้จักผู้ฝึกหัดที่วิพากษ์วิจารณ์ Python นั่นคือคนที่พยายามสอนเด็ก ๆ ใน Python อย่างน้อยหนึ่งปีแล้วปฏิเสธ

เข้าร่วมโปรแกรมฟรี น่าเสียดายที่โรงเรียนไม่ได้สอนทุกสิ่งที่คุณจำเป็นต้องรู้เพื่อทำให้ชีวิตของคุณง่ายขึ้น อันที่จริง โรงเรียนมักทำให้คุณคิดเรื่องไร้สาระซึ่งคุณไม่น่าจะเคยใช้ แม้ว่าครูทุกคนจะถือว่าเรื่องไร้สาระเป็นเรื่องสำคัญมาก

ในขณะที่เราเรียนรู้สิ่งที่มีประโยชน์ในโรงเรียนด้วย แต่ทักษะที่สำคัญที่สุดบางอย่างที่เราต้องการในวัยผู้ใหญ่ไม่ได้กล่าวถึงด้วยซ้ำ เราต้องมองไปในทางที่ดี: มันไม่สายเกินไปที่จะเรียนรู้ เนื่องจากเทคโนโลยีเป็นหนึ่งในหัวข้อที่สำคัญที่สุดในปัจจุบัน จึงเป็นเรื่องยากที่จะเชื่อว่าวิทยาการคอมพิวเตอร์ไม่ได้รับการสอนในโรงเรียนหลายแห่ง และในวิทยาการคอมพิวเตอร์ เราไม่ได้พูดถึงการผสมผสานระหว่างคณิตศาสตร์กับคอมพิวเตอร์ แต่เกี่ยวกับความสามารถในการทำงานบนคอมพิวเตอร์

ตัวอย่างเช่น EV Andreeva ซึ่งอ้างว่าอ้างโดย Polyakov เมื่อสามปีที่แล้วตัดสินใจพยายามสอนเด็กนักเรียนเกรด 6-7 ในเรื่อง "Intellectual" ใน Python ก่อนหน้านั้น เธอค่อนข้างจะสงสัยเกี่ยวกับการลงทุนนี้ แต่ตัดสินใจลองทำดู หกเดือนต่อมา เธอได้พูดในที่ประชุมแล้วและบอกว่าเป็นการดีที่สุดที่จะสอนนักเรียนมัธยมต้นด้วยภาษา Python โดยที่เธอไม่เชื่อใน Python จริงๆ แต่แล้วเธอก็ลองทำดู และในอีกไม่กี่เดือนความคิดเห็นของเธอก็เปลี่ยนไป ดังนั้นฉันไม่รู้ว่า Polyakov อ้างถึงอะไรและคำพูดนี้อายุเท่าไหร่ แต่เมื่อวานนี้ฉันแสดงการติดต่อนี้กับ Andreeva โดยเฉพาะและขอให้เธอตอบซึ่งเธอเขียนว่า "คำตอบของ Shumilina - เด็กนักเรียนระดับกลางจำเป็นต้องได้รับการสอนอย่างแน่นอน ไพทอน".

ไพธอนมีประโยชน์อย่างไร? ไม่เพียงแต่ในความเรียบง่ายของภาษาเท่านั้น แต่ยังรวมถึงความจริงที่ว่ามันเป็นโลกแห่งการเขียนโปรแกรมที่หลากหลายและหลากหลาย การเริ่มต้นเขียนโปรแกรมในโลกนี้เป็นเรื่องง่าย และดูเหมือนว่าไม่มีประโยชน์ที่จะพูดถึงข้อดีของ Python ในฐานะภาษาโปรแกรมแรก - เห็นได้ชัดว่าไม่มีอะไรง่ายไปกว่านี้ (จากภาษาโปรแกรม จุดประสงค์ทั่วไป). มันพูดน้อยมากกว่า Pascal และการเขียนโปรแกรมในนั้นไม่จำเป็นต้องยุ่งกับสิ่งทางเทคนิคมากมายซึ่งยากสำหรับผู้เริ่มต้น การเขียนโปรแกรมสำหรับผู้เริ่มต้นง่ายกว่ามาก หากประกอบด้วยห้าบรรทัดและไม่ใช่สิบห้า จะใช้อัลกอริธึมเดียวกัน แต่ใช้เวลาน้อยกว่าในการเขียนและดีบักโค้ด ซึ่งหมายความว่าสามารถแก้ไขปัญหาได้มากขึ้นและต่อไป ความคืบหน้าและการทำงานกับอาร์เรย์จะสะดวกกว่ามากในการเขียน:

a = * 1,000
อย่างไร
var a: อาร์เรย์ของจำนวนเต็ม;
...
สำหรับ i: = 1 ถึง 1,000 do
[i]: = 0;

ผลลัพธ์สำหรับโปรแกรมเมอร์เหมือนกัน ผลลัพธ์คืออาร์เรย์ที่เต็มไปด้วยศูนย์ แต่ใน Python จะเป็นหนึ่งบรรทัดแทนที่จะเป็นสาม และความหมายจะไม่เปลี่ยนแปลง แล้วคนคลางแคลงใจจะบอกว่าคุณเขียนไม่ได้เหมือนใน Python ว่านักเรียนต้องเข้าใจว่าอาร์เรย์เป็นหน่วยความจำต่อเนื่องที่เราต้องประกาศนั่นคือสำรองพื้นที่ที่เรา ต้องเริ่มต้นเติมด้วยศูนย์ ... คำตอบของเราสำหรับผู้คลางแคลงคือความหมายสำหรับโปรแกรมเมอร์สามเณรไม่เปลี่ยนแปลงในทางกลับกันบรรทัด a = * 1,000 สะท้อนสิ่งที่นักเรียนต้องการได้ดีกว่าและทันที (I ต้องการรายการหมายเลข 0, ซ้ำ 1,000 ครั้ง) มันง่ายกว่ามากในการเขียนและช่วยให้คุณแก้ปัญหาได้มากขึ้น!

ลองดูสองตัวอย่างด้านบนนี้ อันไหนชัดเจนกว่ากัน คุณชอบอันไหนมากที่สุด?

ดังนั้นสำหรับผู้เริ่มต้น Python ดีกว่าอย่างไม่ต้องสงสัย ยิ่งกว่านั้นเด็กที่อ่อนแอสามารถหยุดที่นี่ได้โดยได้รับแนวคิดทั่วไปเกี่ยวกับการเขียนโปรแกรม แต่นักเรียนที่เข้มแข็งสามารถก้าวต่อไปได้ และพวกเขาจะมีภาษาโปรแกรมสากลที่ทันสมัยซึ่งใช้จริงสำหรับการพัฒนา ซอฟต์แวร์ในบริษัทชั้นนำของโลก ตัวอย่างเช่นที่นี่สถิติ - "สิ่งที่พวกเขาเขียนในยานเดกซ์": http://blog.yandex.ru/post/ 77617 / เว็บไซต์สามารถเขียนด้วยภาษา Python เกมส์คอมพิวเตอร์, GUI, แอปพลิเคชันไคลเอนต์ - เซิร์ฟเวอร์นั่นคืออะไรก็ตาม

ตอนนี้เกี่ยวกับคำกล่าวที่ว่ามีหลายสิ่งระดับสูงในภาษา และมีความอยากที่จะใช้มัน แทนที่จะเรียนรู้ว่ามันทำงานอย่างไร นี่เป็นปัญหาเชิงระเบียบ ไม่ใช่ปัญหาภาษาโปรแกรม วิธีการทั่วไปมีดังต่อไปนี้ - ก่อนอื่นเราเข้าใจวิธีการทำงาน จากนั้นเราจึงได้รับอนุญาตให้ใช้องค์ประกอบที่เกี่ยวข้องของภาษา ตัวอย่างเช่น อันดับแรก เราเขียนการแลกเปลี่ยนค่าของตัวแปรสองตัวผ่านตัวแปรเสริม จากนั้นฉันจะแสดงวิธีการดำเนินการโดยใช้สิ่งอันดับ (a, b) = (b, a) ขั้นแรก เราเขียนตัวเลขสูงสุดสองหรือสามตัว จากนั้นคุณสามารถใช้ฟังก์ชัน max ได้ จากนั้นจึงเขียนโปรแกรมหาค่าสูงสุดใน
ลำดับ (array) จากนั้นคุณสามารถใช้ฟังก์ชัน max ในรายการได้ ขั้นแรก เราเขียน sorts ด้วยตัวเอง จากนั้นคุณสามารถใช้ฟังก์ชัน sort ได้ และฉันยังยืนกรานให้นักเรียนใช้ฟังก์ชัน sort มาตรฐาน - เร็วกว่าและสะดวกกว่า และช่วยให้คุณแก้ปัญหาได้มากขึ้น แต่หลังจากที่พวกเขาเรียนรู้ที่จะเขียนแล้ว เรียงลำดับตัวเอง

อันที่จริงมีการเรียงลำดับในตัวในใด ๆ ภาษาสมัยใหม่การเขียนโปรแกรม (Java, C ++, PHP) เพราะตอนนี้เป็นที่ยอมรับกันมาก ไม่มีอยู่ใน Pascal แบบคลาสสิกเท่านั้น (แต่ใน Delphi สมัยใหม่ - มี) ไม่ใช่ใน BASIC แบบเก่า (และใน Visual Basic - มี) แต่นี่ไม่ได้หมายความว่าภาษาเหล่านี้ทั้งหมดไม่สามารถใช้งานได้เนื่องจากสร้างขึ้น -ในการเรียงลำดับ? และไม่เคยมีใครมาห้ามการศึกษาภาษาเหล่านี้ที่โรงเรียนเพียงเพราะว่า "ถ้าครูสอนให้เด็กใช้การเรียงลำดับในตัวแล้วคุณจะไม่อธิบายให้เด็กเหล่านี้ฟังว่าทำไมคุณต้องเรียน ความซับซ้อนของอัลกอริธึมการเรียงลำดับ" ดังนั้นปัญหาไม่ใช่ว่า sort อยู่ในภาษาโปรแกรมหรือไม่ แต่ปัญหาอยู่ที่ HOW ใช้งานอย่างไร เด็กนักเรียนบางคนก็เพียงพอแล้วที่จะอธิบายว่า "การเรียงลำดับแบบเลือก" คืออะไร - เข้าใจได้และง่ายมากที่จะเขียนใน Python เดียวกัน แต่กับคนที่คุณสามารถพูดคุยเกี่ยวกับอัลกอริทึมการเรียงลำดับที่มีประสิทธิภาพและการมีอยู่ของการเรียงลำดับในตัวไม่รบกวน นี้. ยิ่งกว่านั้น ถ้าฉันสอนเด็กเขียนโปรแกรมด้วย C ++ เดียวกัน ฉันก็พยายามสอนเด็ก ๆ ถึงวิธีใช้ sort sort จาก STL และใช้งานได้อย่างมีประสิทธิภาพ และสิ่งนี้จะไม่รบกวนการศึกษาอัลกอริทึมการเรียงลำดับ ที่ MIT (สถาบันเทคโนโลยีแมสซาชูเซตส์) ทุกท่าน หลักสูตรเบื้องต้นการเขียนโปรแกรมถูกโอนไปยัง Python เมื่อไม่กี่ปีที่ผ่านมา ที่คณะวิทยาการคอมพิวเตอร์แห่งใหม่ของ State University Higher School of Economics ซึ่งก่อตั้งขึ้นในปี 2014 โดยมีส่วนร่วมของ Yandex เป็น Python ที่เป็นภาษาการเขียนโปรแกรมภาษาแรกที่นักศึกษาศึกษา ผมขอยกตัวอย่างคณะใหม่เพราะ ในมหาวิทยาลัยที่มีโปรแกรมที่จัดตั้งขึ้นแล้ว เป็นการยากที่จะเปลี่ยนแปลงสิ่งใดๆ เช่น ที่คณะ CMC ของมหาวิทยาลัยแห่งรัฐมอสโก ความพยายามที่จะแทนที่ Pascal ด้วย C เป็นภาษาการเขียนโปรแกรมแรกไม่ประสบความสำเร็จเนื่องจากไม่เต็มใจที่จะเปลี่ยนแปลง โปรแกรมที่มีอยู่และกลุ่มครู

ต่อไปมาดูคำกล่าวที่ว่า "และสิ่งนี้สามารถนำไปสู่ลักษณะที่ปรากฏ กาแล็กซี่ของ "โปรแกรมเมอร์เฉพาะงูหลาม" ที่ไม่พร้อมจะเอาชนะข้อ จำกัด เพิ่มเติมเพื่อประโยชน์ในการเพิ่มประสิทธิภาพของโปรแกรม "ในแง่หนึ่ง ไม่มีอะไรผิดปกติกับสิ่งนั้น การเขียนโปรแกรมเป็นอาชีพที่แพร่หลายมากขึ้นเรื่อย ๆ และทักษะหลายอย่างของโปรแกรมเมอร์ไม่ได้อยู่ในสิ่งที่สูงกว่า การศึกษานั่นคือโปรแกรมเมอร์ส่วนใหญ่ไม่จำเป็นต้องศึกษาปริมาณที่อุทิศให้กับอัลกอริทึมการเรียงลำดับความซับซ้อนของอัลกอริทึมการเรียงลำดับคือไม่ต้องสงสัยขอบเขตของการศึกษาระดับมืออาชีพที่สูงขึ้น แต่โปรแกรมเมอร์ที่สามารถเขียนเว็บไซต์ใน PHP หรือโปรแกรมสำหรับการบัญชี
ใน 1C ก็มีความจำเป็นเช่นกัน และคุณต้องการมันมาก โดยทั่วไปแล้ว โปรแกรมเมอร์ดังกล่าวไม่จำเป็นต้องเข้าใจอัลกอริธึมการเรียงลำดับ พวกเขาเพียงแค่ต้องใช้ฟังก์ชันมาตรฐาน sort สำหรับงานใด ๆ และรู้ว่าสามารถจัดเรียงอาร์เรย์ได้ดีกว่าการเขียนเอง (และค่อนข้างแปลกที่ต้องใช้ความรู้ จากโปรแกรมเมอร์เว็บของอัลกอริธึมการเรียงลำดับอย่างรวดเร็วแน่นอนว่าจะไม่มีอะไรผิดปกติกับความรู้นี้ แต่ไม่จำเป็นเลยสำหรับเขาในการทำงาน) ดังนั้นระบบการฝึกอบรมสำหรับโปรแกรมเมอร์จึงควรมีทั้งอาชีวศึกษาระดับมัธยมศึกษา (ที่พวกเขาสอนเรื่องเทคโนโลยีประยุกต์) และระบบการศึกษาระดับอุดมศึกษา (ซึ่งเหมาะสมที่จะหารือเกี่ยวกับความซับซ้อนของอัลกอริธึมการเรียงลำดับ) เช่นเดียวกับในหลายอุตสาหกรรม สำหรับ ตัวอย่างในด้านการแพทย์ (แพทย์ที่มีการศึกษาเฉพาะทางระดับมัธยมศึกษาดำเนินการตามขั้นตอนทางการแพทย์มาตรฐานและแพทย์ที่มีการศึกษาสูงรู้วิธีกำหนดการรักษาคือวิเคราะห์เหตุผลและตัดสินใจ) ใช่ มีสาขาวิชาเฉพาะที่เกี่ยวข้องกับการเขียนโปรแกรมในการศึกษาเฉพาะทางระดับมัธยมศึกษาและในระดับอุดมศึกษา แต่ระบบที่นี่ไม่ได้สร้างขึ้นเหมือนกับในระบบการศึกษาทางการแพทย์เดียวกัน และตามจริงแล้ว ฉันมีความคิดที่ไม่ดีเกี่ยวกับสิ่งที่เกิดขึ้นในอาชีวศึกษาระดับมัธยมศึกษาด้วยการเขียนโปรแกรมการสอน

การเปรียบเทียบอย่างหนึ่งที่ฉันชอบนำเสนอในที่นี้คือความก้าวหน้าในการเพิ่มจำนวนรถยนต์ ในตอนต้นและกลางศตวรรษที่ 20 ผู้ขับขี่รถยนต์ต้องรู้โครงสร้างของรถและทำการซ่อมเองที่ค่อนข้างซับซ้อน คนขับทุกคนต้องเป็นช่างเครื่องแน่ๆ ตอนนี้มีคนขับหลายคน อืม ถ้ามีเหมือนกัน
ความคิดเกี่ยวกับอุปกรณ์ของรถยนต์นั้นแน่นอนว่าพวกเขาไม่เคยซ่อมมันเลยเลือกที่จะทำการบำรุงรักษาทั้งหมดในบริการรถยนต์ มันดีหรือไม่ดี? ในความคิดของฉันนี้เป็นสิ่งที่หลีกเลี่ยงไม่ได้ ความกว้างของการจำหน่ายรถยนต์กลายเป็นเรื่องยากที่จะเรียกร้องทักษะในการซ่อมและความรู้ในเชิงลึกเกี่ยวกับอุปกรณ์ของรถยนต์จากผู้ขับขี่ทุกคน การใช้รถอย่างแพร่หลายย่อมนำไปสู่ความจริงที่ว่าผู้ขับขี่ส่วนใหญ่จะไม่มีความรู้เชิงลึกเกี่ยวกับโครงสร้างของรถอย่างหลีกเลี่ยงไม่ได้ และในทางกลับกันรถยนต์ก็สะดวกและเชื่อถือได้มากขึ้นดังนั้นจึงสามารถใช้งานได้โดยไม่ต้องใช้ทักษะพิเศษ

ในทำนองเดียวกันกับการเขียนโปรแกรม - การเขียนโปรแกรมกลายเป็นเรื่องธรรมดามากขึ้นและภาษาโปรแกรมเองก็สะดวกและเรียบง่ายยิ่งขึ้น ไม่ต้องสงสัยเลยว่าจำนวนโปรแกรมเมอร์เพิ่มขึ้นและจะเพิ่มขึ้นเรื่อยๆ (แม้ว่าจะยังขาดแคลนโปรแกรมเมอร์ที่มีคุณสมบัติเหมาะสมอยู่มากในอุตสาหกรรมนี้ก็ตาม) ในขณะที่ระดับความเข้าใจอย่างลึกซึ้งในสิ่งต่างๆ จะลดลง สิ่งนี้หลีกเลี่ยงไม่ได้ แต่นี่ไม่ใช่เหตุผลที่จะละทิ้งภาษาโปรแกรมระดับสูงสมัยใหม่ อย่างที่ไม่เคยเกิดขึ้นกับทุกคนที่จะละทิ้งรถยนต์สมัยใหม่เพียงเพราะว่าเชื่อถือได้และสะดวกกว่า และไม่ต้องการความรู้พิเศษเพื่อการใช้งานอย่างต่อเนื่อง .