COMP3311 25T2 Assignment 2
Grades + Rules
Database Systems
Last updated: Friday 28th March 10:00pm
Most recent changes are shown in red ... older changes are shown in brown.

[Assignment Spec]  [SQL Schema]   [SQL Data]   [Grades+Rules]   [Examples]   [Testing]   [Submitting]


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(±),F(±)nonoyes
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.

# Requirements(id,name,rtype,min_req,max_req,acadobjs,for_stream,for_program)
# Requirements.rtype = (core,elective,free,gened,stream,uoc)

# Programs

3707	Bachelor of Engineering (Hons)
	stream	1	1	BE(Hons) Streams
		AEROAH,BINFAH,CEICAH,CEICDH,COMPBH,CVENAH,CVENBH,ELECAH,ELECCH,GMATDH,MANFBH,MINEAH,MTRNAH,PETRAH,SENGAH,SOLAAH,SOLABH,TELEAH
	core	-	-	Industrial Training
		ENGG4999
	gened	12	12	General Education
		GEN#####

3778	Bachelor of Science (Comp Sci)
	stream	1	1	Comp Sci Majors
		COMPA1,COMPD1,COMPE1,COMPI1,COMPJ1,COMPN1,COMPS1,COMPY1
	core	-	-	Foundational Computing
		COMP1511,COMP1521,COMP1531,COMP2511,COMP2521
	core	-	-	Comp Sci Maths
		MATH1081,{MATH1131;MATH1141},{MATH1231;MATH1241}
	core	-	-	Comp Sci Advanced Core
		{COMP3121;COMP3821},COMP3900,COMP4920
	GE	12	12	General Education
		GEN#####

5543	Graduate Diploma in IT
	core	-	-	PG Core Courses
		COMP9021,COMP9024,COMP9311,COMP9331
	elective	18	18	ADK Courses
		COMP4121,COMP4161,COMP4418,COMP6714,COMP9153,COMP9242,COMP9243,COMP9315,COMP9318,COMP9319,COMP9323,COMP9334,COMP9336,COMP9417,COMP9418,COMP9434,COMP9444,COMP9517
	elective	30	30	Prescribed Electives
		COMP4###,COMP6###,COMP9###

7543	Graduate Certificate in IT
	elective	24	24	Grad Cert Elective Courses
		BINF9###,COMP4###,COMP6###,COMP9###

8543	Master of Information Technology
	stream	1	1	MIT Streams
		COMPAS,COMPBS,COMPCS,COMPDS,COMPES,COMPIS,COMPSS
	core	-	-	Project Management
		GSOE9820
	core	-	-	PG Core Courses
		COMP9021,COMP9024,COMP9311,COMP9331
	core	-	-	MIT Project Courses
		{COMP9900;COMP9991}
	elective	36	36	ADK Courses
		COMP4121,COMP4161,COMP4418,COMP6714,COMP9153,COMP9242,COMP9243,COMP9315,COMP9318,COMP9319,COMP9323,COMP9334,COMP9336,COMP9417,COMP9418,COMP9434,COMP9444,COMP9517,COMP9992,COMP9993


# Streams

COMPA1	Computer Science
	elective	30	-	COMPA1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	36	-	COMPA1 Free Electives
		FREE####

COMPAS	Artificial Intelligence
	core	-  -	COMPAS Core
		{COMP9414;COMP9814}
	elective	18	18	COMPAS Electives
		COMP4418,COMP9318,COMP9417,COMP9418,COMP9434,COMP9444,COMP9491,COMP9517,MATH5836
	elective	-	6	COMPAS Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPBH	Computer Engineering
	core	-	-	Foundational Computing
		COMP1511,COMP1521,COMP1531,COMP2511,COMP2521
	core	-	-	COMPBH Maths
		{MATH1131;MATH1141},{MATH1231;MATH1241},MATH2069,MATH2099
	core	-	-	COMPBH Physics and Electronics
		{PHYS1121;PHYS1131},{PHYS1221;PHYS1231},ELEC1111,ELEC2133,ELEC2134
	core	-	-	COMPBH Design
		{ENGG1000;DESN1000},DESN2000
	core	-	-	COMPBH Advanced Core
		COMP3211,COMP3222,COMP3231,COMP3601,COMP4601,COMP4920,COMP4951,COMP4952,COMP4953
	elective	36	-	COMPBH Computing Electives
		ENGG2600,ENGG3060,ENGG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###

