Augmented Remote Teaching, Learning, and Assessment policy
Project 1 Description (updated: 24/03/2021). Thanks Andrei for writing this project spec. Must make use of the Computer Science Gitlab server with regular commits. Due date: 12 April at 23:59
Project 2 Description (updated: 10/05/2021). [Clarified top 5 most contacted EMPLOYEES for Employee Query] Project spec for the second project. Marking rubric and what needs to be in the report have been added. Please make use of a students shared repo. Each group member should complete the Peer Rating form and email it to brinkvdm at gmail dot com with the subject heading “Peer Rating”. Due date: 14 May at 23:59
Project 3 Description (updated: 09/06/2021). [Removed halving of marks if API is not restricted under “Restrict API Access” marks] Please make use of a shared student repo, similar to Project 2. Due date: 15 June 2021 at 10:00, i.e. when the practical starts and the video and report, 21 June at 23:59. Each group member should complete the Peer Rating form and email it to brinkvdm at gmail dot com with the subject heading “Peer Rating”.
Test and Exam Dates
- Test: 20 April at 10:00
- Exam 1 (A2): 2 July at 9:00 (only on the part covered after the test). Venues: Chemistry 1015 (Abrahall-Govender), 1027 (Grant-Perks), 2011 (Pretorius-Wilson).
- Exam 2 (A3): Date - TBA. Comprehensive exam. For those that missed the test, exam 1 or a project with a valid university excuse, or those with marks below 70% that would like to improve their marks to at most 70%. This will be online.
Prof Brink van der Merwe, brinkvdmgmail dot com
Recommended Reading and Watching
- W3Schools W3Schools is a web developer information website, with tutorials and references relating to and covering many aspects of web programming.
- Joel Spolsky on Software Know About Unicode and Character Sets (No Excuses!)
- Full Stack Python Flask is a Python web framework built with a small core and easy-to-extend philosophy.
- CSS: Cascading Style Sheets MDN web docs on CSS
Lecture and Tutorial Times and Venues
- Mondays 12:00–12:50
- Wednesdays 8:00–8:50
- Fridays 9:00–9:50
Rough outline: First month - introduction and front-end techologies. After this, a month of back-end technologies followed by a detailed discussion on databases for the remainder of the course.
Tests, projects, distribution of marks.
50% for test and exam, 25% each. Projects will contribute 50% of the final mark (Project 1: 10%, Project 2: 20%, Project 3: 20%). If you miss a text, exam or a project handin due to an official university excuse, a comprehensive theory exam, during the 2nd exam opportunity, will be used to replace this mark.
The plagiarism policy of the university (as described in the General Yearbook and related documents) will be strictly enforced in this course.Please familiarize yourself in detail with this policy. In short, plagiarism occurs when you present (parts of) another person’s work as if it were your own and when you allow someone else to present your work as their own. This includes work published in books or on the internet, as well as code written by fellow students. All submitted work is tested automatically by a plagiarism detection program, and all students that violate the rules will face disciplinary action.
Material from class
David Baker Effendi, Andrei Dreyer, Liam Louw, Marc Elliot, Razeen Bahadoor
Ryan Pretorius, Nikita Smal
- Textbook term 2: Fundamentals of Database Systems Global Edition By Ramez Elmasri and Shamkant B. Navathe, Edition: 7.
- Week 1: Chapter 1 and Chapter 2 of Fundamentals of Database Systems. Go through the review questions of Chapters 1 and 2 - see SunLearn. Work on the database with sample queries on SunLearn. Wrap up work on project 2 and start working on project 3.
- Week 2: See SunLearn for practical. Also watch (supplementary - not required) Database Lesson #1 of 8 - Introduction to Databases, Logical Database Design and E-R Diagrams and Database Lesson #4 of 8 - Data Modeling and the ER Model.
- Week 3: Watch (supplementary - not required) Database Lesson #2 of 8 - The Relational Model. Read Chapter 3 of Fundametals of Database Systems. See SunLearn for more content to work through during week 3.
- Week 4: Video (supplementary - not required) and Slides on the relational algebra. Also see SunLearn for a practical on PostgreSQL, SQLAlchemy and Flask. Read also the content at the following links wrt design patterns:
- Week 5:
- Work through the non-premium design pattern content at Refacturing Guru. Go through the Java versions of the code examples.
- Project 3 related, have a look at:
- The Relational Data Model and Relational Database Contraints
- Week 6: Basic SQL
- Week 6: More SQL
- Week 6: Relational Algebra
- Week 6: Normalization
- Week 7:
- Web resources explaining B-trees and indexes:
- Video resources (that is not required watching) on normalization, data types and indexes: