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

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

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

ใหม่! รับรางวัล ข้อมูลวิทยาศาสตร์

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

  • แนวปฏิบัติการเขียนโปรแกรมสมัยใหม่ (การเขียนโปรแกรม Java) (CS 401)

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

  • การพัฒนาซอฟต์แวร์ขั้นสูง (CS 525)

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

  • อัลกอริทึม (CS 435)

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

  • เครือข่ายคอมพิวเตอร์ (CS 450)

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

  • ระบบการจัดการฐานข้อมูล (CS 422)

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

  • วิศวกรรมซอฟต์แวร์ (CS 425)

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

  • สถาปัตยกรรมและกรอบงานแอปพลิเคชันบนเว็บ (CS 545)

    หลักสูตรนี้มุ่งเน้นการใช้งานเว็บในการตั้งค่าองค์กร แอปพลิเคชั่นระดับองค์กรเป็นระบบซอฟต์แวร์ขนาดใหญ่ที่ออกแบบมาเพื่อทำงานในองค์กรขนาดใหญ่เช่น บริษัท หรือรัฐบาล แอปพลิเคชันระดับองค์กรมีความซับซ้อนปรับขนาดได้อิงตามส่วนประกอบกระจายและภารกิจที่สำคัญ หลักสูตรนี้ 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 หรือได้รับความเห็นชอบจากคณะวิชา

  • การเขียนโปรแกรมประยุกต์บนเว็บ (CS 472)

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

  • วิทยาศาสตร์และเทคโนโลยีของความมีสติสำหรับผู้เชี่ยวชาญด้านคอมพิวเตอร์ (สำหรับ 506)

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

  • ความเป็นผู้นำสำหรับผู้จัดการด้านเทคนิค (สำหรับ 506B)

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

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

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

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

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

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

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

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

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

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

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

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

    (หน่วย 2)

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

  • ภาษาการเขียนโปรแกรมขั้นสูง (CS 505)

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

  • Big Data (Data Science) (CS 522)

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

  • การวิเคราะห์ข้อมูลขนาดใหญ่ (วิทยาศาสตร์ข้อมูล) (CS 488)

    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) วิชาบังคับก่อน: ได้รับความเห็นชอบจากคณะวิชา

  • Big Data Technologies (วิทยาศาสตร์ข้อมูล) (CS 523)

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

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

  • ความปลอดภัยของคอมพิวเตอร์ (CS 466)

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

  • สถาปัตยกรรมองค์กร (CS 544)

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

  • การเรียนรู้ของเครื่อง (วิทยาศาสตร์ข้อมูล) (CS 582)

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

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

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

  • การเขียนโปรแกรมอุปกรณ์มือถือ (CS 473)

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

  • แอปพลิเคชั่นเว็บสมัยใหม่ (CS 572)

    ในหลักสูตรนี้คุณจะได้เรียนรู้สถาปัตยกรรมการเขียนโปรแกรมแบบตอบโต้ของ 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)

  • ระบบปฏิบัติการ (CS 465)

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

  • การเขียนโปรแกรมแบบขนาน (CS 471)

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

  • สถาปัตยกรรมซอฟต์แวร์ (CS 590)

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

  • ปฏิบัติการด้านการพัฒนาซอฟต์แวร์ (CS 575)

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

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

Edwin Bwambaleยูกันดา