From 3b5893789ce52715e8c1b932066e9a2554c2d597 Mon Sep 17 00:00:00 2001
From: William Billingsley <wbillingsley@cantab.net>
Date: Thu, 9 Mar 2023 07:48:19 +1100
Subject: [PATCH] Added proposals for CAB

---
 courses.js | 135 +++++++++++++++++++++++++++++++++++++++++++----------
 units.js   |  90 ++++++++++++++++++++++++++++-------
 2 files changed, 184 insertions(+), 41 deletions(-)

diff --git a/courses.js b/courses.js
index 09b1a0d..3e4af6c 100644
--- a/courses.js
+++ b/courses.js
@@ -3,6 +3,116 @@
 console.log("Loading courses")
 
 addCourses([
+  {
+    code: "BCOMP2024",
+    name: "Bachelor of Computer Science 2024",
+    structure: [
+
+      {
+        name: "Core CS",
+        units: [
+          "AMTH140", "COSC110", "COSC120", "COSC130",
+          or("COSC101", "COSC102"),
+          "COSC210", "COSC220", "COSC230", "COSC240",
+          "COSC310", "COSC320"
+        ]
+      },
+
+      {
+        name: "Software Development major",
+        units: [
+          or("MTHS120", "STAT100"),
+          choose(5, "COSC250", "COSC260", "COSC330", "COSC340", "COSC350", "COSC360", "COSC370", "COSC484")
+        ]
+      },
+      {
+        name: "Data Science major",
+        units: [
+          "STAT100", "STAT210", 
+          choose(4, "MTHS120", "COSC250", "COSC330", "COSC350", "COSC380", "STAT320", "STAT330")
+        ]
+      },
+
+      {
+        name: "Cybersecurity major",
+        units: [
+          or("MTHS120", "STAT100"),
+          "COSC340", "COSC350", "COSC372",
+          choose(2, "COSC481", "COSC482", "COSC483", "COSC484")
+        ]
+      },
+
+      {
+        name: "Artificial Intelligence major",
+        units: [
+          or("MTHS120", "STAT100"),
+          choose(5, "COSC250", "COSC331", "COSC350", "COSC351", "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 single major generic",
       name: "Bachelor of Computer Science",
@@ -230,31 +340,6 @@ addCourses([
     },
 
 
-    {
-      code: "DIT",
-      name: "Diploma in Information Technology",
-      structure: [
-        {
-          name: "Core",
-          units: [ "ICT100", "ICT101", "COSC110", "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)",
diff --git a/units.js b/units.js
index fabfebf..794836a 100644
--- a/units.js
+++ b/units.js
@@ -355,18 +355,6 @@ addUnits([
       other: [ idverify.Video ]
     },
 
-    {
-      code: "COSC315",
-      name: "Data Governance, Security, and Ethics (for instance) ???",
-      prereq: [ "AMTH140", "COSC110", "COSC210", "COSC230", "???" ],
-      cbok: [  ],
-      swebok: [  ],
-      dsbok: [  ],
-      sfia: [],
-      other: [ idverify.Video ], 
-      tags: [ "Advanced" ]
-    },
-
     {
       code: "COSC210",
       name: "Database Management Systems",
@@ -613,7 +601,7 @@ addUnits([
     
     {
       code: "COSC340",
-      name: "Computer Networks and Information Security",
+      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 ],
@@ -627,7 +615,7 @@ addUnits([
 
     {
       code: "COSC540",
-      name: "Computer Networks and Information Security",
+      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 ],
@@ -917,9 +905,79 @@ addUnits([
       dsbok: [],
       tags: [],
       other: []
-    }
+    },
 
+    {
+      code: "COSC130",
+      name: "Fundamentals of Cybersecurity and Privacy",
+      prereq: [],
+      cbok: [],
+      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: []
+    },
 
-])
\ No newline at end of file
+  
+  ])
\ No newline at end of file
-- 
GitLab