COMP3311 23T3 Assignment 2
Grades and Rules
Database Systems
Last updated: Monday 6th November 9:50am
Most recent changes are shown in red ... older changes are shown in brown.

[Specification]  [Database]  [SQL Schema]  [Grades+Rules]  [Examples]  [Testing]  [Submitting]  [Fixes+Updates]

Introduction

This document contains a detailed description of how different kinds of rules are defined and what effects grades have in various contexts.

Grades

Grades have different effects in different contexts:

Note that UOC is for all courses passed; the UOC used for WAM is for all courses attempted.
Grades Req UOC WAM
A,B,C,D
(with + or -)
yesyesno
HD,DN,CR,PSyesyesyes
XE,Tyesyesno
SY,EC,RCyesyesno
AF,FL,UF,E,Fnonoyes
AS,AW,NA,PW,RDnonono
NF,NC,LE,PE,WD,WJnonono
nullnonono

Note: AF has no associated mark; it is treated as if the mark were zero.

What to print on the transcript for each type of grade:

Many of these grades do not appear in the database, and I don't include EM (excluded due to academic misconduct) which isn't really a grade applied to individual courses. If you want to find what all these grades mean, take a look at the UNSW web site.

Defining Requirements

This gives examples of how different kinds of requirements are defined in the MyMyUNSW database.

