Databases and Web Programming

Computer Science 334

Rekenaarwetenskap 334

Augmented Remote Teaching, Learning, and Assessment policy

Augmented Type 2 and 3 will be followed for lectures and practicals and tests and exams will be invigilated and sit-down. For practicals, coding projects will be handed in on the git server of Computer Science. - Type 2: Asynchronous provision of material and f2f learning opportunities (with limited number of students in venue) are used to explain pre-recorded material. - Type 3: Asynchronous provision of material and f2f learning opportunities (with limited number of students in venue) are used for question and answer sessions.

Access to Narga outside lecture times can be requested with motivation: Narga Access Request Also see: Narga Details

Course Summary

This course will focus on the building blocks of the web, followed by hands-on development of user facing front-ends and server side back-ends. We will also look at databases (relational and NoSQL) in detail.

Announcements

Projects

Test and Exam Dates

Instructor

Prof Brink van der Merwe, brinkvdmgmail dot com

Textbook

We will use Database System Concepts 7th Edition, by Abraham Silberschatz, as textbook, but we will only start using this book after a few weeks. I will make also make use of slides from the book Fundamentals of Web Development 2nd Edition by Randy Connolly, Ricardo Hoar, especially in the first few weeks of the course, but it is not required to get a copy of this book. Other freely available relevant web resources will be pointed out as the course goes along.
Additional reading resources that will help bolster your practical background understanding of the course content.

Lecture and Tutorial Times and Venues

The lecture times are as follows, with all lectures in A407 main engineering:
  • Mondays 12:00–12:50
  • Wednesdays 8:00–8:50
  • Fridays 9:00–9:50
There is a tutorial every week in Narga D: Tue 10:00–12:50

Schedule

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.

Plagiarism

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.

Prerequisites

Computer Science 214; for programmes in Engineering: Computer Science E214 and Computer Systems 245

Learning outcomes

After completing this course you should be able to: 1. define modern protocols and systems used on the Web (such as Unix, Apache, HTML, HTTPS, SFTP, Git, URLs, CSS, Javascript, JSON) 2. explain the functions of clients and servers on the Web, and describe the strengths and weaknesses of the client-server internet approaches to web design and implementation 3. program, access, and manipulate data through the adoption of accepted standards, mark-up languages, client-side programming, and server-side programming 4. design and implement an interactive web site(s) with regard to issues of usability, accessibility and internationalisation 5. design and implement a client-server internet application that accommodates specific requirements and constraints, based on analysis, modelling or requirements specification 6. justify and explain particular internet application concepts, relevant alternatives and decision recommendations, including design considerations for internet security 7. be familiar with the Flask micro framework 8. know when to use a relational database and when to use a NoSQL database

Lecture slides

See SunLearn.

Material from class

See SunLearn.

Teaching assistants

David Baker Effendi, Andrei Dreyer, Liam Louw, Marc Elliot, Razeen Bahadoor

Class Reps

Ryan Pretorius, Nikita Smal

2020 Website

Term 2