Cbo - Elen4010a - 2023
Cbo - Elen4010a - 2023
Cbo - Elen4010a - 2023
Academic Staff
1 Course Background
The course forms part of the “Software Development” line of courses. It follows on from
Software Development II and focuses on “modern” software development. Modern software
development is defined as being highly collaborative, making use of an agile methodologies,
and using modern platforms, languages, technologies, and architectures.
2 Course Objectives
This course has three main objectives. In terms of collaboration, students will learn how to
work effectively in small teams and use tools like version control to continuously integrate
and deliver software solutions. Agile project management approaches will be explored and
practised, illustrating how agile teams can be responsive to change and maximise value for
the customer. The web as a development platform, browser technologies, and a client-server
architecture will be introduced.
3 Course Outcomes
Agile Methodologies
Iterative and incremental development; user stories; story mapping; vertical slices; pro-
ject planning; Scrum; sprints
DevOps
Continuous integration, delivery and deployment; Git workflows; trunk-based develop-
ment; feature toggles; short-lived feature branches; pull requests for code review
Data Persistence
Relational databases and other forms of persistence; normal forms; SQL
Testing
Testing pyramid; integration and acceptance testing; testing in JavaScript
This course assumes students have a solid knowledge of fundamental programming language
concepts including functions, classes, flow control, variables and scope. Students also need to
be familiar with unit testing and be able to use version control in a simple manner.
The prerequisites and co-requisites to register for this course are defined in the current Rules
& Syllabuses: Faculty of Engineering and the Built Environment.
6 Assessment
*Note that the end-of-year examination requires a minimum of 35% in order to pass the course
(termed a subminimum). This means that even if the average final mark for the course is 50%
or above, a final examination mark of less than 35% does not qualify one to pass the course,
as per the University Rules and Syllabuses.
The student will be assessed in the group laboratory, the individual project and in the examina-
tion. The laboratory and project will require the student to demonstrate proficiency and ability
in the areas listed in the Course Outcomes (Section 3) in a practical, hands-on environment.
The project will be undertaken individually. It will require students to research a topic that is
not covered formally in the course lectures. Each student will submit a written report as well
as source code, and associated artefacts, for assessment.
The group laboratory will require the student to work as part of a team to creatively identify,
assess, formulate and solve a software development problem by using concepts, methods, tools
and techniques introduced in the course. The emphasis in the laboratory will be on team work
and the students will be assessed by means of their laboratory artefacts, written reports and
recorded presentations.
The examination is the only mandatory, in-person, requirement for this course. Students will
be required to write the examination on the Wits campus at the venue, and scheduled date
and time, that is published by the Examination and Graduations Office.
For the purpose of Rule G.13 satisfactory performance in the work of the class means attendance
and completion of prescribed laboratory activities, attendance at tutorials designated as com-
pulsory in this CB&O, submission of assignments, writing of scheduled tests unless excused in
terms of due procedure.
The basic material of the course is covered in the lectures. In general, the lectures are comple-
mented by additional material which will be readily available.
The student is expected to undertake a significant amount of self-study and practice in this
course in order to gain a full understanding of the material. Lectures will be used to introduce
and explain key concepts, but these will need to be reinforced. Students are expected to spend
All supporting information for this course can be found on the course website and in the
handouts/articles provided to students.
Lectures
Lectures will take the form of prepared videos which students are expected to watch as well
as in-person discussions of questions or problems posed in the videos. The purpose of these
exercises is to reinforce or deepen the material covered in the lectures.
Individual Project
Details on the project will be provided within the first week of term in the form of a project
brief. Refer to the School’s document detailing the key dates for fourth year students for the
submission deadline. Note that the School’s policy on the timely submission of projects, as
described in the Red Book, will be strictly enforced.
Group Laboratory
This laboratory forms an essential part of the course, as many of the concepts introduced can
only be fully understood through practical exercises. The laboratory will include a compre-
hensive team programming project. The laboratory project will be developed incrementally
and iteratively over a number of weeks.
Consultation
The lecturer is available for consultation primarily during the laboratory sessions. Students
are encouraged to make use of the laboratory sessions to discuss any problems they may have
with the course material.
All information and announcements regarding the course will be posted on Ulwazi. All stu-
dents are expected to consult Ulwazi and their student email at regular intervals.