คุณพร้อมหรือยัง พัฒนาอาชีพของคุณ?

โปรแกรมของเรามีความเชี่ยวชาญในด้านระบบซอฟต์แวร์และการพัฒนาซอฟต์แวร์โดยใช้ OOP (Java) และเว็บแอพพลิเคชั่นพร้อมกับหลักสูตรวิทยาศาสตร์ข้อมูลบางหลักสูตร พื้นที่หลักของการศึกษารวมถึงการพัฒนาซอฟต์แวร์ขั้นสูงการเขียนโปรแกรมและสถาปัตยกรรมเว็บแอปพลิเคชันหลักสูตรวิทยาศาสตร์ข้อมูลบางส่วนและพื้นที่การใช้งานที่สำคัญหลายอย่าง

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

หลักสูตรวิทยาศาสตร์ข้อมูล

หลักสูตรแกนกลางมาตรฐาน

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

    หัวข้อเหล่านี้มีความสำคัญเป็นพิเศษซึ่งเป็นข้อกำหนดเบื้องต้นสำหรับหลักสูตรในหลักสูตรบัณฑิตศึกษาสาขาวิทยาการคอมพิวเตอร์

    หัวข้อประกอบด้วย: องค์ประกอบของการเขียนโปรแกรม Java, การออกแบบและการนำไปใช้งานเชิงวัตถุ, โครงสร้างข้อมูล (รวมถึงรายการ, สแต็ก, คิว, ต้นไม้ค้นหาแบบไบนารี, ตารางแฮชและชุด) ลำดับชั้นของข้อยกเว้น, ไฟล์ i / o และสตรีมและ JDBC (4 หน่วยกิต) วิชาบังคับก่อน: สำหรับนักศึกษาระดับปริญญาตรี: CS 221; สำหรับนักศึกษาระดับบัณฑิตศึกษา: ได้รับความยินยอมจากคณะภาควิชา (4 หน่วย)

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

  • หลักสูตรนี้จะพิจารณาวิธีการและแนวทางปฏิบัติในปัจจุบันสำหรับการออกแบบระบบซอฟต์แวร์ที่ดี หัวข้อรวมถึง: รูปแบบการออกแบบซอฟต์แวร์, กรอบ, สถาปัตยกรรมและระบบการออกแบบเพื่อใช้ abstractions หลายระดับเหล่านี้ (หน่วยกิต 2-4) วิชาบังคับก่อน: CS 401 หรือได้รับความเห็นชอบจากคณะวิชา

  • หลักสูตรนี้นำเสนอวิธีการในการวิเคราะห์ประสิทธิภาพของอัลกอริธึม (รวมถึงการวิเคราะห์ตัวพิมพ์ที่แย่ที่สุดและปานกลาง) และแนะนำอัลกอริทึมที่รู้จักและมีประสิทธิภาพสูง การวิเคราะห์การออกแบบและการนำอัลกอริธึมมาใช้ให้ความสำคัญเท่าเทียมกัน หัวข้อรวมถึงการค้นหาและการเรียงลำดับประสิทธิภาพของการดำเนินการกับโครงสร้างข้อมูล (รวมถึงรายการแฮชเทเบิ้ลต้นไม้การค้นหาแบบไบนารีที่สมดุลคิวลำดับความสำคัญ) อัลกอริธึมกราฟอัลกอริธึม combinatorial อัลกอริธึมซ้ำ ช่วยให้ (หัวข้อพิเศษ ได้แก่ เรขาคณิตการคำนวณอัลกอริธึมสำหรับ cryptosystems การประมาณข้อมูลขนาดใหญ่และการคำนวณแบบขนาน)

  • หลักสูตรนี้เน้นการสอนหลักการและวิธีปฏิบัติที่ใช้เมื่อพัฒนาแอปพลิเคชันระดับองค์กรขนาดใหญ่ขึ้น เราจะตรวจสอบเลเยอร์สถาปัตยกรรมที่แตกต่างกันซึ่งใช้บ่อยและเทคโนโลยีต่าง ๆ ที่เกี่ยวข้องกับเลเยอร์เหล่านี้รวมถึง Object Relational Mapping (ORM), Dependency Injection (DI), Aspect Oriented Programming (AOP) และการรวมเข้ากับแอปพลิเคชันอื่น ๆ ผ่านเว็บเซอร์วิส และ SOAP) การส่งข้อความและการเรียกใช้เมธอดระยะไกล ต้องมีความรู้ในการทำงานของฐานข้อมูลเชิงสัมพันธ์และ SQL หากคุณไม่มีหลักสูตรที่แข็งแกร่งหรือมีความรู้ด้านการทำงานของ SQL ที่ดีคุณควรสมัคร CS422 DBMS ก่อนสมัคร EA (หน่วย 4)

  • วิศวกรรมซอฟต์แวร์เป็นหลักสูตรที่แนะนำให้นักเรียนรู้จักวิธีปฏิบัติที่ดีที่สุดในการพัฒนาซอฟต์แวร์ผ่านวิธีการพัฒนาซอฟต์แวร์ นักเรียนมีประสบการณ์ในหลักสูตรก่อนหน้านี้กับกระบวนทัศน์เชิงวัตถุและได้ใช้ไดอะแกรม UML พื้นฐานบางอย่างเพื่อวัตถุประสงค์ในการสร้างแบบจำลองความสัมพันธ์ระหว่างวัตถุซอฟต์แวร์ ในวิศวกรรมซอฟต์แวร์นักเรียนจะพัฒนาทักษะในการรวมเครื่องมือเหล่านี้เข้าด้วยกันเพื่อผลิตซอฟต์แวร์ที่ทนทานและบำรุงรักษาได้ง่าย วิธีการพัฒนาซอฟต์แวร์อธิบายว่าควรใช้แนวคิด OO และไดอะแกรม UML อย่างไรและเพื่อให้บรรลุเป้าหมายของการสร้างซอฟต์แวร์ที่มีคุณภาพ หลักสูตรจะเน้นไปที่โครงการขนาดเล็กซึ่งสามารถอธิบายและนำหลักการไปใช้ในรูปแบบการบรรยาย ในตอนท้ายของหลักสูตรนักเรียนจะมีแอปพลิเคชันที่ทำงานซึ่งสร้างขึ้นตามมาตรฐานขั้นสูงของวิธีการพัฒนา RUP (Rational Unified Process)

  • หลักสูตรนี้มุ่งเน้นการใช้งานเว็บในการตั้งค่าองค์กร แอปพลิเคชั่นระดับองค์กรเป็นระบบซอฟต์แวร์ขนาดใหญ่ที่ออกแบบมาเพื่อทำงานในองค์กรขนาดใหญ่เช่น บริษัท หรือรัฐบาล แอปพลิเคชันระดับองค์กรมีความซับซ้อนปรับขนาดได้อิงตามส่วนประกอบกระจายและภารกิจที่สำคัญ หลักสูตรนี้ CS545 เน้นที่ส่วนหน้าหรือเลเยอร์การนำเสนอของแอปพลิเคชันเว็บระดับองค์กร CS544 Enterprise Architecture เป็นหลักสูตรร่วมที่เน้นที่ส่วนหลังหรือชั้นธุรกิจรวมถึงตรรกะทางธุรกิจธุรกรรมและการคงอยู่ CS472, การเขียนโปรแกรมเว็บแอปพลิเคชันเป็นวิชาบังคับก่อนซึ่งครอบคลุม HTML, CSS, JavaScript, servlets และ JSP

    หลักสูตรนี้สอนหลักการและรูปแบบทั่วไปทั่วทั้งแพลตฟอร์มและกรอบงาน หลักสูตรนี้จะตรวจสอบและทำงานกับกรอบเว็บ Java ที่โดดเด่นสองรายการคือ Java Server Faces (JSF) และ SpringMVC JSF เป็นเฟรมเวิร์กที่ใช้คอมโพเนนต์และเป็นข้อกำหนดคุณสมบัติการนำเสนออย่างเป็นทางการสำหรับสแต็กเทคโนโลยี Java Enterprise Edition SpringMVC เป็นส่วนหนึ่งของ Core Spring Framework และได้กลายเป็น Java framework ที่ใช้กันอย่างแพร่หลายในช่วงไม่กี่ปีที่ผ่านมา (หน่วย 4) วิชาบังคับก่อน: CS 472 หรือได้รับความเห็นชอบจากคณะวิชา

  • หลักสูตรนี้ให้คำแนะนำอย่างเป็นระบบเกี่ยวกับการเขียนโปรแกรมเว็บแอปพลิเคชันแบบโต้ตอบและไดนามิก หลักสูตรนี้มีไว้สำหรับผู้ที่มีประสบการณ์การเขียนโปรแกรมเว็บแอปพลิเคชันมาก่อนเพียงเล็กน้อยหรือไม่มีเลย ข้อเสนอนี้จะใช้ Java servlets และ JSP สำหรับการประมวลผลฝั่งเซิร์ฟเวอร์ หลักสูตรนี้จะแนะนำ HTML และ CSS JavaScript เป็นจุดสำคัญของหลักสูตรและครอบคลุมเป็นภาษาการเขียนโปรแกรมที่ใช้งานได้ซึ่งรวมถึงเนมสเปซและโมดูล jQuery, Ajax และ JavaScript เป็นข้อกำหนดเบื้องต้นสำหรับสถาปัตยกรรมแอปพลิเคชันเว็บ CS545 ไม่ครอบคลุม AngularJS หรือ NodeJS แต่ JavaScript ที่กล่าวถึงนี้จะเตรียมให้คุณเรียนรู้เทคโนโลยีเหล่านั้น (4 ยูนิต)
    วิชาบังคับก่อน: CS 220 หรือ CS 401 หรือได้รับความเห็นชอบจากคณะวิชา

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

  • เป้าหมายของหลักสูตรนี้คือเพื่อให้นักเรียนมีความรู้และทักษะในการเป็นผู้นำรวมถึงทักษะการสื่อสารเพื่อเตรียมรับบทบาทความเป็นผู้นำในอนาคต

    ในตอนท้ายของหลักสูตรนี้นักเรียนจะเข้าใจคำตอบของคำถามสำคัญเกี่ยวกับการเป็นผู้นำที่มีประสิทธิภาพซึ่งรวมถึงต่อไปนี้:

    มีผู้นำที่เกิดจากธรรมชาติหรือไม่

    คุณต้องมีความสามารถพิเศษในการเป็นผู้นำได้อย่างมีประสิทธิภาพหรือไม่?

    เนื้อหาใดที่จำเป็นต้องมีเพื่อเป็นผู้นำ

    ความแตกต่างระหว่างการจัดการและการเป็นผู้นำคืออะไร?

    อะไรคือ 'ความรอบรู้' ที่จำเป็นในการเป็นผู้นำในยุคนี้?

    'การทุจริตต่อหน้าที่การจัดการ' คืออะไรและนำไปสู่การก่อวินาศกรรมด้วยตนเองอย่างไร?

    การรู้ว่าความคิดเห็นนั้นมีความสำคัญต่อกระบวนการนำเราจะเอาชนะความกลัวในการให้และรับได้อย่างไร

    แหล่งที่มาของ 80% ของปัญหาที่พบในที่ทำงานคืออะไร

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

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

    (หน่วย 2)

หลักสูตร MSCS เพิ่มเติม

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

  • การประมวลผลข้อมูลที่ทันสมัยถูกกำหนดโดยที่เก็บข้อมูลจำนวนมากที่ไม่สามารถจัดการได้โดยระบบฐานข้อมูลแบบดั้งเดิม หลักสูตรนี้ครอบคลุมเทคโนโลยีล่าสุดที่พัฒนาและใช้โดยผู้นำในอุตสาหกรรมเพื่อแก้ปัญหานี้อย่างมีประสิทธิภาพสูงสุด หัวข้อเฉพาะที่ครอบคลุมรวมถึงอัลกอริทึม MapReduce, รูปแบบการออกแบบอัลกอริทึม MapReduce, HDFS, สถาปัตยกรรมคลัสเตอร์ Hadoop, YARN, การคำนวณความถี่สัมพัทธ์, การเรียงลำดับรอง, การตระเวนเว็บ, ดัชนีอินเด็กซ์และการบีบอัดดัชนี, อัลกอริทึม Spark และ Scala (หน่วย 4) วิชาบังคับก่อน: อัลกอริทึม CS 435

  • Big Data เป็นทรัพยากรธรรมชาติใหม่: ข้อมูลเพิ่มขึ้นเป็นสองเท่าในทุก ๆ เดือน 12-18 หลักสูตร Big Data Analytics ใหม่นี้ครอบคลุมแนวคิดและเครื่องมือพื้นฐานสำหรับการขุดชุดข้อมูลที่มีขนาดใหญ่เพื่อสร้างความเข้าใจใหม่ คุณจะเชี่ยวชาญการใช้ภาษา R เพื่อสร้าง Wordcloud, Pagerank, การสร้างภาพข้อมูล, ต้นไม้การตัดสินใจ, การถดถอย, การจัดกลุ่ม, เครือข่ายประสาทและอื่น ๆ คุณจะทำงานกับชุดข้อมูลชุดใหญ่หลายล้านชุดและฟีด Twitter คุณจะได้เรียนรู้แนวคิด Hadoop / MapReduce และสตรีมมิ่งข้อมูลและจะสำรวจโครงการ Apache Big Data อื่น ๆ เช่น Spark, Flink, Kafka, Storm, Samza, NoSQL ผ่านเอกสารการวิจัยส่วนบุคคล คุณจะทำงานเป็นกลุ่มในโครงการเปิดจาก Kaggle.com เพื่อชิงเงินรางวัลโดยการแก้ปัญหาการวิเคราะห์ข้อมูลที่ดีที่สุด คุณจะได้เรียนรู้การใช้ IBM SPSS Modeler ซึ่งเป็นผู้นำอุตสาหกรรมและแพลตฟอร์มการขุดข้อมูลโอเพ่นซอร์ส ตำราเรียนที่ขายดี #1 ที่ใช้ในหลักสูตรนี้เขียนขึ้นโดยผู้สอนเอง หลักสูตรนี้จะใช้สื่อการฝึกอบรมวิดีโอที่หลากหลายจาก MIT, Coursera, Google และที่อื่น ๆ (หน่วย 4) วิชาบังคับก่อน: ได้รับความเห็นชอบจากคณะวิชา

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

    จุดมุ่งหมายของหลักสูตรนี้คือการเพิ่มเครื่องมือที่สำคัญบางอย่างในคลังแสงของคุณเพื่อช่วยคุณแก้ปัญหาข้อมูลขนาดใหญ่ต่างๆ เราจะเริ่มต้นด้วยการตอบคำถามเช่น“ Big Data คืออะไร? ทำไมจึงสำคัญหรือมีประโยชน์? คุณจัดเก็บข้อมูลขนาดใหญ่นี้อย่างไร” จากนั้นเราจะศึกษาเครื่องมือและโมเดลการเขียนโปรแกรมต่างๆจากสแต็กเทคโนโลยีข้อมูลขนาดใหญ่ซึ่งจะช่วยให้เราวิเคราะห์ข้อมูลได้ หัวข้อ ได้แก่ โครงการบางส่วนในระบบนิเวศ Hadoop เช่น MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper และ Apache Spark นอกจากนี้เราจะกล่าวถึงการแนะนำ AWS และ EMR คุณจะทำงานกับการกระจาย Hadoop โหนดเดียวของ Cloudera เป็นหลัก (4 หน่วย) (ไม่มีข้อกำหนดเบื้องต้น)

  • ระบบฐานข้อมูลจัดระเบียบและดึงข้อมูลช่วยให้ผู้ใช้สามารถเข้าถึงข้อมูลที่ต้องการได้อย่างง่ายดายและมีประสิทธิภาพ หัวข้อรวมถึง: แบบจำลองข้อมูลเชิงสัมพันธ์; SQL; การสร้างแบบจำลอง ER; พีชคณิตเชิงสัมพันธ์ การทำข้อมูลให้เป็นมาตรฐาน การทำธุรกรรม วัตถุในฐานข้อมูล ความปลอดภัยและความสมบูรณ์ของข้อมูล คลังข้อมูล OLAP และการขุดข้อมูล ฐานข้อมูลแบบกระจาย และศึกษาระบบฐานข้อมูลเชิงพาณิชย์ที่เฉพาะเจาะจง (หน่วย 4) วิชาบังคับก่อน: CS 401 หรือได้รับความเห็นชอบจากคณะวิชา

  • แมชชีนเลิร์นนิง (ไม่ได้รับการสอนในฤดูใบไม้ผลิปี 2021 ตรวจสอบความพร้อมใช้งาน) สาขาวิชาที่ช่วยให้คอมพิวเตอร์สามารถเรียนรู้จากข้อมูลเป็นหัวใจสำคัญของระเบียบวินัยทางวิทยาศาสตร์เกือบทุกประเภทและการศึกษาลักษณะทั่วไป (นั่นคือการทำนาย) จาก ข้อมูลเป็นหัวข้อหลักของการเรียนรู้ของเครื่อง หลักสูตรนี้ให้การแนะนำระดับบัณฑิตศึกษาเกี่ยวกับการเรียนรู้ของเครื่องและการครอบคลุมเชิงลึกของวิธีการใหม่และขั้นสูงในการเรียนรู้ของเครื่องตลอดจนทฤษฎีพื้นฐาน เน้นแนวทางที่มีความเกี่ยวข้องในทางปฏิบัติและกล่าวถึงแอปพลิเคชั่นล่าสุดของการเรียนรู้ของเครื่องเช่นการขุดข้อมูล (ใน Big Data / Data Science, การวิเคราะห์ข้อมูล), การประมวลผลภาษาธรรมชาติ, คอมพิวเตอร์วิชั่น, หุ่นยนต์, ชีวสารสนเทศและการประมวลผลข้อมูลข้อความและเว็บ Machine Learning ใช้ในอุตสาหกรรมต่างๆเช่นบริการทางการเงินน้ำมันและก๊าซการดูแลสุขภาพการตลาดและการโฆษณารัฐบาลอินเทอร์เน็ตและอินเทอร์เน็ตของสรรพสิ่ง

    หลักสูตรนี้ครอบคลุมกระบวนทัศน์การเรียนรู้อัลกอริธึมผลทางทฤษฎีและการประยุกต์ใช้ที่หลากหลาย โดยใช้แนวคิดพื้นฐานจากปัญญาประดิษฐ์ทฤษฎีข้อมูลสถิติและทฤษฎีการควบคุมตราบเท่าที่เกี่ยวข้องกับการเรียนรู้ของเครื่อง หัวข้อประกอบด้วย: การเรียนรู้ภายใต้การดูแล (การเรียนรู้แบบกำเนิด / การแยกแยะ, การเรียนรู้แบบพาราเมตริก / ไม่ใช่พารามิเตอร์, เครือข่ายประสาทเทียม, เครื่องเวกเตอร์ที่สนับสนุน, แผนผังการตัดสินใจ, การเรียนรู้แบบเบย์และการเพิ่มประสิทธิภาพ); การเรียนรู้ที่ไม่ได้รับการดูแล (การจัดกลุ่มการลดมิติข้อมูลวิธีการเคอร์เนล) ทฤษฎีการเรียนรู้ (การแลกเปลี่ยนอคติ / ความแปรปรวนทฤษฎี VC ขอบขนาดใหญ่); การเรียนรู้แบบเสริมกำลังและการควบคุมแบบปรับตัว หัวข้ออื่น ๆ ได้แก่ HMM (Hidden Markov Model), Evolutionary Computing, Deep Learning (With Neural Nets) และการออกแบบอัลกอริทึมที่สามารถวิเคราะห์ประสิทธิภาพอย่างเข้มงวดสำหรับปัญหาพื้นฐานของการเรียนรู้ของเครื่อง

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

  • ความสำคัญของการเขียนโปรแกรมอุปกรณ์มือถือเกิดขึ้นในช่วงไม่กี่ปีที่ผ่านมาในฐานะโดเมนใหม่ในการพัฒนาซอฟต์แวร์ หลักสูตรนี้เตรียมนักเรียนเพื่อพัฒนาแอปพลิเคชั่นที่ทำงานบนอุปกรณ์พกพาเช่น IPhone, IPad หรือโทรศัพท์ Android นี่คือตลาดที่กำลังพัฒนาอย่างรวดเร็ว หลักสูตรเน้นการติดตั้งพัฒนาทดสอบและจำหน่ายแอปพลิเคชั่นมือถือ ในตอนท้ายของหลักสูตรนี้นักเรียนสามารถพัฒนาแอพสำหรับแพลตฟอร์มที่ครอบคลุมจำลองการทดสอบบนอุปกรณ์จริงและเผยแพร่ในที่สุดใน app store เพื่อให้พร้อมใช้งานกับผู้ใช้ (หน่วย 4) วิชาบังคับก่อน: CS472 หรือได้รับความเห็นชอบจากคณะวิชา

  • ในหลักสูตรนี้คุณจะได้เรียนรู้สถาปัตยกรรมการเขียนโปรแกรมแบบตอบโต้ของ SPA (เว็บแอปพลิเคชันหน้าเดียว) พร้อมกับทักษะที่จำเป็นทั้งหมดเพื่อสร้างเว็บแอปพลิเคชันสมัยใหม่ เทคโนโลยีรวมถึง: NodeJS, ExpressJS, TypeScript, AngularJS2, ฐานข้อมูล Firebase และ NoSQL (MongoDB) หลักสูตรจะครอบคลุม:

    • กลไก C ++ V8 และโค้ดอะซิงโครนัสทำงานอย่างไรในโหนดและวนรอบเหตุการณ์โหนด
    • วิธีจัดโครงสร้างโค้ดของคุณเพื่อนำมาใช้ใหม่และสร้าง Restful API โดยใช้โมดูลและ ExpressJS
    • วิธีที่ฐานข้อมูล NoSQL ทำงาน: Mongo Shell, กรอบงานการรวม, ชุดจำลอง, การทำคลัสเตอร์, Shards, Mongoose ORM
    • ความเข้าใจอย่างลึกซึ้งเกี่ยวกับวิธีการทำงานของ Angular (สนับสนุนโดย Google), การตรวจจับการเปลี่ยนแปลง, การเขียนโปรแกรมปฏิกิริยา RxJs ด้วย Observables และหัวเรื่อง, Shadow DOM, โซน, โมดูลและส่วนประกอบ, คำสั่งและท่อที่กำหนดเอง, บริการและพึ่งพาการฉีดคอมโพสิต JIT และ AOF , ฟอร์ม (การขับเคลื่อนเทมเพลตและการขับเคลื่อนข้อมูล), การเชื่อมโยงข้อมูล, การกำหนดเส้นทาง, ฝาครอบและการป้องกันเส้นทาง, ไคลเอนต์ HTTP, การตรวจสอบสิทธิ์โทเค็นเว็บ JWT JSON

    (หน่วย 4)

  • โปรเซสเซอร์มาตรฐานสำหรับคอมพิวเตอร์ใหม่ทุกเครื่องปัจจุบันเป็นโปรเซสเซอร์แบบมัลติคอร์ซึ่งมีศักยภาพในการรันโปรแกรมได้รวดเร็วยิ่งขึ้น อย่างไรก็ตามเพื่อใช้ศักยภาพนี้โปรแกรมเมอร์ต้องมีความรู้เกี่ยวกับเทคนิคการเขียนโปรแกรมแบบขนาน ระหว่างหลักสูตรนี้นักเรียนจะใช้เวลาส่วนใหญ่เขียนและดีบักโปรแกรมแบบขนาน ผลลัพธ์ที่คาดหวังคือการพัฒนาทักษะการเขียนโปรแกรมในระดับใหม่ ทักษะนี้ไม่เพียง แต่จะมีประโยชน์สำหรับการเขียนโปรแกรมของโปรเซสเซอร์แบบมัลติคอร์ แต่ยังรวมถึงการเขียนโปรแกรมระบบปฏิบัติการและการเขียนโปรแกรมฐานข้อมูลแบบกระจาย เครื่องมือซอฟต์แวร์ที่ใช้ในระหว่างหลักสูตรนี้ประกอบด้วย Microsoft Visual C / C ++, ไลบรารี Java multithreading และมาตรฐานเธรด OpenMP (หน่วย 4) สิ่งที่ต้องมีก่อน: ความรู้เกี่ยวกับการเขียนโปรแกรมคอมพิวเตอร์โดยใช้ Java, C หรือ C ++

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

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

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