Course units effective from academic year 2019/2020 to date

CSC401X2: Advanced Java Programming
Course Code: CSC401X2
Course Title: Advanced Java Programming
Credit Value: 02
Hourly Breakdown: Theory Practical Independent Learning
15 30 55
Objectives: Improve skills in Java programming language so that solutions for real world/industrial problems can be formulated and to obtain necessary practical knowledge to prepare students for certification such as Java (Oracle) certification.
Intended Learning Outcomes:
  • Describe the principles of abstract classes and methods, Exceptions, Errors, and Concurrency
  • Define abstract classes and interfaces
  • Identify suitable APIs for solving computational problems
  • Use Lambda expressions, collections and generics appropriately
  • Use core Java APIs in Collections, Streams, I/O, Database Connectivity, and Concurrency
  • Perform testing and debugging using appropriate tools and formal methods
  • Deploy Java SE applications
  • Recalling Java Fundamentals: Primitive Types, Operators, and Flow Control statements, Arrays, Text, Date, Time, Numeric, String and Stringbuilder Objects, OOP concepts
  • Exception Handling: Java Exceptions and errors, Fixing logical errors
  • Files and Streams: Readers and writers from streams, Java I/O API, Java Streams API
  • Class Design: Mutability and immutability of objects, abstract methods, abstract classes, interfaces, Nested Classes, Enumerated types, collections and generics in Java
  • Advanced topics in Java: Lambda expressions, Java Concurrency and Multithreading, Java Modules, Annotations, Java Database Connectivity, Java Security, Testing and Debugging, Oracle Cloud Deployment
Teaching/Learning Methods: Lecture, Practical using IDEs, Use of multimedia presentations and OER, Guided learning
Assessment Strategy:
  • In-course Assessments (Practical) —————————————-30%
  • End-of-course Examination (Practical) ———————————-70%
  • Horstmann, C., Core Java Volume I – Fundamentals, 11th Ed., Pearson, 2018.
  • Horstmann, C., Core Java Volume II – Advanced Features, 11th Ed., Pearson, 2019.
  • Schildt, H., Java: The Complete Reference, 11th Ed., McGraw-Hill Education, 2018.
  • Deitel, P. and Deitel, H., Java How to Program, 11th Ed., Pearson, 2017.
  • Kalemis, D., The Fundamental Concepts of Object-Oriented Programming, 2013.
CSC402X2: Computer Networking Certification
Course Code: CSC402X2
Course Title: Computer Networking Certification
Credit Value: 02
Hourly Breakdown: Theory Practical Independent Learning
15 30 55
Objectives: Provide skills required to support, maintain and troubleshoot a computer network, and to prepare students for Cisco Certified Network Associate (CCNA) examination.
Intended Learning Outcomes:
  • Describe network fundamentals such as network components, architectures, cabling types and IP addressing
  • Configure various network devices, protocols, and services
  • Apply security features of networking
  • Compare traditional network with controller-based network
  • Network Fundamentals: Functions of network components, Network topology architectures, Physical interface and cabling types, TCP and UDP, IPv4 addressing and subnetting, IPv6 addressing, Wireless principles, virtualization fundamental, switching concepts
  • Network Access Configuration: Configure and verify VLANs, inter-switch connectivity, Layer 2 discovery protocols, Ethernet Channel and Access Point modes
  • IP Connectivity: Components of routing table, configure IPv4 and IPv6 static routing, single area OSPFv2
  • IP Services: NAT, NTP operating in a client and server mode, DHCP and DNS within a network, function of SNMP in network operations, syslog features including facilities and levels, configure DHCP client and relay, TFTP/FTP in a network
  • Network Security Configuration: Key security concepts, device access control, access control lists, Layer 2 security features, WLAN using WPA2 PSK
  • Automation and programmability: Automation impacts on network management, Controller-based and software-defined architectures, north-bound and south-bound APIs, characteristics of REST-based APIs