COMPBS	Bioinformatics
	core	-	-	COMPBS Core
		BINF9010,BINF9020
	elective	18	18	COMPBS Electives
		COMP9318,COMP9417,MATH5846,MATH5856
	elective	-	6	COMPBS Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPCS	Computer Science
	elective	24	24	COMPCS Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPD1	Database Systems
	core	-	-	COMPD1 Core
		COMP3311
	elective	18	18	COMPD1 Electives
		COMP6714,COMP9312,COMP9313,COMP9315,COMP9318,COMP9319
	elective	6	-	COMPD1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	36	-	COMPD1 Free Electives
		FREE####

COMPDS	Database Systems
	elective	18	18	COMPDS Electives
		COMP6714,COMP9312,COMP9313,COMP9315,COMP9318,COMP9319,COMP9321
	elective	-	12	COMPDS Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPE1	eCommerce Systems
	core	-	-	COMPE1 Core
		COMP3311
	elective	18	18	COMPE1 Electives
		COMP3511,COMP9321,COMP9322,COMP9323
	elective	6	-	COMPD1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	36	-	COMPD1 Free Electives
		FREE####

COMPES	eCommerce Systems
	elective	18	18	COMPES Electives
		ACCT5922,COMP6324,COMP6452,COMP9313,COMP9321,COMP9322,COMP9323
	elective	-	12	COMPES Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPI1	Artificial Intelligence
	core	-	-	COMPI1 Core
		COMP3411
	elective	18	18	COMPI1 Electives
		COMP3431,COMP4418,COMP9318,COMP9417,COMP9418,COMP9444,COMP9517
	elective	6	-	COMPI1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	36	-	COMPI1 Free Electives
		FREE####

COMPIS	Internetworking
	elective	18	18	COMPIS Electives
		COMP9332,COMP9334,COMP6733,COMP9336,COMP9337
	elective	-	12	COMPDS Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPJ1	Programming Languages
	core	-	-	COMPJ1 Core
		COMP3161
	elective	18	18	COMPJ1 Electives
		COMP3131,COMP3141,COMP3151,COMP6771
	elective	6	-	COMPJ1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	36	-	COMPJ1 Free Electives
		FREE####

COMPN1	Computer Networks
	core	-	-	COMPN1 Core
		COMP3331
	elective	18	18	COMPN1 Electives
		COMP4336,COMP4337,COMP6733,COMP9332,COMP9334
	elective	6	-	COMPN1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	36	-	COMPN1 Free Electives
		FREE####

COMPS1	Embedded Systems
	core	-	-	COMPS1 Core
		COMP2121,COMP3222
	elective	18	18	COMPS1 Electives
		COMP3211,COMP3231,COMP3601,COMP4601,COMP9242,COMP9517
	elective	6	-	COMPS1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	30	-	COMPS1 Free Electives
		FREE####

COMPSS	Data Science and Engineering
	elective	6	12	COMPSS Algos/Stats Electives
		COMP4141,COMP6741,MATH5845,MATH5855,MATH5905,MATH5960
	elective	6	12	COMPSS Databases Electives
		COMP9313,COMP9315,COMP9318,COMP9319,COMP9321
	elective	6	12	COMPSS Machine Learning Electives
		COMP4418,COMP6714,COMP9417,MATH5836,COMP9444
	elective	-	6	COMPSS Disciplinary Electives
		BINF6###,BINF9###,COMP4###,COMP6###,COMP9##,GSOE92###

COMPY1	Security Engineering
	core	-	-	COMPY1 Core
		{COMP6441;COMP6841}
	elective	18	18	COMPY1 Electives
		COMP4337,{COMP6443;COMP6843},{COMP6445;COMP6845},COMP6447,COMP6448,COMP6449,COMP9447,MATH3411,TELE3119
	elective	6	-	COMPY1 Computing Electives
		ENGG2600,ENG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###
	free	30	-	COMPY1 Free Electives
		FREE####

SENGAH	Software Engineering
	core	-	-	Foundational Computing
		COMP1511,COMP1521,COMP1531,COMP2511,COMP2521
	core	-	-	SENGAH Maths
		MATH1081,{MATH1131;MATH1141},{MATH1231;MATH1241},MATH2400,MATH2859
	core	-	-	SENGAH Workshops/Design
		{DESN1000;ENGG1000},DESN2000,SENG2011,SENG2021,SENG3011
	core	-	-	SENGAH Advanced Core
		COMP2041,COMP3141,COMP3311,COMP3331,SENG4920,COMP4951,COMP4952,COMP4953
	elective	36	-	SENGAH Discipline Electives
		ENGG2600,ENGG3060,ENGG3600,ENGG4600,COMP3###,COMP4###,COMP6###,COMP9###,INFS3###,INFS4###,MATH3###,MATH4###,MATH6###,ELEC3###,ELEC4###,TELE3###,TELE4###
	free	6	6	SENGAH Free Electives
		FREE####