From 77f85800f3dd5d04797c94d9ca199488bb14f855 Mon Sep 17 00:00:00 2001 From: William Billingsley <wbillingsley@cantab.net> Date: Sun, 16 Jul 2023 16:03:29 +1000 Subject: [PATCH] Created minimal site --- courses.js | 629 ++++++++++++++++++++++++++++++++ home.js | 59 +++ index.html | 37 ++ units.js | 1019 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1744 insertions(+) create mode 100644 courses.js create mode 100644 home.js create mode 100644 index.html create mode 100644 units.js diff --git a/courses.js b/courses.js new file mode 100644 index 0000000..202148b --- /dev/null +++ b/courses.js @@ -0,0 +1,629 @@ +"use strict"; + +console.log("Loading courses") + +// Sets a function that can link to the Handbook for a course. +// If this isn't set, the "Link to handbook" will not be shown on course pages +setHandbookUrl((code) => `https://handbook.une.edu.au/courses/2022/${code}?year=2022`) + +addCourses([ + + { + code: "BCOMP(2024)", + name: "Bachelor of Computer Science 2024 draft", + structure: [ + + { + name: "Core CS", + units: [ + "AMTH140", "COSC110", "COSC120", "COSC130", + "COSC210", "COSC220", "COSC230", "COSC240", + "COSC310", "COSC320" + ] + }, + + { + name: "Software Development major", + units: [ + or("MTHS120", "STAT100"), + choose(6, "COSC101", "COSC250", "COSC260", "COSC330", "COSC340", "COSC350", "COSC360", "COSC370", "COSC484") + ] + }, + { + name: "Data Science major", + units: [ + "MTHS120", "STAT100", "STAT210", + choose(1, "COSC102", "MTHS130", "MATH260", "COSC250"), + choose(3, "COSC330", "COSC350", "COSC380", "STAT320", "STAT330") + ] + }, + + { + name: "Cybersecurity major", + units: [ + "STAT100", + choose(1, "COSC101", "COSC102", "MTHS120"), + "COSC340", "COSC350", "COSC372", + choose(2, "COSC481", "COSC482", "COSC483", "COSC484") + ] + }, + + { + name: "Artificial Intelligence major", + units: [ + "MTHS120", "STAT100", + choose(2, "COSC102", "COSC250", "MATH260"), + choose(3, "COSC331", "COSC350", "COSC351", "COSC352", "COSC380", "COSC483") + ] + }, + + { + name: "Preparatory Minor", + units: [ + choose(4, "MTHS100", "MTHS110", "ICT100", "ICT101", "MM105") + ] + }, + + { + name: "Computational Science Minor", + units: [ + choose(4, "MTHS120", "MTHS130", "AMTH250", "MATH260", "SCI310") + ] + }, + + + { + name: "Elective space (or second major / minors)", + units: [ + "Elective", "Elective", "Elective", "Elective", "Elective", "Elective", "Elective" + ] + }, + + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC101", "COSC110", "MTHS120", or("ICT101", "Elective") ] }, + { name: "Y1 Trimester 2", units: [ "AMTH140", "COSC102", "COSC120", or("STAT100", "MTHS130") ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", or("COSC250", "Elective"), "Elective" ] }, + { name: "Y2 Trimester 2", units: [ "COSC220", "COSC240", or("COSC260", "Elective"), "Elective" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", choose(3, "COSC340", "COSC370", "Elective", "Elective") ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", choose(3, "COSC330", "COSC350", "COSC360", "Elective") ] }, + ] + } + }, + + { + code: "DIT", + name: "Diploma in Information Technology", + structure: [ + { + name: "Core", + units: [ "ICT101", "COSC110", "COSC130", or("ICT100", "COSC120"), or("COSC101", "COSC102") ] + }, + { + name: "Listed", + units: [ choose(3, "AMTH140", "AMTH250", "MTHS100", "MTHS120", "STAT100", "STAT210", "SCI210", + "COSC101", "COSC102", + "COSC210", "COSC220", "COSC230", "COSC240", "COSC250", "COSC260", + "MM105") ] + } + ], + plans: { + "Full-time, T3 start": [ + { name: "Y1 Trimester 3", units: [ "ICT100", "ICT101" ] }, + { name: "Y1 Trimester 1", units: [ "COSC110", "MTHS110", "COSC101" ] }, + { name: "Y1 Trimester 2", units: [ "AMTH140", "STAT100", "COSC102" ] }, + ] + } + }, + + + { + code: "BCOMP(SD)", + name: "Bachelor of Computer Science (Software Development)", + structure: [ + { + name: "Core", + units: [ + "AMTH140", "MTHS120", or("MTHS130", "STAT100"), + "COSC110", + or("COSC101", "COSC102"), "COSC120", + "COSC210", "COSC220", "COSC230", "COSC240", + "COSC310", "COSC320" + ] + }, + + { + name: "Software Development major", + units: [ + choose(5, "COSC250", "COSC260", "COSC330", "COSC340", "COSC350", "COSC360", "COSC370") + ] + }, + + { + name: "Listed & Elective", + units: [ + choose(5, + "ICT100", "ICT101", "COSC301", "COSC372", "COSC380", + "Listed elective", "Listed elective", "Listed elective", "Listed elective", "Listed elective" + ), + "Elective", "Elective" + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC101", "COSC110", "MTHS120", "Elective" ] }, + { name: "Y1 Trimester 2", units: [ "AMTH140", "COSC102", "COSC120", or("STAT100", "MTHS130") ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "COSC250", "Elective" ] }, + { name: "Y2 Trimester 2", units: [ "COSC220", "COSC240", "COSC260", "Listed Elective" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", "COSC340", "COSC370", "Listed Elective" ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", "COSC330", "COSC350", "COSC360" ] }, + ] + } + }, + + { + code: "BCOMP single major sd (ACS diagram)", + name: "Bachelor of Computer Science", + structure: [ + { + name: "Core", + units: [ + "AMTH140", "MTHS120", or("MTHS130", "STAT100"), + "COSC110", + or("COSC101", "COSC102"), "COSC120", + "COSC210", "COSC220", "COSC230", "COSC240", + "COSC310", "COSC320" + ] + }, + + { + name: "Major", + units: [ + choose(5, "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed", "Prescribed") + ] + }, + + { + name: "Listed & Elective", + units: [ + choose(5, + "Listed", "Listed", "Listed", "Listed", "Listed", + ), + choose(2, + "Elective", "Elective" + ) + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ or("COSC101", "Elective"), "COSC110", "MTHS120", "Elective", ] }, + { name: "Y1 Trimester 2", units: [ or("COSC102", "Elective"), "AMTH140", "COSC120", or("STAT100", "MTHS130"), ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "Listed", "Listed" ] }, + { name: "Y2 Trimester 2", units: [ "COSC240", "COSC220", "Prescribed", "Listed" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", "Prescribed 300-level", "Prescribed 300-level", "Listed" ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", "Prescribed 300-level", "Prescribed 300-level", "Listed", ] }, + ] + } + }, + + + { + code: "BCOMP single major (ACS diagram)", + name: "Bachelor of Computer Science", + structure: [ + { + name: "Core", + units: [ + "AMTH140", "MTHS120", or("MTHS130", "STAT100"), + "COSC110", + or("COSC101", "COSC102"), "COSC120", + "COSC210", "COSC220", "COSC230", "COSC240", + "COSC310", "COSC320" + ] + }, + + { + name: "Major", + units: [ + choose(5, "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed", "Prescribed") + ] + }, + + { + name: "Listed & Elective", + units: [ + choose(5, + "Listed", "Listed", "Listed", "Listed", "Listed 300-level COSC", + ), + choose(2, + "Elective", "Elective" + ) + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ or("COSC101", "Elective"), "COSC110", "MTHS120", "Elective", ] }, + { name: "Y1 Trimester 2", units: [ or("COSC102", "Elective"), "AMTH140", "COSC120", or("STAT100", "MTHS130"), ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "Listed", "Listed" ] }, + { name: "Y2 Trimester 2", units: [ "COSC240", "COSC220", "Prescribed", "Listed" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", "Prescribed 300-level", "Prescribed", "Listed" ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", "Prescribed 300-level", "Prescribed 300-level", "Listed 300-level COSC", ] }, + ] + } + }, + + { + code: "BCOMP(DS)", + name: "Bachelor of Computer Science (Data Science)", + structure: [ + { + name: "Core", + units: [ + "AMTH140", "MTHS120", "STAT100", + "COSC110", + or("COSC101", "COSC102"), "COSC120", + "COSC210", "COSC220", "COSC230", "COSC240", + "COSC310", "COSC320" + ] + }, + + { + name: "Data Science major", + units: [ + choose(5, "STAT210", "STAT330", "COSC250", "COSC330", "COSC350", "COSC380") + ] + }, + + { + name: "Listed & Elective", + units: [ + choose(5, + "ICT100", "ICT101", "COSC260", "COSC301", "COSC340", "COSC360", "COSC370", "COSC372", + "Listed elective", "Listed elective", "Listed elective", "Listed elective", "Listed elective" + ), + "Elective", "Elective" + ] + } + + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC101", "COSC110", "MTHS120", "Elective" ] }, + { name: "Y1 Trimester 2", units: [ "AMTH140", "COSC102", "COSC120", "STAT100" ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "COSC250", "STAT210" ] }, + { name: "Y2 Trimester 2", units: [ "COSC220", "COSC240", "Listed Elective", "Elective" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", "STAT330", "Listed Elective", "Listed Elective" ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", "COSC330", "COSC350", "COSC380" ] }, + ] + } + }, + + { + code: "BCOMP(dbl)", + name: "Bachelor of Computer Science (Software Development & Data Science)", + structure: [ + { + name: "Core", + units: [ + "AMTH140", "MTHS120", "STAT100", + "COSC110", + or("COSC101", "COSC102"), "COSC120", + "COSC210", "COSC220", "COSC230", "COSC240", + "COSC310", "COSC320" + ] + }, + + { + name: "Data Science major", + units: [ + "STAT210", "STAT330", "COSC250", "COSC350", "COSC380" + ] + }, + + { + name: "Software Development major", + units: [ + "COSC260", "COSC330", "COSC340", "COSC360", "COSC370" + ] + }, + + { + name: "Listed & Elective", + units: [ + "Elective", "Elective" + ] + } + + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC110", "MTHS120", "Elective", or("COSC101", "Elective") ] }, + { name: "Y1 Trimester 2", units: [ "AMTH140", "COSC120", "STAT100", or("COSC102", "Elective") ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "COSC250", "STAT210" ] }, + { name: "Y2 Trimester 2", units: [ "COSC220", "COSC240", "COSC260", "COSC350" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", "COSC340", "COSC370", "STAT330" ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", "COSC330", "COSC360", "COSC380" ] }, + ] + } + }, + + { + code: "BCSLAW", + name: "Bachelor of Computer Science / Bacherlor of Laws", + structure: [ + { + name: "Computer Science Core", + units: [ + "AMTH140", + "COSC101", "COSC110", "COSC120", "COSC210", "COSC220", "COSC230", "COSC240", "COSC310", "COSC320", + or("MTHS120", "STAT100") + ] + }, + { + name: "Computer Science Listed", + units: [ + choose(5, "COSC250", "COSC260", "COSC301", "COSC330", "COSC340", "COSC350", "COSC360", "COSC370", "COSC380", "STAT210", "STAT330") + ] + }, + { + name: "Law component", + units: [ + "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", + "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", "Law unit", + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC110", "COSC101", "Law unit", "Law unit" ] }, + { name: "Y1 Trimester 2", units: [ "AMTH140", "COSC120", "Law unit", or("MTHS120", "STAT100") ] }, + { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "Law unit", choose(1, "COSC250", "STAT210") ] }, + { name: "Y2 Trimester 2", units: [ "COSC220", "COSC240", "Law unit", "COSC260" ] }, + { name: "Y3 Trimester 1", units: [ "COSC310", "Law unit", choose(2, "COSC340", "COSC370", "STAT330") ] }, + { name: "Y3 Trimester 2", units: [ "COSC320", "Law unit", "Law unit", choose(1, "COSC330", "COSC350", "COSC360", "COSC380") ] }, + { name: "Y4 Trimester 1", units: [ "Law unit", "Law unit", "Law unit", "Law unit", ] }, + { name: "Y4 Trimester 2", units: [ "Law unit", "Law unit", "Law unit", "Law unit", ] }, + { name: "Y5 Trimester 1", units: [ "Law unit", "Law unit", "Law unit", "Law unit", ] }, + { name: "Y5 Trimester 2", units: [ "Law unit", "Law unit", "Law unit", "Law unit", ] }, + ] + } + }, + + + { + code: "MIT", + name: "Master of Information Technology", + structure: [ + { + name: "Core", + units: [ + "COSC101", "COSC110", "COSC120", "COSC210", "COSC220", "COSC260", "COSC510", "COSC560", "COSC570" + ] + }, + { + name: "Research and Capstone", + units: [ + "COSC594", "COSC595" + ] + }, + { + name: "Listed group 1", + units: [ + choose(3, "COSC530", "COSC540", "COSC550", "COSC572") + ] + }, + { + name: "Listed group 2", + units: [ + choose(2, + "AMTH250", "COSC240", "COSC250", "SCI410", + "COSC530", "COSC540", "COSC550", "COSC572", "Listed elective", "Listed elective" + ) + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC101", "COSC110", "COSC120", "COSC210" ] }, + { name: "Y1 Trimester 2", units: [ "COSC220", "COSC260", "COSC572", "Listed elective" ] }, + { name: "Y2 Trimester 1", units: [ "COSC510", "COSC540", "COSC570", "COSC594" ] }, + { name: "Y2 Trimester 2", units: [ "COSC240", "COSC550", "COSC560", "COSC595" ] }, + ] + } + }, + + { + code: "MDSC", + name: "Master of Data Science", + structure: [ + { + name: "Core", + units: [ + "COSC110", "COSC210", "COSC510", "COSC550", "COSC572", "COSC580", "MTHS120", "SCI410", + "STAT100", or("STAT210", "STAT410"), "STAT430" + ] + }, + { + name: "Research and Capstone", + units: [ + "COSC591", "SCI501" + ] + }, + { + name: "Listed units", + units: [ + choose(3, "AMTH250", "COSC230", "COSC250", "COSC240", "COSC260", "COSC530", "COSC540", "COSC560", "COSC570", "STAT420", + "Listed elective", "Listed elective", "Listed elective") + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC110", "COSC210", "COSC510", "SCI410" ] }, + { name: "Y1 Trimester 2", units: [ "STAT100", "MTHS120", "COSC572", "Listed elective" ] }, + { name: "Y2 Trimester 1", units: [ "STAT210", "STAT430", "Listed elective", "Listed elective" ] }, + { name: "Y2 Trimester 2", units: [ "COSC550", "COSC580", "SCI501", "COSC591" ] }, + ] + } + }, + + { + code: "MDSC", + name: "Master of Data Science", + structure: [ + { + name: "Core", + units: [ + "COSC110", "COSC210", "COSC510", "COSC550", "COSC572", "COSC580", "MTHS120", "SCI410", + "STAT100", or("STAT210", "STAT410"), "STAT430" + ] + }, + { + name: "Research and Capstone", + units: [ + "COSC591", "SCI501" + ] + }, + { + name: "Listed units", + units: [ + choose(3, "Listed 500-level", "Listed 500-level", "Listed") + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "SCI410", "COSC110", "COSC210", "COSC510", ] }, + { name: "Y1 Trimester 2", units: [ "MTHS120", "COSC572", "STAT100", "Listed" ] }, + { name: "Y2 Trimester 1", units: [ or("STAT210", "STAT410"), "STAT430", "Listed 500-level", "Listed 500-level" ] }, + { name: "Y2 Trimester 2", units: ["COSC591", "SCI501", "COSC580", "COSC550", ] }, + ] + } + }, + + + { + code: "MIT(ACS diagram)", + name: "Master of Information Technology", + structure: [ + { + name: "Core", + units: [ + "COSC101", "COSC110", "COSC120", "COSC210", "COSC220", "COSC260", "COSC510", "COSC560", "COSC570" + ] + }, + { + name: "Research and Capstone", + units: [ + "COSC594", "COSC595" + ] + }, + { + name: "Listed group 1", + units: [ + choose(3, "COSC530", "COSC540", "COSC550", "COSC572") + ] + }, + { + name: "Listed group 2", + units: [ + choose(2, + "AMTH250", "COSC240", "COSC250", "SCI410", + "COSC530", "COSC540", "COSC550", "COSC572", "Listed elective", "Listed elective" + ) + ] + } + ], + plans: { + "Full-time, T1 start": [ + { name: "Y1 Trimester 1", units: [ "COSC101", "COSC110", "COSC120", "COSC210" ] }, + { name: "Y1 Trimester 2", units: [ "COSC220", "COSC260", "Listed Group 1", "Listed Group 2" ] }, + { name: "Y2 Trimester 1", units: [ "COSC510", "Listed Group 1", "COSC570", "COSC594",] }, + { name: "Y2 Trimester 2", units: [ "COSC560", "Listed Group 2", "Listed Group 1", "COSC595",] }, + ] + } + }, + + + +]) + +// Top 3 for BCOMP +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Ethics, ["COSC110", "COSC310", "COSC320"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.ProfExpectations, ["COSC110", "COSC220", "COSC320"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Teamwork, ["COSC101", "COSC102", "COSC220", "COSC320"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Communication, ["COSC101", "COSC102", "COSC220", "COSC320"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Societal, ["COSC110", "COSC210", "COSC240"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Understanding, ["COSC110", "COSC220", "COSC240"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.ProblemSolving, ["COSC101", "COSC102", "COSC220", "COSC320"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Fundamentals, ["COSC110", "COSC230", "COSC240"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Data, ["COSC210", "COSC220", "STAT100"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Networking, ["COSC210", "COSC220", "COSC240"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.HumanFactors, ["COSC101", "COSC102", "COSC220"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Programming, ["COSC110", "COSC120", "COSC230"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Systems, ["COSC210", "COSC220", "COSC310"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Governance, ["COSC310"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.ProjectManagement, ["COSC220", "COSC310", "COSC320"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.ServiceManagement, ["COSC220"]) +limitCBOK([ "BCOMP(SD)", "BCOMP(DS)", "BCOMP(dbl)", "BCSLAW" ], cbok.Cybersecurity, ["AMTH140", "COSC210", "COSC240"]) + +// Top 3 for MIT +limitCBOK([ "MIT" ], cbok.Ethics, ["COSC110", "COSC510", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.ProfExpectations, ["COSC110", "COSC220", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.Teamwork, ["COSC101", "COSC220", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.Communication, ["COSC220", "COSC570", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.Societal, ["COSC110", "COSC210", "COSC570"]) +limitCBOK([ "MIT" ], cbok.Understanding, ["COSC110", "COSC220", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.ProblemSolving, ["COSC101", "COSC102", "COSC220", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.Fundamentals, ["COSC110" ]) +limitCBOK([ "MIT" ], cbok.Data, ["COSC210", "COSC220", "STAT100"]) +limitCBOK([ "MIT" ], cbok.Networking, ["COSC210", "COSC260", "COSC560"]) +limitCBOK([ "MIT" ], cbok.HumanFactors, ["COSC101", "COSC510", "COSC570"]) +limitCBOK([ "MIT" ], cbok.Programming, ["COSC110", "COSC120", "COSC560"]) +limitCBOK([ "MIT" ], cbok.Systems, ["COSC210", "COSC220", "COSC510"]) +limitCBOK([ "MIT" ], cbok.Governance, ["COSC510"]) +limitCBOK([ "MIT" ], cbok.ProjectManagement, ["COSC220", "COSC510", "COSC594", "COSC595"]) +limitCBOK([ "MIT" ], cbok.ServiceManagement, ["COSC220"]) +limitCBOK([ "MIT" ], cbok.Cybersecurity, ["COSC210", "COSC260", "COSC560"]) + +// Top 3 for MIT +limitCBOK([ "MDSC" ], cbok.Ethics, ["COSC110", "COSC510", "COSC591"]) +limitCBOK([ "MDSC" ], cbok.ProfExpectations, ["COSC110", "COSC510", "COSC591" ]) +limitCBOK([ "MDSC" ], cbok.Teamwork, ["COSC110", "COSC510", "COSC591", "SCI501"]) +limitCBOK([ "MDSC" ], cbok.Communication, ["COSC110", "COSC510", "COSC591"]) +limitCBOK([ "MDSC" ], cbok.Societal, ["COSC110", "COSC210", "COSC572"]) +limitCBOK([ "MDSC" ], cbok.Understanding, ["COSC110", "COSC572", "COSC591"]) +limitCBOK([ "MDSC" ], cbok.ProblemSolving, [ "COSC210", "COSC550", "COSC591", "SCI501"]) +limitCBOK([ "MDSC" ], cbok.Fundamentals, ["COSC110" ]) +limitCBOK([ "MDSC" ], cbok.Data, ["COSC210", "COSC572", "STAT430"]) +limitCBOK([ "MDSC" ], cbok.Networking, ["COSC210", "COSC572"]) +limitCBOK([ "MDSC" ], cbok.HumanFactors, ["COSC101", "COSC510", "COSC572"]) +limitCBOK([ "MDSC" ], cbok.Programming, ["COSC110", "COSC580", "SCI410"]) +limitCBOK([ "MDSC" ], cbok.Systems, ["COSC210", "COSC572", "COSC510"]) +limitCBOK([ "MDSC" ], cbok.Governance, ["COSC510"]) +limitCBOK([ "MDSC" ], cbok.ProjectManagement, ["COSC510", "COSC591", "COSC572"]) +limitCBOK([ "MDSC" ], cbok.ServiceManagement, ["COSC572"]) +limitCBOK([ "MDSC" ], cbok.Cybersecurity, ["COSC210", "COSC572" ]) + +// limits for the DIT, though these are moot (not accredited) +limitCBOK([ "DIT" ], cbok.Ethics, [ "ICT100", "COSC110", "COSC220"]) +limitCBOK([ "DIT" ], cbok.ProfExpectations, [ "COSC110", "COSC220"]) +limitCBOK([ "DIT" ], cbok.Teamwork, [ "COSC110", "COSC101", "COSC102", "COSC220"]) +limitCBOK([ "DIT" ], cbok.Communication, [ "COSC101", "COSC102", "MM105"]) +limitCBOK([ "DIT" ], cbok.Societal, ["ICT100", "COSC110", "COSC210"]) +limitCBOK([ "DIT" ], cbok.Understanding, [ "ICT101", "COSC110", "COSC220"]) +limitCBOK([ "DIT" ], cbok.ProblemSolving, [ "ICT100", "COSC120", "COSC101", "COSC102"]) +limitCBOK([ "DIT" ], cbok.Fundamentals, ["ICT101", "COSC110", "COSC240"]) +limitCBOK([ "DIT" ], cbok.Data, [ "ICT101", "COSC102", "COSC210"]) +limitCBOK([ "DIT" ], cbok.Networking, [ "COSC101", "COSC210", "COSC240"]) +limitCBOK([ "DIT" ], cbok.HumanFactors, ["COSC101", "COSC102", "ICT100"]) +limitCBOK([ "DIT" ], cbok.Programming, ["ICT100", "COSC110", "COSC120" ]) +limitCBOK([ "DIT" ], cbok.Systems, ["COSC210", "COSC220", "COSC260"]) +limitCBOK([ "DIT" ], cbok.Governance, [ "ICT100 "]) +limitCBOK([ "DIT" ], cbok.ProjectManagement, ["COSC220" ]) +limitCBOK([ "DIT" ], cbok.ServiceManagement, ["COSC220"]) +limitCBOK([ "DIT" ], cbok.Cybersecurity, ["COSC210", "COSC240", "COSC260"]) diff --git a/home.js b/home.js new file mode 100644 index 0000000..0155fa9 --- /dev/null +++ b/home.js @@ -0,0 +1,59 @@ +/** + * This contains the Markdown text for the homepage. + * + * It's done as a js file rather than raw md so that it will still work if loaded from a file:// url + * (If index.html is loaded from file:// then Chrome will regard the origin as null and dom.fetch would + * refuse to access .md file content. Instead, we load it as a script from a script tag) + */ + +let text = ` +### Lightweight mappings for CBoK, SWEBOK, DSBOK, and Identity Verification + +*(Micro edition!)* + +This site generates mappings and tabulations of various mappings for our courses. The rationale is described in + +> Billingsley, W. (2022). Lightweight Mapping of Identify Verification Methods and Secondary Course Aspects: “Swiss Cheese” Modelling. +> In S. Wilson, N. Arthars, D.Wardak, P. Yeoman, E. Kalman, & D.Y.T. Liu (Eds.), Reconnecting relationships through technology. +> *Proceedings of the 39thInternational Conference on Innovation, Practice and Research in the Use of Educational Technologies in Tertiary Education, ASCILITE 2022 in Sydney*: +> e22199. [https://doi.org/10.14742/apubs.2022.199](https://doi.org/10.14742/apubs.2022.199) + +The navigation in the left sidebar provides tables for each course, as well as a short +summary of this information for each unit. + +### Minimal repository + +This is the minimal repository. (Apart from README, .gitignore, etc) it contains just four files: just HTML to load the site +and the JS definitions of the units and courses you want mapped. + +The category definitions (e.g. what is in CBoK) and the rendering framework are loaded from +http://tweaked.info/lightweight-mappings-site/ + +Whose source is defined in +https://github.com/tweakedinfo/lightweight-mappings-site + +## Editing courses, units, and this page + +The site is generated from a minimal amount of additional information about units and courses. +The text of this homepage is set in + +* [home.js](home.js) + +The bespoke data for this site can be found in: +* [units.js](units.js) +* [courses.js](courses.js) + +To edit the tables, edit those files and hit refresh. + +The entries in those files are *intentionally sparse* - we are not aiming to reproduce the +course handbook here, only to generate the additional mappings required for ACS. + +A small amount of duplication of content is necessary - for instance, the code files need +the pre-requisites (and course structures) in order to generate the tables. + +If a unit or a course hasn't loaded, maybe check the console log for errors (F12). +Or, we might not have written it into units.js or courses.js yet. + +` + +setHomePage(text) \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..ecc0f4f --- /dev/null +++ b/index.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Lightweight mappings for CS courses</title> + + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> + <link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&family=Tangerine:wght@400;700&family=WindSong:wght@400;500&display=swap" rel="stylesheet"> + <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" /> + <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> + <link rel="stylesheet" href="https://tweakedinfo.github.io/lightweight-mappings-site/veautiful-docs.css" rel="stylesheet"> + +</head> +<body> + +<div id="render-here"> + <p>Loading. Built with Veautiful.</p> +</div> + + <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script> + + <!-- Location deployed to by CI --> + <script type="text/javascript" src="https://tweakedinfo.github.io/lightweight-mappings-site/deployscripts/compiled.js"></script> + + <!-- Load the courses, units, and homepage text --> + <script type="text/javascript" src="./units.js"></script> + <script type="text/javascript" src="./courses.js"></script> + <script type="text/javascript" src="./home.js"></script> + + <script> + document.documentElement.style.zoom = 1 + ITICSESite.main() + </script> + +</body> +</html> \ No newline at end of file diff --git a/units.js b/units.js new file mode 100644 index 0000000..dca439d --- /dev/null +++ b/units.js @@ -0,0 +1,1019 @@ +"use strict"; + +console.log("Loading units") + +addUnits([ + { + code: "AMTH140", + name: "Discrete Mathematics", + prereq: [], + cbok: [ problemSolving(2), understanding(1), fundamentals(2), cybersecurity(1) ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.PDA, + edison.SDMA, // Discrete Mathematics is KU1.01.12 within this category + edison.SEC, // Cryptography + ], + swebok: [swebok.MathFoundations ], + other: [ ] + }, + + + { + code: "AMTH246", + name: "Mathematical Methods in the Sciences", + prereq: [ "PMTH212" ], + cbok: [ programming(1) ], sfia: [], + dsbok: [ + ccdsc.PDA, + edison.SMDA, // KU1.01.14 Mathematical software and tools (Matlab) + ], + other: [ idverify.ProctoredExam ] + }, + + { + code: "AMTH250", + name: "Introduction to Programming in the Sciences", + prereq: [ or("MTHS120", "MTHS130")], + cbok: [ programming(1) ], sfia: [], + dsbok: [ + ccdsc.PDA, + edison.SMDA, // KU1.01.14 Mathematical software and tools (Matlab) + ], + other: [ idverify.ProctoredExam ] + }, + + { + code: "SCI210", + name: "Introduction to Scientific Programming", + prereq: [ choose(1, "MTHS110", "MTHS120", "MTHS130")], + cbok: [ programming(1) ], sfia: [], + dsbok: [ ccdsc.AP, + edison.SDMA, // KU1.01.14 Mathematical software and tools (Matlab) + ], + other: [ idverify.ProctoredExam ] + }, + + { + code: "MTHS100", + name: "Introduction to Quantitative Skills", + prereq: [], cbok: [ ], + swebok: [ swebok.MathFoundations ], + sfia: [], + other: [ idverify.ProctoredExam ] + }, + + { + code: "MTHS110", + name: "Quantitative Skills with Applications", + prereq: [], cbok: [ ], + swebok: [ swebok.MathFoundations ], + sfia: [], + other: [ idverify.ProctoredExam ] + }, + + + { + code: "MTHS120", + name: "Calculus & Linear Algebra 1", + prereq: [], cbok: [ ], + swebok: [ swebok.MathFoundations ], + dsbok: [ ccdsc.AP, edison.SMDA ], + sfia: [], + other: [ idverify.ProctoredExam ] + }, + + { + code: "MTHS130", + name: "Calculus & Linear Algebra 2", + prereq: [ "MTHS120" ], cbok: [ ], + swebok: [ swebok.MathFoundations ], + dsbok: [ ccdsc.AP, edison.SMDA ], + sfia: [], + other: [ idverify.ProctoredExam ] + }, + + { + code: "PMTH212", + name: "Multivariable Calculus", + prereq: [ "MTHS120", "MTHS130" ], cbok: [ ], sfia: [], + dsbok: [ ccdsc.AP, edison.SMDA ], + other: [ ] + }, + + + { + code: "PMTH213", + name: "Linear Algebra", + prereq: [ "MTHS120", "MTHS130" ], cbok: [ ], sfia: [], + dsbok: [ ccdsc.AP, edison.SMDA ], + other: [ ] + }, + + { + code: "MM105", + name: "Communication for Business", + prereq: [ ], cbok: [ communication(1) ], sfia: [], + other: [ idverify.TurnItIn ] + }, + + { + code: "MM203", + name: "Management Practices in Responsible Organisations", + prereq: [ ], cbok: [ communication(1), teamwork(1) ], sfia: [], + other: [ idverify.TurnItIn, idverify.ProctoredExam ] + }, + + + { + code: "STAT100", + name: "Introduction to Statistical Modelling", + prereq: [], cbok: [ data(2) ], + swebok: [ swebok.MathFoundations, swebok.EngFoundations ], + dsbok: [ ccdsc.AP, edison.SMDA ], + sfia: [], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + { + code: "STAT210", + name: "Statistical Modelling & Experimental Design", + prereq: [ choose(1, "STAT100", "AMTH250", "SCI210") ], + cbok: [ data(2) ], sfia: [], + swebok: [ swebok.MathFoundations, swebok.EngFoundations ], + dsbok: [ ccdsc.AP, ccdsc.DM, + edison.SMDA, + edison.ML, // KU1.01.02 Regression + edison.RM, + edison.DM, + edison.DSDA, + ], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + { + code: "STAT410", + name: "Statistical Modelling & Experimental Design", + prereq: [ "candidature in a pg award" ], + cbok: [ data(2) ], sfia: [], + dsbok: [ ccdsc.AP, ccdsc.DM, + edison.SMDA, + edison.ML, // KU1.01.02 Regression + edison.RM, + edison.DM, + edison.DSDA, + ], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + { + code: "STAT420", + name: "Advanced Statistical Modelling", + prereq: [ "candidature in a pg award" ], + cbok: [ data(2) ], sfia: [], + dsbok: [ ccdsc.AP, ccdsc.DM, + edison.SMDA, + edison.RM, + edison.DM, + edison.MODSIM, + ], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + { + code: "MATH260", + name: "Probability and Simulation", + prereq: [ "MTHS120", "MTHS130" ], + cbok: [ data(3) ], sfia: [], + dsbok: [ ccdsc.AP, ccdsc.AI, + edison.SDMA, + edison.ML, // KU1.01.05 Probabilistic reasoning + edison.MODSIM, + ], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + { + code: "STAT270", + name: "Inference", + prereq: [ "MATH260" ], + cbok: [ data(3) ], sfia: [], + dsbok: [ ccdsc.AP, ccdsc.AI, + edison.SDMA, + edison.ML, // KU1.01.05 Probabilistic reasoning + ], + other: [ idverify.TurnItIn ] + }, + + { + code: "STAT320", + name: "Advanced Statistical Modelling", + prereq: [ "STAT210" ], + cbok: [ data(3) ], sfia: [], + dsbok: [ ccdsc.AP, ccdsc.AI, ccdsc.DM, + edison.SDMA, + edison.ML, // KU1.01.05 Probabilistic reasoning + edison.MODSIM, + ], + other: [ idverify.TurnItIn ] + }, + + { + code: "STAT330", + name: "Statistical Learning", + prereq: [ "STAT210" ], + cbok: [ data(3) ], sfia: [], + swebok: [ swebok.MathFoundations, swebok.EngFoundations, swebok.Construction ], + dsbok: [ ccdsc.AP, ccdsc.DM, ccdsc.ML, + edison.SDMA, edison.ML, edison.DM + ], + tags: ["Advanced"], + other: [ idverify.TurnItIn, idverify.Oral ] + }, + + { + code: "STAT430", + name: "Statistical Learning", + prereq: [ "STAT100", "candidature in MDatSci or pg award" ], + cbok: [ data(3) ], sfia: [], tags: ["Advanced"], + dsbok: [ ccdsc.AP, ccdsc.DM, ccdsc.ML, + edison.SDMA, edison.ML, edison.DM + ], + other: [ idverify.TurnItIn, idverify.Oral ] + }, + + + { + code: "SCI410", + name: "Introduction to Scientific Programming", + prereq: [ cp(96), "or enrolment in pg award" ], + cbok: [ programming(2), data(2) ], sfia: [], tags: ["Advanced"], + dsbok: [ ccdsc.AP, ccdsc.PDA, ccdsc.CCF, edison.SMDA ], + other: [ idverify.ProctoredExam ] + }, + + + { + code: "SCI501", + name: "Special Topics in Science A", + prereq: [ cp(48), "permission of HoS"], + cbok: [ data(3), problemSolving(3) ], sfia: [], + dsbok: [ edison.RM ], + tags: [ "Advanced", "Capstone" ], + other: [ idverify.TurnItIn, idverify.Project, idverify.PersonalisedAssessment ] + }, + + { + code: "QM161", + name: "Business Statistics", + prereq: [], cbok: [ data(2) ], sfia: [], + dsbok: [ ccdsc.AP, edison.SDMA ], + other: [ idverify.ProctoredExam ] + }, + + { + code: "QM262", + name: "Introduction to Business Analytics", + prereq: [], cbok: [ data(2) ], sfia: [], + dsbok: [ ccdsc.AP, edison.SDMA ], + other: [ idverify.ProctoredExam ] + }, + + { + code: "ICT100", + name: "Computational Thinking", + prereq: [], + cbok: [ ethics(1), societal(1), humanFactors(1), problemSolving(1), programming(1) ], + swebok: [ swebok.MathFoundations, swebok.CompFoundations, swebok.EngFoundations, swebok.Construction ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.PDA, + edison.TDM, // text processing of Beatrix Potter in "Little Data" + ], + other: [] + }, + + { + code: "ICT101", + name: "From Logic to Data Processing", + prereq: [], + cbok: [ fundamentals(1), understanding(1), data(1) ], + swebok: [ swebok.MathFoundations, swebok.CompFoundations ], + sfia: [], + dsbok: [ ccdsc.CCF ], + other: [] + }, + + { + code: "COSC101", + name: "Software Development Studio 1", + prereq: [], + cbok: [ problemSolving(2), teamwork(2), communication(2), networking(1), humanFactors(1) ], + swebok: [ swebok.MathFoundations, swebok.CompFoundations, swebok.Construction, swebok.ProfPractice ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.AP, ccdsc.PDA, ccdsc.PR ], + other: [ idverify.GroupWork, idverify.Video ] + }, + + { + code: "COSC102", + name: "Data Science Studio 1", + prereq: [ choose(2, "COSC110", "STAT110") ], + cbok: [ programming(2), teamwork(2), communication(2), data(1),problemSolving(1)], + swebok: [ swebok.MathFoundations, swebok.CompFoundations, swebok.EngFoundations, swebok.ProfPractice ], + sfia: [], + dsbok: [ + ccdsc.CCF, ccdsc.AP, ccdsc.PDA, ccdsc.PR, + edison.DSDA, + ], + other: [ idverify.GroupWork, idverify.Video ] + }, + + + { + code: "COSC110", + name: "Introduction to Programming and the Unix Environment", + prereq: [], + cbok: [ ethics(1), expectations(1), teamwork(1), societal(2), understanding(1), communication(1), programming(2), fundamentals(1) ], + swebok: [ swebok.CompFoundations, swebok.Construction, swebok.Testing ], + sfia: [], + dsbok: [ ccdsc.PDA, ccdsc.PR, ccdsc.CCF, ccdsc.SDM, + edison.DSAPPD, // KU2.06.05 Python + + ], + other: [ idverify.ProctoredExam, idverify.TurnItIn, idverify.PersonalisedAssessment ] + }, + + { + code: "COSC120", + name: "Object Oriented Programming", + prereq: [ "COSC110" ], + cbok: [ programming(2), problemSolving(1) ], + swebok: [ swebok.Construction, swebok.Design, swebok.ModelsAndMethods ], + dsbok: [ ccdsc.PDA, ccdsc.CCF, ccdsc.SDM, + + ], + sfia: [], + other: [ idverify.Video ] + }, + + { + code: "COSC210", + name: "Database Management Systems", + prereq: [ "COSC110" ], + cbok: [ problemSolving(1), societal(1), data(3), networking(2), systems(1), cybersecurity(1) ], + swebok: [ swebok.Construction, swebok.Design, swebok.ModelsAndMethods ], + sfia: [ ], + dsbok: [ ccdsc.DG, ccdsc.SDM, + edison.DMS, + edison.EDMI, + + ], + other: [ idverify.TurnItIn ] + }, + + { + code: "COSC220", + name: "Software Development Studio 2", + prereq: [ "COSC120" ], + cbok: [ + problemSolving(3), ethics(1), expectations(3), teamwork(2), communication(2), societal(2), + understanding(2), data(3), programming(3), humanFactors(2), systems(2), projectManagement(2), + serviceManagement(1) + ], + swebok: [ + swebok.Requirements, swebok.Design, swebok.Construction, swebok.Testing, swebok.Maintenance, + swebok.ConfigManagement, swebok.EngManagement, swebok.Process, swebok.ModelsAndMethods, swebok.Quality, + swebok.ProfPractice, swebok.EngFoundations + ], + sfia: [], + dsbok: [ + ccdsc.PR, ccdsc.SDM, ccdsc.CCF, ccdsc.DG, + edison.PM, // project management (agile) + edison.CCT, // VMs & containers + edison.DSAPPD, // Software engineering methods, testing + ], + other: [ idverify.TurnItIn, idverify.GroupWork, idverify.Project, idverify.DataTrails, idverify.Video ], + tags: [ "adv?" ] + }, + + { + code: "COSC222", + name: "Data Science Studio 2 ??", + prereq: [ "COSC102", "STAT100", "COSC110", "COSC210" ], + cbok: [ + problemSolving(3), ethics(1), expectations(3), teamwork(2), communication(2), societal(2), + understanding(2), data(3), programming(3), humanFactors(2), systems(2), projectManagement(2), + serviceManagement(1) + ], + swebok: [ + swebok.Requirements, swebok.Design, swebok.Construction, swebok.Testing, swebok.Maintenance, + swebok.ConfigManagement, swebok.EngManagement, swebok.Process, swebok.ModelsAndMethods, swebok.Quality, + swebok.ProfPractice, swebok.EngFoundations + ], + sfia: [], + dsbok: [ + ccdsc.PR, ccdsc.SDM, ccdsc.CCF, ccdsc.DG, + edison.PM, // project management (agile) + edison.CCT, // VMs & containers + edison.DSAPPD, // Software engineering methods, testing + ], + other: [ idverify.TurnItIn, idverify.GroupWork, idverify.Project, idverify.DataTrails, idverify.Video ] + }, + + { + code: "COSC230", + name: "Data Structures & Algorithms", + prereq: [ "AMTH140", "COSC120", choose(1, "COSC101", "COSC110", "SCI210", "AMTH250") ], + cbok: [ fundamentals(2), programming(2) ], + swebok: [ swebok.MathFoundations, swebok.CompFoundations, swebok.Construction, swebok.ModelsAndMethods, swebok.Design ], + sfia: [], + dsbok: [ ccdsc.PDA, ccdsc.SDM, + edison.BDSE, // software systems development + ], + other: [ ], + tags: ["adv?"] + }, + + { + code: "COSC240", + name: "Operating Systems", + prereq: [ "COSC120" ], + cbok: [ problemSolving(2), societal(1), understanding(2), fundamentals(2), networking(2), programming(3), systems(1), cybersecurity(2) ], + sfia: [], + swebok: [ swebok.CompFoundations ], + dsbok: [ ccdsc.CCF, ccdsc.DP, edison.SEC ], + other: [ idverify.ProctoredExam, idverify.PersonalisedAssessment ] + }, + + { + code: "COSC250", + name: "Functional and Reactive Programming", + prereq: [ "COSC120", choose(1, "COSC101", "COSC110", "SCI210", "AMTH250") ], + cbok: [ understanding(1), programming(3), systems(2) ], + swebok: [ swebok.Design, swebok.Construction, swebok.Testing, swebok.ModelsAndMethods, swebok.MathFoundations, swebok.CompFoundations ], + sfia: [], + dsbok: [ + ccdsc.BDS, // akka, streams. Functional programming approaches tend to be used in Spark, Kafka + ccdsc.SDM, + ccdsc.PDA, + ccdsc.AI, + edison.DSIAPP, // Spark, Kafka + edison.BDSE, // Akka + edison.DSAPPD, // Scala + edison.BDI, // Scalable computing. Parallel and distributed architecture (actors) + ], + other: [ idverify.ProctoredExam, idverify.Video ], + tags: ["adv?"] + }, + + { + code: "COSC260", + name: "Web Programming", + prereq: [ choose(2, "COSC101", "COSC110", "COSC120") ], + cbok: [ societal(1), networking(2), programming(2), humanFactors(2), systems(2), cybersecurity(2) ], + swebok: [ swebok.Construction, swebok.Requirements ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.SDM, ccdsc.AP ], + other: [ idverify.ProctoredExam ] + }, + + { + code: "COSC301", + name: "Special Topic in Computing", + prereq: [ cp(48), "permission of HoS" ], + cbok: [ ], + sfia: [], + tags: ["Advanced"], + other: [ idverify.PersonalisedAssessment ] + }, + + + { + code: "COSC310", + name: "Software Project Management", + prereq: [ choose(1, "COSC210", "COSC220") ], + cbok: [ ethics(2), expectations(2), teamwork(2), communication(3), systems(2), governance(3), projectManagement(3), humanFactors(2) ], + dsbok: [], + swebok: [ swebok.Requirements, swebok.Maintenance, swebok.EngManagement, swebok.Process, swebok.Quality, swebok.ProfPractice, swebok.Economics ], + sfia: [], + tags: ["Advanced"], + dsbok: [ ccdsc.PR, ccdsc.DP, + edison.PM, + edison.DGOV, + ], + other: [ idverify.ProctoredExam, idverify.GroupWork, idverify.TurnItIn, idverify.Video ] + }, + + { + code: "COSC510", + name: "Software Project Management", + prereq: [ "COSC110", "COSC210" ], + cbok: [ ethics(2), expectations(2), teamwork(2), communication(3), systems(2), governance(3), projectManagement(3), humanFactors(2) ], + swebok: [ swebok.Requirements, swebok.Maintenance, swebok.EngManagement, swebok.Process, swebok.Quality, swebok.ProfPractice, swebok.Economics ], + sfia: [], + tags: ["Advanced"], + dsbok: [ ccdsc.PR, ccdsc.DP, + edison.PM, + edison.DGOV, + ], + other: [ idverify.ProctoredExam, idverify.GroupWork, idverify.TurnItIn, idverify.Video ] + }, + + + { + code: "COSC320", + name: "Information Technology Project", + prereq: [ "COSC220", "COSC310", cp(96) ], + cbok: [ problemSolving(3), ethics(2), expectations(2), teamwork(3), communication(3), systems(3), projectManagement(3), understanding(2) ], + swebok: [ swebok.Requirements, swebok.Construction, swebok.EngManagement, swebok.Process, swebok.Quality, swebok.ProfPractice ], + sfia: [], + dsbok: [ ccdsc.PR, edison.PM ], + tags: [ "Advanced", "Capstone" ], + other: [ idverify.GroupWork, idverify.Project, idverify.TurnItIn, idverify.Video, idverify.Oral ] + }, + + { + code: "COSC591", + name: "Information Technology Project", + prereq: [ "COSC510", choose(1, "COSC530", "COSC540", "COSC550", "COSC560", "COSC570", "COSC572", "COSC580") ], + cbok: [ problemSolving(3), ethics(2), expectations(2), teamwork(3), communication(3), systems(3), projectManagement(3), understanding(2) ], + sfia: [], + dsbok: [ ccdsc.PR, edison.PM ], + tags: [ "Advanced", "Capstone" ], + other: [ idverify.GroupWork, idverify.Project, idverify.TurnItIn, idverify.Video, idverify.Oral ] + }, + + + { + code: "COSC594", + name: "Information Technology Project: Proposal and Design", + prereq: [ "COSC220", cp(48) ], + cbok: [ problemSolving(3), ethics(2), expectations(2), teamwork(3), communication(3), systems(3), projectManagement(3), understanding(2) ], + sfia: [], + dsbok: [ ccdsc.PR, edison.PM ], + tags: [ "Advanced", "Capstone" ], + other: [ idverify.GroupWork, idverify.Project, idverify.TurnItIn, idverify.Video, idverify.Oral ] + }, + + { + code: "COSC595", + name: "Information Technology Project: Implementation", + prereq: [ "COSC220", cp(48) ], + cbok: [ problemSolving(3), ethics(2), expectations(2), teamwork(3), communication(3), systems(3), projectManagement(3), understanding(2) ], + sfia: [], + dsbok: [ ccdsc.PR, edison.PM ], + tags: [ "Advanced", "Capstone" ], + other: [ idverify.GroupWork, idverify.Project, idverify.TurnItIn, idverify.Video, idverify.Oral ] + }, + + + { + code: "COSC330", + name: "Parallel and Distributed Computing", + prereq: [ or("COSC230", "COSC240") ], + cbok: [ fundamentals(3), data(3), networking(3), systems(2) ], + swebok: [ swebok.Construction, swebok.CompFoundations, swebok.ModelsAndMethods ], + sfia: [], + dsbok: [ ccdsc.BDS, ccdsc.PDA, + edison.BDI, // parallel computing, HPC + edison.DSIAPP, // data processing models + edison.DSAPPD, // CUDA + ], + tags: ["Advanced"], + other: [ ] + }, + + { + code: "COSC530", + name: "Parallel and Distributed Computing", + prereq: [ "COSC110", choose(2, "COSC210", "COSC220", "COSC230", "COSC240", "COSC250", "COSC260", "STAT210") ], + cbok: [ fundamentals(3), data(3), networking(3), systems(2) ], + swebok: [ swebok.Construction, swebok.CompFoundations, swebok.ModelsAndMethods ], + sfia: [], + dsbok: [ ccdsc.BDS, ccdsc.PDA, + edison.BDI, // parallel computing, HPC + edison.DSIAPP, // data processing models + edison.DSAPPD, // CUDA + ], + tags: ["Advanced"], + other: [ ] + }, + + + { + code: "COSC340", + name: "Computer Networks and Network Security", + prereq: [ cp(72), "AMTH140", "COSC240" ], + cbok: [ societal(1), communication(3), fundamentals(2), understanding(1), data(2), networking(3), programming(3), cybersecurity(3) ], + swebok: [ swebok.CompFoundations, swebok.Construction ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.DP, + edison.SEC + ], + tags: ["Advanced"], + other: [ idverify.ProctoredExam, idverify.PersonalisedAssessment ] + }, + + { + code: "COSC540", + name: "Computer Networks and Network Security", + prereq: [ "COSC110", choose(2, "COSC210", "COSC220", "COSC230", "COSC240", "COSC250", "COSC260", "STAT210") ], + cbok: [ societal(1), communication(3), fundamentals(2), understanding(1), data(2), networking(3), programming(3), cybersecurity(3) ], + swebok: [ swebok.CompFoundations, swebok.Construction ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.DP, + edison.SEC + ], + tags: ["Advanced"], + other: [ idverify.ProctoredExam, idverify.PersonalisedAssessment ] + }, + + + { + code: "COSC350", + name: "Artificial Intelligence", + prereq: [ "COSC230" ], + cbok: [ data(3), programming(3), fundamentals(2), systems(2), problemSolving(2) ], + swebok: [ swebok.Construction ], + sfia: [], + dsbok: [ ccdsc.AI, ccdsc.ML, ccdsc.PDA, + edison.ML, + edison.PA, + edison.DM, + edison.SDMA, + ], + tags: ["Advanced"], + other: [ idverify.ProctoredExam ] + }, + + { + code: "COSC550", + name: "Artificial Intelligence", + prereq: [ "COSC110", choose(2, "COSC210", "COSC220", "COSC230", "COSC240", "COSC250", "COSC260", "STAT210") ], + cbok: [ data(3), programming(3), fundamentals(2), systems(2), problemSolving(2) ], + swebok: [ swebok.Construction ], + sfia: [], + dsbok: [ ccdsc.AI, ccdsc.ML, ccdsc.PDA, + edison.ML, + edison.PA, + edison.DM, + edison.SDMA, + ], + tags: ["Advanced"], + other: [ idverify.ProctoredExam ] + }, + + { + code: "COSC360", + name: "Advanced Web Programming", + prereq: [ "COSC120", "COSC260" ], + cbok: [ communication(2), networking(3), programming(3), humanFactors(2), systems(2), serviceManagement(2), cybersecurity(2) ], + swebok: [ swebok.Construction, swebok.Design, swebok.Testing, swebok.Requirements ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.AP, ccdsc.PDA, + edison.BDI, // NoSQL (Mongo) + ], + tags: ["Advanced"], + other: [ idverify.ProctoredExam, idverify.Project, idverify.Video ] + }, + + { + code: "COSC560", + name: "Advanced Web Programming", + prereq: [ "COSC260", or("COSC110", "COSC120") ], + cbok: [ communication(2), networking(3), programming(3), humanFactors(2), systems(2), serviceManagement(2), cybersecurity(2) ], + swebok: [ swebok.Construction, swebok.Design, swebok.Testing, swebok.Requirements ], + sfia: [], + dsbok: [ ccdsc.CCF, ccdsc.AP, ccdsc.PDA, + edison.BDI, // NoSQL (Mongo) + ], + tags: ["Advanced"], + other: [ idverify.ProctoredExam, idverify.Project, idverify.Video ] + }, + + + { + code: "COSC370", + name: "User Experience & Interaction Design", + prereq: [ cp(72), "COSC220" ], + cbok: [ communication(3), societal(3), humanFactors(3), systems(3) ], + swebok: [ swebok.Requirements, swebok.Design, swebok.ProfPractice ], + sfia: [], + dsbok: [ ccdsc.AP, ccdsc.PR ], + tags: ["Advanced"], + other: [ idverify.Project, idverify.Video, idverify.TurnItIn ] + }, + + { + code: "COSC570", + name: "User Experience & Interaction Design", + prereq: [ "COSC110", choose(2, "COSC210", "COSC220", "COSC230", "COSC240", "COSC250", "COSC260", "STAT210") ], + cbok: [ communication(3), societal(3), humanFactors(3), systems(3) ], + swebok: [ swebok.Requirements, swebok.Design, swebok.ProfPractice ], + sfia: [], + dsbok: [ ccdsc.AP, ccdsc.PR ], + tags: ["Advanced"], + other: [ idverify.Project, idverify.Video, idverify.TurnItIn ] + }, + + + { + code: "COSC372", + name: "Management Information Systems", + prereq: [ cp(48) ], + cbok: [ societal(2), data(2), systems(3), projectManagement(1), serviceManagement(2), networking(2), humanFactors(2), cybersecurity(1) ], + swebok: [ swebok.Economics, swebok.Maintenance, swebok.Quality ], + dsbok: [ ccdsc.AP, ccdsc.PR, ccdsc.DG, ccdsc.DP, + edison.BAF, + edison.BAEM, + edison.IS, + edison.DMORG, + edison.DGOV, + ], + sfia: [], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + { + code: "COSC572", + name: "Management Information Systems", + prereq: [ cp(48) ], + cbok: [ societal(2), data(2), systems(3), projectManagement(1), serviceManagement(2), networking(2), humanFactors(2), cybersecurity(1) ], + swebok: [ swebok.Economics, swebok.Maintenance, swebok.Quality ], + sfia: [], + dsbok: [ ccdsc.AP, ccdsc.PR, ccdsc.DG, ccdsc.DP, + edison.BAF, + edison.BAEM, + edison.IS, + edison.DMORG, + edison.DGOV, + ], + other: [ idverify.PersonalisedAssessment, idverify.TurnItIn ] + }, + + + { + code: "COSC380", + name: "Algorithms in Machine Learning", + prereq: [ choose(1, "MTHS120", "MTHS130"), choose(1, "COSC230", "AMTH250", "SCI210", "STAT330") ], + cbok: [ data(3), programming(2), problemSolving(2) ], + swebok: [ swebok.Construction, swebok.MathFoundations ], + sfia: [], + dsbok: [ ccdsc.ML, ccdsc.PDA, + edison.ML, + edison.DM, // reinforcement learning + edison.PA, + edison.SMDA, + edison.DSAPPD, + ], + tags: ["Advanced"], + other: [idverify.Project, idverify.TurnItIn] + }, + + { + code: "COSC580", + name: "Algorithms in Machine Learning", + prereq: [ "MTHS120", or("COSC110", "SCI410") ], + cbok: [ data(3), programming(2), problemSolving(2) ], + swebok: [ swebok.Construction, swebok.MathFoundations ], + sfia: [], + dsbok: [ ccdsc.ML, ccdsc.PDA, + edison.ML, + edison.DM, // reinforcement learning + edison.PA, + edison.SMDA, + edison.DSAPPD, + ], + tags: ["Advanced"], + other: [idverify.Project, idverify.TurnItIn] + }, + + { + code: "Elective", + name: "Non-ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "Listed Group 1", + name: "ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "Listed Group 2", + name: "Non-ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "Listed", + name: "Non-ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "Listed 300-level COSC", + name: "Advanced ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: ["Advanced"], + other: [] + }, + + { + code: "Listed 500-level", + name: "ICT/Non-ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "Prescribed 300-level", + name: "Advanced ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: ["Advanced"], + other: [] + }, + + { + code: "Prescribed 500-level", + name: "Advanced ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: ["Advanced"], + other: [] + }, + + { + code: "Prescribed", + name: "ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "Listed", + name: "Non-ICT Elective", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [], + other: [] + }, + + { + code: "COSC130", + name: "Fundamentals of Cybersecurity and Privacy", + prereq: [], + cbok: [ ethics(1), cybersecurity(1), expectations(1), understanding(1), societal(1), data(1), governance(1), serviceManagement(1) ], + swebok: [], + sfia: [], + dsbok: [], + tags: [ ], + other: [] + }, + + { + code: "COSC481", + name: "Cryptography", + prereq: ["AMTH140", "COSC230"], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ "Advanced" ], + other: [] + }, + + { + code: "COSC482", + name: "Ethical Hacking", + prereq: ["COSC220", "COSC240"], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ "Advanced" ], + other: [] + }, + + { + code: "COSC483", + name: "Cybersecurity Risk and Project Management", + prereq: ["COSC220", "COSC240", "COSC340"], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ "Advanced" ], + other: [] + }, + + { + code: "COSC484", + name: "Cloud Security", + prereq: ["COSC220", "COSC240", "COSC340"], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ "Advanced" ], + other: [] + }, + + { + code: "SCI310", + name: "Digital Technology Survival Skills", + prereq: [], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ ], + other: [] + }, + + { + code: "COSC331", + name: "Big Data", + prereq: [ ], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ ], + other: [] + }, + + { + code: "COSC351", + name: "Deep Learning", + prereq: [ ], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ ], + other: [] + }, + + + { + code: "COSC352", + name: "Reinforcement Learning", + prereq: [ ], + cbok: [], + swebok: [], + sfia: [], + dsbok: [], + tags: [ ], + other: [] + }, + + ]) \ No newline at end of file -- GitLab