Teaching/Learning Methods: Lectures, Laboratory practicals, Guided learning, Assignments, Use of simulation tools
Assessment Strategy:
  • Continuous assessment ———————————————10%
  • In-course assessments (Theory and Practical) ——————-30%
  • End-of-course (Practical)——————————————–60%
  • Odom, W. (2019). CCNA 200-301 Official Cert Guide Library, 1st Ed., Cisco Press.
  • Lammle, T. (2020). Understanding Cisco Networking Technologies. Volume 1: Exam 200-301. Sybex.
  • Lammle, T. (2020). CCNA Certification Study Guide. Volume 2: Exam 200-301. Sybex.
  • Empson, S. (2020). CCNA 200-301 Portable Command Guide. 5th Ed., Cisco Systems Inc.
CSC403X2: Computer System Administration
Course Code: CSC403X2
Course Title: Computer System Administration
Credit Value: 02
Hourly Breakdown: Theory Practical Independent Learning
15 30 55
Objectives: Provide theoretical and practical knowledge required to manage and maintain hosts and various networked servers.
Intended Learning Outcomes:
  • Design systems required for an organisation
  • Construct server environments consisting web, domain, mail and proxy servers in an organisation using best practices
  • Demonstrate knowledge in securing and administering systems
  • Host administration: Basic commands, Files, Directories and File System, Editors, Processes, Users and group management, Package management, Automating system administration
  • Server administration: Install and configure Web server, Email server, Domain server and Proxy server
  • Securing servers and networks: Securing networks and servers, monitoring network and servers, setting up backups and disaster recovery
Teaching/Learning Methods: Lecture, Practical, Use of OER, Simulation, Guided learning
Assessment Strategy:
  • In-Course Assessment (Theory and Practical)———————40%
  • End-of-Course Practical Examination——————————60%
  • Blokdyk, G. (2019). Computer Network Administration: A Clear and Concise Reference. 1st ed. 5 Star Cooks.
  • Nemeth, E., Snyder G., Hein, T., Whaley, B., and Mackin, D. (2017). UNIX and Linux System Administration Handbook. 5th ed. Addison-Wesley.
  • Negus, C. (2020). Linux Bible. 10th ed. Wiley.
  • Bauer, M. D. (2005). Linux Server Security. 2nd ed. O’Reilly Media Inc.
CSC404X2: Mobile Platforms and Development Environments
Course Code: CSC404X2
Course Title: Mobile Platforms and Development Environments
Credit Value: 02
Hourly Breakdown: Theory Practical Independent Learning
15 30 55
Objectives: Address latest technological developments in well-known mobile platforms and provide hands-on experience in developing mobile applications under different development environments.
Intended Learning Outcomes:
  • Recognize the advantages and limitations pertaining to mobile computing systems
  • Compare IDEs, tools and techniques used for mobile applications development
  • Choose appropriate development platform for different scenarios
  • Develop cross platform mobile applications using Flutter and Dart
  • Build robust code with Unit, widget, and integration testing
  • Deploy applications in Google Play Store and Apple App Store with single codebase
  • Mobile platforms: Historical perspectives, constraints, requirements and limitations of mobile computing systems, different flavours of mobile platforms and facilities
  • Mobile application frameworks and IDEs: Android studio, iOS SDK, HTML5, Low-Code, Flutter and Dart
  • Good design and practices: Adopt, use, transact, return and UI/UX principles
  • Mobile application development: Hands-on practical on popular mobile operating systems such as Android and Apple iOS using Flutter, maintaining version control systems
  • Preparing and releasing mobile applications: Preparing apps for releasing, trends and techniques in releasing, popularizing, marketing and selling mobile applications using Google play store and Apple’s app store
  • Latest technological developments and future trends: Contactless transactions and data exchanges using near field communications (NFC)
Teaching/Learning Methods: Lecture, Practical using Development tools, Use of multimedia presentations and OER, Guided learning, Small group assignments, Group project
Assessment Strategy:
  • In-Course Assessment (Theory and Practical)———————30%
  • End-of-Course Practical Examination—————————–70%
  • Martins, F. (2021). Flutter And Dart The Complete Guide: Create Cross-Platform Mobile Apps with Google’s Latest Open-Source SDK Through Flutter And Dart.
  • Alessandria, S. (2020). Flutter Projects: A practical, project-based guide to building real-world cross-platform mobile applications and games. Packt publishing.
  • Lingras, P., Triff, M., and Lingras, R. (2016). Building Cross-Platform Mobile and Web Apps for Engineers and Scientists: An Active Learning Approach. 1st ed. Cengage Learning
CSC405X6: Team Project
Course Code: CSC405X6
Course Title: Team Project
Credit Value: 06
Hourly Breakdown: Theory Practical Independent Learning
20 580
Objectives: Develop capability of integrating the techniques and concepts introduced in software development, and improve the ability for solving real world problems by incorporating research components.
Intended Learning Outcomes:
  • Frame a solution with appropriate research methodology
  • Select appropriate programming languages and/or software development tools for a project
  • Test the proposed solution for its effectiveness
  • Take part in responsibility for running group meetings with the assistance of supervisor(s)
  • Explain technical work, both verbally and in written form as a co-author
  • Team projects should be problem-oriented and it should be relevant to the computing discipline. The project could be industrial, academic or a hybrid under the guidance of an academic and/or industrial supervisor(s).
  • Each team of 3 or 4 students has a supervisor who they meet each week, and who carefully guides them at the beginning, but gives them as much freedom and control as they need later on, tailoring the project to defined requirements.
  • Each student in a team shall maintain a diary to record his/her progress activity during the project development.
  • At the end of second semester, a team shall submit the project report and each student in the team is expected to submit the diary and deliver an oral presentation.
  • Students who fail to obtain a minimum grade of D+ will be required to do an additional individual project, considering the 40% marks* given to the final project report as indicated in the evaluation criteria.
    • The project work will be assigned by an academic panel of the Department.
    • The individual project amounts to 240 notional hours that shall be continually monitored, assessed and evaluated by an academic panel of the Department.
    • On completion each student should submit a project report with demonstration.
    • The final grade of the students who complete their individual projects shall not exceed a grade of C.
Teaching/Learning Methods: Mentoring, Small group discussions, Case studies, Presentations, Demonstrations
Assessment Strategy:
  • Project diary ———————————-20%
  • * Team Project Report—————————40%
  • Project Presentation and individual viva-voce—40%
CSC406X8: Industrial Training
Course Code: CSC406X8
Course Title: Industrial Training
Credit Value: 08
Hourly Breakdown: Theory Practical Independent Learning
60 740
Objectives: Provide experience and skills, and develop attitude in finding IT solutions to problems in an industrial environment.
Intended Learning Outcomes:
  • Apply acquired knowledge in industrial environment
  • Develop interpersonal, communication, management and team working skills
  • Adapt to work readily in real industrial projects
  • Perceive state-of-the-art industrial technologies
  • Formulate solutions for real world computational problems
  • The industrial training is offered during the second semester.
  • Students will be trained in an appropriate industry for a period of four to six months which amounts to 800 notional hours under the guidance of academic and/or industrial mentors.
  • Any additional stay at the industry will not carry any additional credits.
  • It is the student’s responsibility to find a placement in consultation with the department. The department may assist the student in finding a placement in an appropriate industry.
  • Students shall maintain a diary to record their progress activity during the training.
  • Academic staff will visit the training institution at least once during the training period to monitor their progress.
  • On completion of the industrial training, each student should submit the report, diary and deliver an oral presentation.
  • Students who fail to obtain a minimum grade of D+ in industrial training may opt for a general degree as the training is non-repeatable.
Teaching/Learning Methods: Mentoring, Weekly recording of training diaries, Code reviews, Progress meetings, Supervised study
Assessment Strategy:
  • Training diary———————————-20%
  • Progress as per feedback from mentor(s)———20%
  • Presentation————————————20%
  • Final Report————————————40%