Code Description Acad Objects Min/Max
stream= satisfied all requirements for a streamenumerated list of stream codes# streams to complete
coreCore Courses; must complete alllist of course codes (no patterns, but may have alternatives (i.e. "{c1;c2}"))set min/max to null
electivePrescribed Electiveslist of courses (enumerated or patterns)must complete UOC between min and max; (max = null) means "at least min UOC"; (min = null) means "up to max UOC"; cannot both be null
freeFree Electivesspecial pattern "FREE####"; anything not core or elective or gened can be a free electiveas for "elective"
genedGeneral Educationspecial pattern "GEN#####"; any course not core or elective can be GenEd (priority to courses with course codes like GEN#####**)typically min = max = 12
uocUnits of Credits neededno academic objects(max = null) means "at least min UOC"; (min = null) means "up to max UOC"; cannot both be null

** In theory, you should reject GEs from within the faculty. Since this database is based on enrolment data, this shouldn't happen. And since doing this checks adds extra complexity, there's no need to check.

You can find out more about the kinds of rules in the database by asking a query on the Requirements table, to see how things are structured.

Academic Object Groups

A critical part of describing requirements is the subject/stream info in the academic object group associated with each rule.

Note that each academic object group contains items of one particular type; either subjects or streams.

For this assignment, academic object groups are defined as comma-separated lists of items. Each item could be either a course or stream code, a choice of several courses, or a pattern, which identifies multiple courses. There are a wide variety of patterns. You should explore the Requirements table to see what's available. To give you a head start, here are some patterns and what they mean:

Definitions such as the above are stored in the acadobjs field in the Requirements table.

Requirements for some CSE Programs and Streams

Here are the requirements for each program and stream. They were derived from manual reading of the Handbook and some requirements have been simplified compared to the Handbook. It's possible that some rule sets don't accurately reflect the Handbook. All of the examples and test cases are based on what's in the database and may not precisely reflect reality.

  1. # Requirements(id,name,rtype,min_req,max_req,acadobjs,for_stream,for_program)
  2. # Requirements.rtype = (core,elective,free,gened,stream,uoc)
  3.  
  4. # Programs
  5.  
  6. 3707 Bachelor of Engineering (Hons)
  7. stream 1 1 BE(Hons) Streams
  8. AEROAH,BINFAH,CEICAH,CEICDH,COMPBH,CVENAH,CVENBH,ELECAH,ELECCH,GMATDH,MANFBH,MINEAH,MTRNAH,PETRAH,SENGAH,SOLAAH,SOLABH,TELEAH
  9. core - - Industrial Training
  10. ENGG4999
  11. gened 12 12 General Education
  12. GEN#####
  13.  
  14. 3778 Bachelor of Science (Comp Sci)
  15. stream 1 1 Comp Sci Majors
  16. COMPA1,COMPD1,COMPE1,COMPI1,COMPJ1,COMPN1,COMPS1,COMPY1
  17. core - - Foundational Computing
  18. COMP1511,COMP1521,COMP1531,COMP2511,COMP2521
  19. core - - Comp Sci Maths
  20. MATH1081,{MATH1131;MATH1141},{MATH1231;MATH1241}
  21. core - - Comp Sci Advanced Core
  22. {COMP3121;COMP3821},COMP3900,COMP4920
  23. GE 12 12 General Education
  24. GEN#####
  25.  
  26. 5543 Graduate Diploma in IT
  27. core - - PG Core Courses
  28. COMP9021,COMP9024,COMP9311,COMP9331
  29. elective 18 18 ADK Courses
  30. COMP4121,COMP4161,COMP4418,COMP6714,COMP9153,COMP9242,COMP9243,COMP9315,COMP9318,COMP9319,COMP9323,COMP9334,COMP9336,COMP9417,COMP9418,COMP9434,COMP9444,COMP9517
  31. elective 30 30 Prescribed Electives
  32. COMP4###,COMP6###,COMP9###
  33.  
  34. 7543 Graduate Certificate in IT
  35. elective 24 24 Grad Cert Elective Courses
  36. BINF9###,COMP4###,COMP6###,COMP9###
  37.  
  38. 8543 Master of Information Technology
  39. stream 1 1 MIT Streams
  40. COMPAS,COMPBS,COMPCS,COMPDS,COMPES,COMPIS,COMPSS
  41. core - - Project Management
  42. GSOE9820
  43. core - - PG Core Courses
  44. COMP9021,COMP9024,COMP9311,COMP9331
  45. core - - MIT Project Courses
  46. {COMP9900;COMP9991}
  47. elective 36 36 ADK Courses
  48. COMP4121,COMP4161,COMP4418,COMP6714,COMP9153,COMP9242,COMP9243,COMP9315,COMP9318,COMP9319,COMP9323,COMP9334,COMP9336,COMP9417,COMP9418,COMP9434,COMP9444,COMP9517,COMP9992,COMP9993
  49.  
  50.  
  51. # Streams
  52.  
  53. COMPA1 Computer Science
  54. elective 30 - COMPA1 Computing Electives
  55. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  56. free 36 - COMPA1 Free Electives
  57. FREE####
  58.  
  59. COMPAS Artificial Intelligence
  60. core - - COMPAS Core
  61. {COMP9414;COMP9814}
  62. elective 18 18 COMPAS Electives
  63. COMP4418,COMP9318,COMP9417,COMP9418,COMP9434,COMP9444,COMP9491,COMP9517,MATH5836
  64. elective - 6 COMPAS Disciplinary Electives
  65. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  66.  
  67. COMPBH Computer Engineering
  68. core - - Foundational Computing
  69. COMP1511,COMP1521,COMP1531,COMP2511,COMP2521
  70. core - - COMPBH Maths
  71. {MATH1131;MATH1141},{MATH1231;MATH1241},MATH2069,MATH2099
  72. core - - COMPBH Physics and Electronics
  73. {PHYS1121;PHYS1131},{PHYS1221;PHYS1231},ELEC1111,ELEC2133,ELEC2134
  74. core - - COMPBH Design
  75. {ENGG1000;DESN1000},DESN2000
  76. core - - COMPBH Advanced Core
  77. COMP3211,COMP3222,COMP3231,COMP3601,COMP4601,COMP4920,COMP4951,COMP4952,COMP4953
  78. elective 36 - COMPBH Computing Electives
  79. ENGG2600,ENGG3060,ENGG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  80.  
  81. COMPBS Bioinformatics
  82. core - - COMPBS Core
  83. BINF9010,BINF9020
  84. elective 18 18 COMPBS Electives
  85. COMP9318,COMP9417,MATH5846,MATH5856
  86. elective - 6 COMPBS Disciplinary Electives
  87. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  88.  
  89. COMPCS Computer Science
  90. elective 24 24 COMPCS Disciplinary Electives
  91. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  92.  
  93. COMPD1 Database Systems
  94. core - - COMPD1 Core
  95. COMP3311
  96. elective 18 18 COMPD1 Electives
  97. COMP6714,COMP9312,COMP9313,COMP9315,COMP9318,COMP9319
  98. elective 6 - COMPD1 Computing Electives
  99. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  100. free 36 - COMPD1 Free Electives
  101. FREE####
  102.  
  103. COMPDS Database Systems
  104. elective 18 18 COMPDS Electives
  105. COMP6714,COMP9312,COMP9313,COMP9315,COMP9318,COMP9319,COMP9321
  106. elective - 12 COMPDS Disciplinary Electives
  107. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  108.  
  109. COMPE1 eCommerce Systems
  110. core - - COMPE1 Core
  111. COMP3311
  112. elective 18 18 COMPE1 Electives
  113. COMP3511,COMP9321,COMP9322,COMP9323
  114. elective 6 - COMPD1 Computing Electives
  115. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  116. free 36 - COMPD1 Free Electives
  117. FREE####
  118.  
  119. COMPES eCommerce Systems
  120. elective 18 18 COMPES Electives
  121. ACCT5922,COMP6324,COMP6452,COMP9313,COMP9321,COMP9322,COMP9323
  122. elective - 12 COMPES Disciplinary Electives
  123. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  124.  
  125. COMPI1 Artificial Intelligence
  126. core - - COMPI1 Core
  127. COMP3411
  128. elective 18 18 COMPI1 Electives
  129. COMP3431,COMP4418,COMP9318,COMP9417,COMP9418,COMP9444,COMP9517
  130. elective 6 - COMPI1 Computing Electives
  131. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  132. free 36 - COMPI1 Free Electives
  133. FREE####
  134.  
  135. COMPIS Internetworking
  136. elective 18 18 COMPIS Electives
  137. COMP9332,COMP9334,COMP6733,COMP9336,COMP9337
  138. elective - 12 COMPDS Disciplinary Electives
  139. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  140.  
  141. COMPJ1 Programming Languages
  142. core - - COMPJ1 Core
  143. COMP3161
  144. elective 18 18 COMPJ1 Electives
  145. COMP3131,COMP3141,COMP3151,COMP6771
  146. elective 6 - COMPJ1 Computing Electives
  147. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  148. free 36 - COMPJ1 Free Electives
  149. FREE####
  150.  
  151. COMPN1 Computer Networks
  152. core - - COMPN1 Core
  153. COMP3331
  154. elective 18 18 COMPN1 Electives
  155. COMP4336,COMP4337,COMP6733,COMP9332,COMP9334
  156. elective 6 - COMPN1 Computing Electives
  157. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  158. free 36 - COMPN1 Free Electives
  159. FREE####
  160.  
  161. COMPS1 Embedded Systems
  162. core - - COMPS1 Core
  163. COMP2121,COMP3222
  164. elective 18 18 COMPS1 Electives
  165. COMP3211,COMP3231,COMP3601,COMP4601,COMP9242,COMP9517
  166. elective 6 - COMPS1 Computing Electives
  167. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  168. free 30 - COMPS1 Free Electives
  169. FREE####
  170.  
  171. COMPSS Data Science and Engineering
  172. elective 6 12 COMPSS Algos/Stats Electives
  173. COMP4141,COMP6741,MATH5845,MATH5855,MATH5905,MATH5960
  174. elective 6 12 COMPSS Databases Electives
  175. COMP9313,COMP9315,COMP9318,COMP9319,COMP9321
  176. elective 6 12 COMPSS Machine Learning Electives
  177. COMP4418,COMP6714,COMP9417,MATH5836,COMP9444
  178. elective - 6 COMPSS Disciplinary Electives
  179. BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###
  180.  
  181. COMPY1 Security Engineering
  182. core - - COMPY1 Core
  183. {COMP6441;COMP6841}
  184. elective 18 18 COMPY1 Electives
  185. COMP4337,{COMP6443;COMP6843},{COMP6445;COMP6845},COMP6447,COMP6448,COMP6449,COMP9447,MATH3411,TELE3119
  186. elective 6 - COMPY1 Computing Electives
  187. ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
  188. free 30 - COMPY1 Free Electives
  189. FREE####
  190.  
  191. SENGAH Software Engineering
  192. core - - Foundational Computing
  193. COMP1511,COMP1521,COMP1531,COMP2511,COMP2521
  194. core - - SENGAH Maths
  195. MATH1081,{MATH1131;MATH1141},{MATH1231;MATH1241},MATH2400,MATH2859
  196. core - - SENGAH Workshops/Design
  197. {DESN1000;ENGG1000},DESN2000,SENG2011,SENG2021,SENG3011
  198. core - - SENGAH Advanced Core
  199. COMP2041,COMP3141,COMP3311,COMP3331,SENG4920,COMP4951,COMP4952,COMP4953
  200. elective 36 - SENGAH Discipline Electives
  201. ENGG2600,ENGG3060,ENGG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###,INFS3###,INFS4###,MATH3###,MATH4###,MATH6###,ELEC3###,ELEC4###,TELE3###,TELE4###
  202. free 6 6 SENGAH Free Electives
  203. FREE####
  204.