Code | Faculty |
---|---|
02130082 | Faculty of Engineering, Built Environment and Information Technology |
Credits | Duration |
---|---|
Duration of study: 4 years | Total credits: 683 |
The following persons will be considered for admission: a candidate who is in possession of a certificate that is deemed by the University to be equivalent to the required Grade 12 certificate with university endorsement; a candidate who is a graduate from another tertiary institution or has been granted the status of a graduate of such an institution; and a candidate who is a graduate of another faculty at the University of Pretoria.
Life Orientation is excluded when calculating the APS.
Grade 11 results are used in the provisional admission of prospective students.
A valid qualification with admission to degree studies is required.
Minimum subject and achievement requirements, as set out below, are required. On first-year level a student has a choice between Afrikaans and English as language medium. In certain cases, tuition may be presented in English only, for example in electives, where the lecturer may not speak Afrikaans or in cases where it is not economically or practically viable.
Should a candidate obtain an APS of 26 to 29, consideration for admission will be based on the results of the NBT, provided the quotas regarding student numbers have not been reached.
Minimum requirements for 2017 | ||||||||
Achievement level | ||||||||
Afrikaans or English | Mathematics | APS | ||||||
NSC/IEB | HIGCSE | AS-Level | A-Level | NSC/IEB | HIGCSE | AS-Level | A-Level | |
5 | 3 | C | C | 5 | 3 | C | C | 30 |
Note that a student who wishes to continue with an MSc(Computer Science) or MCom(Informatics) or MIS(Information Science) should take four of the five honours modules from that specific department in their fourth year of study.
Also consult the G Regulations.
(i) A student is promoted to the following year of study after obtaining the required credits as mentioned below:
• Second year of study after obtaining at least 70% of the credits of the first year of study.
• Third year of study after obtaining at least 70% of the credits of the second year of study.
• Fourth year of study after obtaining at least 70% of credits of the third year of study.
(ii) The degree is conferred if all the prescribed modules have been passed.
Minimum credits: 176
Module content:
Find, evaluate, process, manage and present information resources for academic purposes using appropriate technology. Apply effective search strategies in different technological environments. Demonstrate the ethical and fair use of information resources. Integrate 21st-century communications into the management of academic information.
Module content:
By the end of this module students should be able to cope more confidently and competently with the reading, writing and critical thinking demands that are characteristic of the field of Information Technology.
Module content:
The focus is on object-oriented (OO) programming. Concepts including inheritance and multiple inheritance, polymorphism, operator overloading, memory management (static and dynamic binding), interfaces, encapsulation, reuse, etc. will be covered in the module. The module teaches sound program design with the emphasis on modular code, leading to well structured, robust and documented programs. A modern OO programming language is used as the vehicle to develop these skills. The module will introduce the student to basic data structures, lists, stacks and queues.
Module content:
This module introduces concepts and terminology related to the computer science discipline. General topics covered include the history of computing, machine level representation of data, Boolean logic and gates, basic computer systems organisation, algorithms and complexity and automata theory. The module also introduces some of the subdisciplines of computer science, such as computer networks, database systems, compilers, information security and intelligent systems. The module also focues on modelling of algorithms.
Module content:
Introduction to Philosophy
The two semester modules at first-year level introduce students to the four main subfields of Philosophy, namely epistemology and metaphysics, ethics and political philosophy. This module introduces students to two of these subfields. Students must contact the Department of Philosophy to ascertain which two subfields are covered in each semester as the choice may change from time to time due to availability of teaching staff. Students will become acquainted with the nature of philosophical reflection by exploring a number of classical philosophical themes in each subfield. Throughout the module there is an emphasis on developing those critical thinking, reading and writing skills that are required in Philosophy, while students become acquainted with the power of critique as critical judgment and discernment.
Module content:
The nature and function of accounting; the development of accounting; financial position; financial result; the recording process; processing of accounting data; treatment of VAT; elementary income statement and balance sheet; flow of documents; accounting systems; introduction to internal control and internal control measures; bank reconciliations; control accounts; adjustments; financial statements of a sole proprietorship; the accounting framework.
Module content:
This module is an introduction to the study field of information science and its various professions. Key concepts that will be discussed include the following: the human as information processor and user; the life-cycle of information in terms of processes, products and role-players; as well as the communication of information. The social-ethical impact of globalisation is included as a key concern, with reference to Africa.
Module content:
Introduction to business management as a science; the environment in which the enterprise operates; the field of business, the mission and goals of an enterprise; management and entrepreneurship. Responsible leadership and the role of a business in society. The choice of a form of enterprise; the choice of products and/or services; profit and cost planning for different sizes of operating units; the choice of location; the nature of production processes and the layout of the plant or operating unit.
Introduction to and overview of general management, especially regarding the five management tasks: strategic management; contemporary developments and management issues; financial management; marketing and public relations. Introduction to and overview of the value chain model; management of the input; management of the purchasing function; management of the transformation process with specific reference to production and operations management; human resources management and information management; corporate governance and black economic empowerment (BEE).
Module content:
Propositional logic: truth tables, logical equivalence, implication, arguments. Mathematical induction and well-ordering principle. Introduction to set theory. Counting techniques: elementary probability, multiplication and addition rules, permutations and combinations, binomial theorem, inclusion-exclusion rule.
Module content:
*Students will not be credited for more than one of the following modules for their degree: WTW 134, WTW 165, WTW 114, WTW 158. WTW 134 does not lead to admission to Mathematics at 200 level and is intended for students who require Mathematics at 100 level only. WTW 134 is offered as WTW 165 in the second semester only to students who have applied in the first semester of the current year for the approximately 65 MBChB, or the 5-6 BChD places becoming available in the second semester and who were therefore enrolled for MGW 112 in the first semester of the current year.
Functions, derivatives, interpretation of the derivative, rules of differentiation, applications of differentiation, integration, interpretation of the definite integral, applications of integration. Matrices, solutions of systems of equations. All topics are studied in the context of applications.
Module content:
This module introduces imperative computer programming, which is a fundamental building block of computer science. The process of constructing a program for solving a given problem, of editing it, compiling (both manually and automatically), running and debugging it, is covered from the beginning. The aim is to master the elements of a programming language and be able to put them together in order to construct programs using types, control structures, arrays, functions and libraries. An introduction to object orientation will be given. After completing this module, the student should understand the fundamental elements of a program, the importance of good program design and user-friendly interfaces. Students should be able to conduct basic program analysis and write complete elementary programs.
Module content:
Budgeting, payroll accounting, taxation – income tax and an introduction to other types of taxes, credit and the new Credit Act, insurance, accounting for inventories (focus on inventory and the accounting entries, not calculations), interpretation of financial statements.
Module content:
General systems theory, creative problem solving, soft systems methodology. The systems analyst, systems development building blocks, systems development, systems analysis methods, process modelling.
Module content:
*Students will not be credited for more than one of the following modules for their degree:
WTW 124, WTW 146 and WTW 164. The module WTW 146 is designed for students who require Mathematics at 100 level only and does not lead to admission to Mathematics at 200 level.
Vector algebra, lines and planes, matrix algebra, solution of systems of equations, determinants. Complex numbers and polynomial equations. All topics are studied in the context of applications.
Module content:
Fundamental concepts of modern operating systems in terms of their structure and the mechanisms they use are studied in this module. After completing this module, students will have gained, as outcomes, knowledge of real time, multimedia and multiple processor systems, as these will be defined and analysed. In addition, students will have gained knowledge on modern design issues of process management, deadlock and concurrency control, memory management, input/output management, file systems and operating system security. In order to experience a hands-on approach to the knowledge students would have gained from studying the abovementioned concepts, students will have produced a number of practical implementations of these concepts using the Windows and Linux operating systems.
Minimum credits: 170
COS 222 has replaced COS 122
Module content:
Data abstraction is a fundamental concept in the design and implementation of correct and efficient software. In prior modules, students are introduced to the basic data structures of lists, stacks and queues. This module continues with advanced data structures such as trees, hash tables, heaps and graphs, and goes into depth with the algorithms needed to manipulate them efficiently. Classical algorithms for sorting, searching, traversing, packing and game playing are included, with an emphasis on comparative implementations and efficiency. At the end of this module, students will be able to identify and recognise all the classical data structures; implement them in different ways; know how to measure the efficiency of implementations and algorithms; and have further developed their programming skills, especially with recursion and polymorphism.
Module content:
The module will introduce the concepts of model-driven analysis and design as a mechanism to develop and evaluate complex software systems. Systems will be decomposed into known entities, such as design patterns, classes, relationships, execution loops and process flow, in order to model the semantic aspects of the system in terms of structure and behaviour. An appropriate tool will be used to support the software modelling. The role of the software model in the enterprise will be highlighted. Students who successfully complete this module will be able to concep-tualise and analyse problems and abstract a solution.
Module content:
This module will introduce the student to netcentric systems by focusing on the development of systems for the web, mobile devices and the cloud. To lay the foundation on which the rest of the module can follow, traditional web-based programming languages such as HTML5, JavaScript, CSS and Python will be covered differentiating between client-side and server-side computation. Persistence of web-based data will be included for both client and server-based computation. These technologies will be extended and applied to mobile platforms where the availability of a connection, location-services and mobile device limitations play a role. For cloud platforms, aspects relating to task partitioning, security, virtualisation, cloud storage and access to the shared data stores, data synchronisation, partitioning and replication are considered. In order to practically demonstrate that a student has reached these outcomes, students will be required to use, integrate and maintain the necessary software and hardware by completing a number of smaller practical assignments where after integrating all these technologies into a comprehensive and practical programming project is required.
Module content:
This module provides the foundations on which other modules build by enabling a deeper understanding of how software interacts with hardware. It will teach the design and operation of modern digital computers by studying each of the components that make up a digital computer and the interaction between these components. Specific areas of interest, but not limited to, are: representation of data on the machine-level; organisation of the machine on the assembly level; the architecture and organisation of memory; inter- and intra-component interfacing and communication; data paths and control; and parallelism. Topic-level detail and learning outcomes for each of these areas are given by the first 6 units of ‘Architecture and Organisation’ knowledge area as specified by the ACM/IEEE Computer Science Curriculum 2013.
The concepts presented in the theory lectures will be reinforced during the practical sessions by requiring design and implementation of the concepts in simulators and assembly language using an open source operating system.
Module content:
*Closed – requires departmental selection.
Advanced Markup Languages 1. This module investigates XML and its related technologies (such as XSLT, XPath, XSL-FO, DTD, XML Schema, and namespaces) as a vital part of the web development process.
Module content:
*Closed - requires departmental selection.
Advanced Markup Languages 2. This module assumes knowledge of dynamic scripts and basic web based technologies such as PHP as well as the use of relational databases like MySQL. The module explores the interplay between scripting languages, databases, and current industry standard web technologies, from both the server-side and client-side perspectives. The module has a focus on developing hands-on practical skills.
Module content:
Database design: the relational model, structured query language (SQL), entity relationship modelling, normalisation, database development life cycle; practical introduction to database design. Databases: advanced entity relationship modelling and normalisation, object-oriented databases, database development life cycle, advanced practical database design.
Module content:
Systems analysis. Systems design: construction; application architecture; input design; output design; interface design; internal controls; program design; object design; project management; system implementation; use of computer-aided development tools.
Module content:
Information seeking and retrieval. This module explores the theory and practice of effective information seeking and retrieval. It builds on supporting research paradigms such as the systems, user-centred, cognitive and socio-cognitive paradigms. The focus is on the complexities of effective information seeking and retrieval within the context of information behaviour on a personal level, as well as in the context of professional, academic or everyday information needs.
Module content:
Social and ethical impact. This module examines moral and legal regulation practices related to information in print and digital environments. Different ethical theories are identified and applied to privacy, access to information, information poverty and censorship. The interpretation and enforcement of rules and regulations are discussed.
Module content:
Setting up and solving recurrence relations. Equivalence and partial order relations. Graphs: paths, cycles, trees, isomorphism. Graph algorithms: Kruskal, Prim, Fleury. Finite state automata.
Module content:
Fundamental concepts of modern operating systems in terms of their structure and the mechanisms they use are studied in this module. After completing this module, students will have gained, as outcomes, knowledge of real time, multimedia and multiple processor systems, as these will be defined and analysed. In addition, students will have gained knowledge on modern design issues of process management, deadlock and concurrency control, memory management, input/output management, file systems and operating system security. In order to experience a hands-on approach to the knowledge students would have gained from studying the abovementioned concepts, students will have produced a number of practical implementations of these concepts using the Windows and Linux operating systems.
Minimum credits: 186
Module content:
The module exposes students to problems associated with software development on an industrial scale. Overall goals of the module are: to become familiar with the latest trends in software engineering; to understand the software engineering process and to appreciate its complexity; to be exposed to a variety of methodologies for tackling different stages of the software lifecycle; to understand and apply the concepts of systems administration and maintenance; to complete the development of a fairly large object orientation-based software product. The focus of the module is on a project that lasts the whole year. The project is completed in groups of approximately four (4) students and teaches students to take responsibility for a variety of roles within a group, and to understand the different requirements for these; to experience the advantages and problems of working in a group; professionalism with regards to particularly colleagues and clients.
After the successful completion of this module, the student will be able to: understand the psychology of a client; work in groups; and have an appreciation for planning, designing, implementing and maintaining large projects. These qualities should place the students in a position in which they are able to handle software development in the corporate environment.
Module content:
The main objective of this module is to introduce a selection of topics from artificial intelligence (AI), and to provide the student with the background to implement AI techniques for solving complex problems.
This module will cover topics from classical AI, as well as more recent AI paradigms. These topics include: search methods, game playing, knowledge representation and reasoning, machine learning, neural networks, genetic algorithms, artificial life, planning methods, and intelligent agents. In the practical part of this module, students will get experience in implementing
(1) game trees and evolving game-playing agents;
(2) a neural network and applying it to solve a real-world problem; and
(3) a genetic algorithm and applying it to solve a real-world problem.
Module content:
This module builds on a prior introductory module on database technology and provides more advanced theoretical and practical study material for managing large volumes of data, for example, noSQL database systems and MapReduce. The module will consider file system models, for example Hadoop, relevant for big data storage, manipulation at scale, mining and visualisation. Basic knowledge of parallel decomposition concepts will be included.
Module content:
The objective of this module is to acquaint the student with the terminology of communication systems and to establish a thorough understanding of exactly how data is transferred in such communication networks, as well as applications that can be found in such environments. The study material includes: concepts and terminology, the hierarchy of protocols according to the OSI and TCP/IP models, protocols on the data level, physical level and network level as well as higher level protocols. The practical component of the module involves programming TCP/IP sockets using a high level language. The emphasis throughout is on the technical aspects underlying the operation of networks, rather than the application of networks.
Module content:
Programming languages are the backbone for software development. Each language has its own different syntax and semantics, but there are many common concepts that can be studied and then illustrated through the languages. The module concentrates on issues of object orientation, including delegation, iteration and polymorphism. It surveys how languages provide the basic building blocks for data and control, as well as exception handling and concurrency. At the end of the module, students will be able to appreciate the rich history behind programming languages, leading to independent principles that evolve over time. They will be skilled at using a variety of programming languages, including new paradigms such as functional, logical and scripting, and will know how to learn a new language with ease. From this experience, they will be able to apply evaluation criteria for choosing an appropriate programming language in a given scenario.
Module content:
This module will introduce the student to the fundamentals of compiler construction. These include: the structural difference between a high-level and a von-Neumann language, the meaning of syntax and semantics and what semantics-preserving correctness means; the concepts of regular expressions, finite automata, context-free grammars in the context of programming languages; the need to construct parse-trees for given programmes; the application of data structures and algorithms for the purpose of code-analysis, code-optimisation and register-allocation; and the limits of code-analysis in terms of undecideability and the halting problem.
After successful completion of the module, the student will have an understanding of the importance of compilers and will understand how to implement a compiler, in terms of its components, the scanner, parser, type checker and code-generator for a given grammar.
Module content:
The aim of this module is to acquire a sound knowledge of the basic theory of interactive computer graphics and basic computer graphics programming techniques. The theory will cover graphics systems and models, graphics programming, input and interaction, geometric objects and transformations, viewing in 3D, shading, rendering techniques, and introduce advanced concepts, such as object-oriented computer graphics and discrete techniques. The module includes a practical component that enables students to apply and test their knowledge in computer graphics. The OpenGL graphics library and the C programming language will be used for this purpose.
Module content:
*Closed – requires departmental selection. The module enables students to combine all their knowledge gained through out their studies to create a functional game. The course consists of extensive game design theory teaching. The students create a game by following an iterative design process, extensive documentation and in depth play testing and usability testing. The final product is a creative, innovative and complete game.Module content:
A review of current trends which are relevant to the application of information systems within a business environment.
Module content:
Information systems in organisations, social and ethical responsibilities, the role of the Informatician. IT end-user relationships; IT management.
Module content:
Application of systems analysis and design in a practical project; programming; use of computer-aided development tools.
Module content:
Information Organisation. The module is concerned with the organisation of information in the digital environment focusing on the structure and use of document management and workflow systems, as well as distribution channels and virtual environments. The characteristics and application of the internet, intranets, as well as portals and applications use, are considered.
Module content:
Information and Knowledge Management. This module focuses on information and knowledge management at an operational level and introduces information and knowledge management at a corporate strategic level. It deals with the management of information and knowledge, which enables the organisation to be competitive. In this module the focus is on four aspects, namely: the 21st century organisation, the external and internal stakeholders that have an interest in information products, as well as the infrastructure that should be in place in organisations to manage information products. The module concludes with a few topics relating to information management at a corporate strategic level.
Module content:
This module develops an appreciation of the fundamentals and design principles for information assurance and security. Students will develop a clear understanding of the basic information security services and mechanisms, enabling them to design and evaluate the integration of solutions into the user application environment. Emphasis will be placed on services such as authorisation and confidentiality. Students will acquire knowledge and skills of Security Models such as the Bell-LaPadula, Harrison-Ruzzo Ullman and Chinese Wall Model. Students will develop a detailed understanding of the confidentiality service by focusing on cryptology and the practical implementation thereof. The student will be introduced to professional and philosophical ethics. At the end of the module students will be able to engage in a debate regarding the impact (local and global) of computers on individuals, organisations and society. The professionalism of IT staff will be discussed against national and international codes of practices such as those of the CSSA, ACM and IEEE.
Minimum credits: 151
Electives:
Five modules (minimum 75 credits) with a maximum of four modules from one department. Should you wish to continue with a Masters' degree, consult the co-ordinator when selecting electives.
Module content:
Introduction to law. General principles of the law of contract. Specific contracts: purchase contracts; letting and hiring of work; employment contracts. Agency. General aspects of entrepreneurial law. Dispute resolution – mediation and arbitration.
Module content:
This project-orientated module is a form of applied learning which is directed at specific community needs and is integrated into all undergraduate academic programmes offered by the Faculty of Engineering, Built Environment and Information Technology.
The main objectives with the module are as follows:
(1) The execution of a community-related project aimed at achieving a beneficial impact on a chosen section of society, preferably but not exclusively, by engagement with a section of society which is different from the student's own background.
(2) The development of an awareness of personal, social and cultural values, an attitude to be of service, and an understanding of social issues, for the purpose of being a responsible professional.
(3) The development of important multidisciplinary and life skills, such as communication, interpersonal and leadership skills.
Assessment in this module will include all or most of the following components: evaluation and approval of the project proposal, assessment of oral and/or written progress reports, peer assessment in the event of team projects, written report-back by those at which the project was aimed at, and final assessment on grounds of the submission of a portfolio and a written report.
Module content:
History of multimedia ideas and technology; current trends in multimedia, latest technologies and future trends of multimedia.Module content:
A study of hypermedia systems, specifically adaptive hypermedia systems, as well as data modelling, storage and retrieval, database structures and metadata. A study of different mark-up languages and their role in multimedia products with the emphasis on data structuring, hyper linking theories and models.Module content:
In this module students will research and discuss a current topic which can change from year to year. The topic for a specific year can be obtained from the departmental website. The topic is related to the creative use of Multimedia Technologies. An understanding of the current multimedia trends is required together with the knowledge of its usage.Module content:
This module provides an overview of the historic and current principles and practice of natural motion animation. Different animation techniques are covered, such as stop motion, traditional animation, and 3D animation. The student receives an opportunity to create an animated short film using a technique of their choice.
Module content:
In this module, students are exposed to research topics and methodologies within the HCI discipline. Students then apply their understanding by proposing and delivering a research paper.Module content:
Enterprise Architecture (EA) involves comprehensive business frameworks that capture the complexity of modern organisations, providing a blue-print for co-ordinating and integrating all components of an organisation. The module will illustrate all the aspects of EA, discuss the need for EA as well as various frameworks, methods and techniques of EA.
Module content:
The analysis of the management, innovation and information systems aspects of the use of e-business technology and strategies
Module content:
• Advanced database design
• Advanced database management
• Database architectures and languages
• Data warehousing and data marts
• Current trends
Module content:
Main emphasis will be on IS project management using a case study to get practical experience in project management.
Module content:
This module will be used to present special, relevant topics within the expertise of the department.
Module content:
In this information age a lot of data is captured every day and recorded in databases, but the wealth of this data is kept locked in the databases because relatively little mining is performed on this data. This module introduces you to data mining in terms of:
• The data mining process - how do you mine data?
• The data mining techniques - an overview of the data mining techniques that can be used;
• Practical data mining experience - a practical project mining real industry data to find unknown patterns; and
• Product overviews - product demonstrations by data mining vendors.
Module content:
This module consists of two main sections. A theoretical framework of information and knowledge management will be addressed in section one. Section two covers the enablers of information and knowledge management. These include: leadership, corporate culture, organisational learning, strategy, laws and policies, measurement and information technology.
Module content:
This module focuses on the main moral issues pertaining to information and ICT, globalisation, privacy and knowledge flow. It covers amongst others the following fields: cyber warfare and terrorism; information philosophy; information security; privacy and the right to information; digital identity management; cyber law; globalisation and the impact on society.
Module content:
This module offers the student the opportunity to become conversant with various knowledge management programmes as well as the development, implementation and evaluation of knowledge management strategies. Knowledge representation and the development of an Intranet will be covered. New key issues in the field of knowledge management conclude this module.
Module content:
This module evaluates approaches to and concepts of the information/knowledge society. It questions the origins and political motives for the promotion of an information/knowledge society, and examines a number of relevant themes in the literature.
Module content:
Establishing an effective competitive intelligence programme is an integral part of every enterprise that wants to survive in the new millennium. This module focuses on the competitive nature of the business environment, the aim of competitive intelligence, Porter's Competitive Forces Model, the distinction between competitive intelligence and industrial espionage, the intelligence process as well as the tools and techniques for the development and implementation of a competitive intelligence programme.
Module content:
Competitive intelligence (CI) provides the decision maker with analysed information about the competitive environment, aimed at satisfying decision-making needs. This module focuses on the role of analysis in the intelligence cycle, applying analysis techniques to a case study, CI and corporate governance, the setting up of a CI capability in an organisation and the problems facing CI professionals in South Africa.
Module content:
Informed by the participatory approach to communication this module reflects in depth on methods for the effective communication of information. In order to achieve this, the nature on information within the context on Information Science will be investigated. Thereafter, communication media will be identified and discussed and students will learn how to create a target audience profile to determine the appropriate media and content for the dissemination of information.
Information and communication technologies (ICTs) and the communication of information will be investigated along with literacy and media literacy. The communication of information will form a central focus of this module. Therefore the role of traditional, interpersonal, as well as modern media will be addressed. The processes of creating meaningful and effective messages for the communication of information as well as intercultural communication will also be addressed.
Module content:
This module will be used to present special, relevant topics within the expertise of the department.
Module content:
This module focuses on state-of-the-art security topics that are current and relevant to industry. The curriculum for the module is determined annually to reflect the current research directions as pursued by the information and Computer Security Architectures (ICSA) research group. The main topics include, but are not limited to: Applied security, including operating system security, secure coding, and cryptography; Trust and trust management systems; Privacy and privacy-enhanced technologies; Social Engineering. Students will be challenged to contribute innovative research ideas in the field of Computer Security by completing a number of mini projects such as writing research papers and writing software programs.
Module content:
This module covers various perspectives of Software Engineering theory and practices. It provides an overview both of the challenges in contemporary software engineering (such as scale, complexity and urgency) and of the recommended practices for overcoming these challenges. It will familiarise students with both the historical and current theories about activities for the design, development, deployment and ongoing operation of software. It will show how these activities aim to be predictable, repeatable, robust, value-producing, and how they aim to meet the specified requirements for the intended system users. It will also emphasise that standardisation and reuse can be important factors in successfully engineering software. The module assumes prior knowledge about Software Engineering at the level of an introductory/undergraduate module.
Module content:
This module discusses software architecture, including the representation of designs, definitions, styles and patterns of architecture. Its themes include model-driven architecture, formal modelling and analysis, and architectural description languages. The module will show that the architecture of a software system is determined by the collection of significant design decisions made early on in the development of that system – decisions concerning the components comprising the system, repeating-patterns of system-wide aspects, and the platforms on which the system will be built. It will discuss how, once these decisions are made and subsequently followed, they end up profoundly affecting the development, deployment, use and ongoing enhancement of that system. The module assumes that the student is familiar with software development lifecycle concepts, and that she/he has been part of at least one significant software development effort. Those who have not completed COS730 will be provided additional background.
Module content:
The focus of this module is on a formal approach to deriving algorithms, known as “correctness by construction”. It relies on Dijkstra's guarded command language (GCL) for specifying the derived algorithms. The requirements of an algorithm are initially stated in terms of a pre- and a post-condition, specified in first order predicate logic. Strategies are given for progressively refining these specifications to GCL notation which can, in turn, easily be translated into a conventional programming language. The surprising power of the method will be demonstrated. Not only are algorithms guaranteed to be correct (in the same sense that the proof of a mathematical theorem is guaranteed to be correct); they frequently turn out to be remarkably efficient. In the early part of the module, a number of well-known algorithms (such as linear and binary search, raising a number to an integer power, finding the approximate log of a number, etc) will be derived in order to become thoroughly familiar with the approach. Later various intermediate level algorithms will be derived (such as simple raster drawing algorithms, pattern matching algorithms, finding the longest string of a certain type, an algorithm to solve the majority voting problem, etc). Finally, the method will be used to derive state-of-the-art algorithms to minimize finite automata and to construct formal concept lattices. The theory necessary to understand these topics will be provided. The value-objectives of the module are: to develop an appreciation that theory can be effectively deployed to solve practical problems; to value the elegance of the algorithmic solutions; and to value a correctness-by-construction mindset over one that is content with debugging into correctness. A basic understanding is assumed of first order predicate logic, as well as competency in mathematical reasoning.
Module content:
The status of Computer Science, including software science, as a proper “science” is closely related with our ability to construct accurate and precise models of the structures and processes of computational systems. The precision of these models is closely related with our ability to express them in formal notations with mathematical rigour, such that it also becomes possible to reason formally about relevant and interesting properties of these models. Examples of such interesting properties are logical consistency (i.e. absence of inherent contradictions), or safety properties such as deadlock freeness. This modules focuses on formal languages and techniques which are suitable for such purposes. Of particular importance are process algebras with which systems of parallel and concurrent computation can be formally described. Other suitable formalisms may be discussed as well, such that the contents of this module may slightly vary from year to year.
Module content:
This module provides the foundation to evaluate and develop educational software. It will introduce didactic principles applicable to the discipline of Computer Science. Using these principles, educational software, such as tools for teaching programming, on-line testing software, and adaptive software to name a few, can be evaluated and developed. Computer Science topics of interest are: programming environments, persistence of information and knowledge, knowledge representation etc.Module content:
Data mining is the extraction of novel knowledge, or hidden patterns, from large data bases. The focus of this course is on how the computational intelligence techniques (such as evolutionary algorithms, swarm algorithms and neural networks) can be used for knowledge extraction. In addition, traditional machine learning techniques (such as decision trees and rule induction) will be covered. The pre-processing of data in preparation for data mining algorithms, as well as the post-processing of results after data mining, will be discussed. Exploratory data analysis and statistical data mining methods are also investigated. Finally, some attention will be given to more modern problems, such as the extraction of hidden knowledge from unstructured data, such as text and images. It is highly recommended that students do COS710 and COS711, as knowledge of these modules are assumed.Module content:
This module introduces the concepts of generic programming in order to generate code at compile-time. Of particular interest is the automatic generation of design pattern implementations at compile-time for use at run-time. To this end, design patterns and compile-time programming techniques such as: basic compile-time programming constructs, object allocation, generalised functors, smart pointer and multi-methods are discussed in detail and applied to design patterns.Module content:
This module will teach the basic theoretical concepts of digital forensic investigations. This module is designed to prepare a student for a wide range of people including, but not limited to, law enforcers, crime investigators and people responsible for internal incident investigations in larger organisations. Digital forensics is a relatively new and upcoming field. It is a field that is not well known by most organisations and therefore, such organisations are ill informed about the digital forensic processes required to conduct a successful digital forensic investigation. The large number of digital devices used to commit crimes or other related incidents, such as fraud and corruption, proved motivation for this module in order to investigate and combat these incidents successfully. The main topics covered, but not limited to, include: An introduction to Digital Forensics; Digital forensic processes; Hardware forensics; Digital forensics tools (software forensics); Forensic readiness; A digital forensics laboratory/facility; Network forensics; Live forensics; Professionalism and ethics in digital forensics; Cyber forensics; Cyber law. Students will be challenged to contribute innovative research ideas in the field of Digital Forensics by completing a number of mini projects such as writing research papers and writing software programs.Module content:
This module covers computer networking principles and the operation of the TCP/IP protocol suite. The module includes studying the operation of relevant protocols, administration of network services, troubleshooting, as well as network design issues and challenges. Prior knowledge is assumed on basic data communications principles, the ISO OSI reference model, and the basic operation of protocols in the TCP/IP protocol suite.Module content:
Computational science relies on the analysis of often complex models, for its empirical data and analyses typically involve an enormous amount of calculations. Parallel computing is one means of reducing the time needed to complete such calculations. This module will examine the kinds of problems that lend themselves to parallel computation and the methods for implementing programs to solve such problems. The aim of the module is to provide a background for parallel and distributed computing as well as practical knowledge of the implementation of computational experiments.Module content:
This module covers the major themes of spatial databases with application to geographic information systems (GIS), i.e. systems concerning data with an implicit or explicit reference to a location relative to the earth. Topics covered include an introduction to spatial databases and spatial data management systems, representation of geographic data, spatial data modelling, computational geometry, spatial data indexing, query processing and spatial data standards. For Computer Science students the module is an introduction to the ever increasing application field of geographics information systems (GIS), and for Geoinformatics students the module provides insight into the Computer Science foundations of the field.
Copyright © University of Pretoria 2024. All rights reserved.
Get Social With Us
Download the UP Mobile App