BSc. Comp 311 - ADVANCED PROGRAMMING
BACKGROUND AND RATIONALE
Advanced Programming module introduces learners to advanced programming. The module starts with explaining the concept of programming with threads, it explains the process of programming using reflection, explains the process of creating software components, explains the concept testdriven development (e.g. with JUnit), explains concept of version control and building tools (e.g. Git), explains the process of creating generic classes, explains the concept of design patterns, explains the process of building libraries and ends with explaining the concept of lambda expressions.
LEARNING OUTCOMES
At the end of this module learners should be able to:
- Use professional techniques for code and design reuse such as library creation, application of design patterns and development of software components.
- Know and describe the categories of information systems and the level of support that they provide
- Apply advanced programming techniques such as threads, reflection and generic classes, basic distributed programming techniques, object relational mapping.
- Make appropriate use of software engineering tools and techniques such as test-driven development, version control, generation of documentation, build-tools
COURSE CONTENT
- UNIT 1: Programming with threads
- UNIT 2: Using reflection
- UNIT 3: Creating software components
- UNIT 4: Test-driven development (e.g. with JUnit)
- UNIT 5: Version control and build tools (e.g. Git)
- UNIT 6: Creating Generic classes
- UNIT 7: Design patterns
- UNIT 8: Building libraries.
- 9UNIT: Lambda expressions
ASSESMENT
Assignment 1 |
15% |
Assignment 2 |
15% |
Final exam |
70% |
Total |
100% |
RECOMMENDED READINGS
Adam Stewart (2016). Python Programming: Python Programming for Beginners. Adam Stewart
Fabio Nelli (2015). Python Data Analytics: Data Analysis and Science Using Pandas, matplotlib, and the Python Programming Language. Fabio Nelli
BSc. Comp 312 - INFORMATION ANALYSIS AND VISUALISATION
BACKGROUND AND RATIONALE
Information Analysis and Visualization introduces learners to information analysis and visualization. The module starts with explaining the fundamental concepts in information visualization. It then explains the principles of good design practices in information visualization. It describes the different types of information visualization and the options for using them. It explains the concept of Interactive tools for information visualization and dashboards. Explains the process of visual analytics for identifying trends and patterns in datasets then ends with explaining the practical experience of data exploration.
LEARNING OUTCOMES
At the end of this module learners should be able to:
– Identify and apply fundamental concepts related to information analysis & visualization.
– Demonstrate knowledge of the different types of information visualization and identify appropriate types of visualization for various types of data.
– Apply analytical & visualization tools & techniques to obtain insight from datasets.
COURSE CONTENTS
UNIT 1: Fundamental concepts in information visualization.
UNIT 2: Good design practices in information visualization.
UNIT 3: Different types of information visualization and the options for using them.
UNIT 4: Interactive tools for information visualization and dashboards.
UNIT 5: Visual analytics for identifying trends and patterns in datasets.
UNIT 6: Practical experience of data exploration.
ASSESMENT
Assignment 1 |
15% |
Assignment 2 |
15% |
Final exam |
70% |
Total |
100% |
PRESCRIBED READINGS
Thomas M. Lillesand Ralph W. Kiefer and Jonathan W. Chipman. (2015). REMOTE SENSING AND IMAGE INTERPRETATION. Hoboken: John Wiley and Sons
John R. Jensen. (2015). INTRODUCTORY DIGITAL IMAGE PROCESSING: A Remote Sensing Perspective. Glenview, IL: Pearson Education
RECOMMENDED READINGS
Josiane Zerubia Gabriele Moser (2018). Mathematical Models for Remote Sensing Image Processing: Models and Methods for the Analysis of 2D Satellite and Aerial Images. Cham, Switzerland: Springer International Publishing
BSc. Comp 313 - DATA STRUCTURES AND ALGORITHMS
BACKGROUND AND RATIONALE
Data Structures and Algorithms module introduces learners to data structures and algorithms. This module begins with explaining the theoretical foundations and the practical skills to design and develop software solutions. It then proceeds to explaining the process of manipulating a range of data structures. It then describes the well-known algorithms which process various types of data structures, it proceeds to explain the process of designing implementing and testing algorithms. The module proceeds to explaining the process of developing and improving algorithms and ends with explaining how algorithms can be used to solve advanced real-world data science related tasks.
LEARNING OUTCOMES
At the end of this module learners should be able to:
– Utilise and evaluate the acquired theoretical knowledge of various data structures and the corresponding algorithms which manipulate them.
– Design, develop and test software solutions, which successfully process various data structures.
– Further develop popular algorithms into advanced solutions which solve real-world data related problems.
COURSE CONTENTS
UNIT 1: Data Types
UNIT 2: Character Strings
UNIT 3: Abstract Data Types
UNIT 4: Control Flow Statements
UNIT 5: Complexity of Algorithms (Big O Notation).
UNIT 6: Iterative Algorithms.
UNIT 7: Recursive Algorithms.
UNIT 8: Linear Data Structures: Arrays, Stacks, Queues, Linked Lists.
UNIT 9: Non-Linear Data Structures: Graphs, Trees
UNIT 10: Maps and Hash Tables.
UNIT 11: Sorting Algorithms.
UNIT 12: Optimization Algorithms/Approaches.
ASSESMENT
Assignment 1 |
15% |
Assignment 2 |
15% |
Final exam |
70% |
Total |
100% |
PRESCRIBED READINGS
Narasimha Karumanchi (2017). Data Structures And Algorithms Made Easy. Career Monk Publications.
Sammie Bae (2019). JavaScript Data Structures and Algorithms: An Introduction to Understanding and Implementing Core Data Structure and Algorithm Fundamentals. Hamilton: Sammie Bae
RECOMMENDED READINGS
Narasimha Karumanchi (2016). Data Structures and Algorithmic Thinking with Python. Career Monk Publications
Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser (2013). Data Structures and Algorithms in Python. Hoboken: John Wiley and Sons
BSc. Comp 314 - HUMAN COMPUTER INTERACTION AND DESIGN
BACKGROUND AND RATIONALE
Human Computer Interaction and Design module introduces learners to human computer interaction and design. The module begins with explaining the technical knowledge and skills necessary for designing effective human computer interactions and carrying out user-centred design activities to inform the creation of systems and applications. The module further explains the process of experiencing managerial issues affecting the development of human-computer interactions, and ends with explaining the relevant legal, social, ethical and professional issues in human computer interactions.
LEARNING OUTCOMES
At the end of this module learners should be able to:
– Deploy theory, design principles, tools and methodologies to implement and evaluate human- computer interactions
– Carry out design research to inform development of systems and applications
– Construct and create prototypes of human-computer interactions
– Demonstrate the origins of ideas by correctly citing and referencing sources used in the work
COURSE CONTENTS
UNIT 1: Design Process
UNIT 2: Prototyping
UNIT 3: Prototyping Tools
UNIT 4: User Research
UNIT 5: Research Methods
UNIT 6: Evaluation of HCI solutions
UNIT 7: Usability testing
UNIT 8: Cognitive Psychology
UNIT 9: Information Processing
UNIT 10: HCI methodologies
UNIT 11: standards and guidelines
UNIT 12: Multi-Modal Interactions
UNIT 13: Multi-Sensory Interactions
UNIT 14: Tangible User Interfaces
UNIT 15: Brain Computer Interfaces
UNIT 16: Natural User Interfaces
UNIT 17: Dialog Systems, Metaphors
UNIT 18: Conceptual Models
UNIT19: Relevant legal, social, ethical and professional issues.
ASSESSMENT
PRESCRIBED READINGS
Sharp, Rodgers and Preece (2019). INTERACTION DESIGN: Beyond Humancomputer Interaction. Indianapolis: John Wiley and Sons
Schneiderman, Plaisant, Cohen and Jacobs and Elmqvist (2018). DESIGNING THE USER INTERFACE: STRATEGIES FOR EFFECTIVE HUMAN-COMPUINTETRER ACTION. Harlow, Essex: Pearson Education.
RECOMMENDED READINGS
Theodor Wyeld Paul Calder and Haifeng Shen (2015). Computer-Human Interaction: Cognitive Effects of Spatial Interaction, Learning, and Ability. Switzerland: Springer International Publishing
David Benyon (2014). Designing Interactive Systems: A comprehensive guide to HCI, UX and interaction design. London: Pearson Education