Year 1 – Cyber Security and Software Engineering
Core Units
3 years
February, July & November
ECU Sri Lanka Campus
172,000
2025 Domestic Unit Price (LKR)
1,130
2025 International Unit Price (USD)
Focusing on the practical and theoretical dimensions of computer science, this course prepares students for careers in the fields of computing and software development.
The Bachelor of Computer Science emphasises critical thinking and problem solving alongside discipline knowledge and skills, providing students with the opportunity to undertake complex computer science projects both independently and in teams.
Students are introduced to concepts including programming, mathematics, networking, databases and security in their foundation year, before specialising in an area of computer science. Advanced topics in computer science, including artificial intelligence and distributed computing, are studied alongside the chosen area of specialisation.
This course prepares graduates for a range of careers via practical experience in analysing and solving real-world problems in computer science and related disciplines, underpinned by strong theoretical concept knowledge.
Core Units
SCI1125 - Professional Science Essentials
This unit will introduce students to the skills required of professional scientists, with a special focus on effective communication. These professional skills include techniques of accessing, evaluating and presenting scientific information. Written, visual and oral presentation skills for scientific and general audiences will be developed through the analysis of topical scientific issues. This unit will prepare students to develop careers in the science discipline of choice.
View HandbookCSP1150 - Programming Principles
This unit introduces students to the principles of programming, including data manipulation, control structures, and abstraction. The unit focuses upon developing the ability to design and implement programs to solve problems.
View HandbookMAT1252 - Mathematics for Computing
This unit presents fundamental topics in mathematics that are essential to computing studies including propositional and predicate calculus, Boolean algebra, set theory, computer arithmetic and number systems in computing. It also provides an introduction to matrix algebra with applications to computing and cryptography.
View HandbookUnderstanding of the components of systems analysis: definition of a system, the role of and context of systems analysis, interfacing with the user; the life cycle of a management information system from the feasibility study through to the post-implementation audit. Applying skills by fact gathering, interviewing, presenting, group working, documenting an existing system; analysis techniques involving use cases, state diagrams, data modelling, data from diagrams, data dictionaries, decision tables, web page, screen and report design.
View HandbookCSG1105 - Applied Communications
This unit introduces students to current and proposed telecommunications and networking infrastructures and their application in business and communications services. With a primary focus on the Internet and World Wide Web, students examine in detail the principles, processes and technologies associated with data communications and computer networking, applications of the major carriage media, communications standards and emerging broadcast and narrowcast technologies based on communications channels.
View HandbookThe unit is an introduction to computer security which serves as a preliminary unit to prepare students for various advanced studies within their respective courses. The unit focuses on understanding the potential threats and vulnerabilities geared towards a variety of computer-related assets and examines a wide range of countermeasures to overcome weaknesses and minimise threats..
View HandbookENS1161 - Computer Fundamentals
This unit introduces the fundamental architecture and operating principles of digital computer system. Students will learn how modern computers are organised and operated, and how they can be programmed at an assembly (machine) language level, as well as using higher level languages, and the role of operating systems in this. Students will also learn fundamental concepts related to the interfacing of peripheral components to computer systems, including memory and secondary storage, and explore different types of computer systems including an overview of virtualisation and cloud technologies.
View HandbookCSG1207 - Systems and Database Design
This unit introduces students to the concepts of relational databases, including database design via normalisation and entity-relationship modelling in order to solve problems. It explores the use of Structured Query Language (SQL) to create, populate and administer relational databases and to perform complex queries upon the data inside them.
View HandbookCore Units
This unit focuses on data abstraction and the realisation of abstract data types as re-usable and generic modules using Python as the vehicular programming language. Basic algorithmic analysis is also introduced.
View HandbookCSP2104 - Object Oriented Programming with C++
This unit covers object-oriented design and programming using C++. It explores in detail the C++ language including classes, inheritance, virtual functions and polymorphism, encapsulation, templates, streams, file-handling, exception handling and the application of the Standard Template Library (STL).
View HandbookCSI2312 - Foundations of Software Engineering
This unit introduces the lifecycles, methods, techniques, tools and standards that comprise the discipline of software engineering. In addition, the unit demonstrates how software development lifecycles provide a framework for enabling quality in both product and process. The unit also presents current issues in the discipline.
View HandbookCSI2343 - Object Oriented Analysis and Design
Understanding differences between an object-oriented approach and structured techniques, including reasons for change, principles of object-orientation, modelling techniques, system specification, programming and practical issues. NB. Students must be familiar with basic concepts of procedural programming.
View HandbookThis unit is designed to introduce the Computational Intelligence (CI) techniques used for making machines intelligent. This field is more oriented to numerical techniques than symbolic techniques. They include neural networks, evolutionary computing and fuzzy logic systems.
View HandbookCSG2344 - Project Methods and Professionalism
This unit develops students’ expertise in: the project development life cycle; project management techniques including planning, risk and configuration management; quality assurance; verification and validation; and requirements definition and design specification. The unit studies management issues involved in computing together with technical issues related to measurement and assessment of processes. The unit develops skills in both traditional Waterfall processes as well as Agile processes. Future developments together with social issues relating to ethics, professionalism and the law are also considered.
View HndbookCSP2108 - Introduction to Mobile Applications Development
This unit introduces the fundamental technologies and skills needed to design and develop applications for mobile devices. It covers design principles and practical implementation issues specific to the development of applications in a distributed environment on small mobile devices.
View HandbookCSI2441 - Applications Development
This unit covers the concepts and methodologies that pertain to the development of software applications. It includes the design of user interfaces including mapping functionality to logical design. Issues affecting modern application design and delivery, including modelling, deployment and quality assurance will be examined.
View HandbookCore Units
This unit provides the principles and practice underlying the design of distributed systems. Weekly workshops cover various knowledge areas, including client/server interaction, communication protocols, RPC and RMI, consistency models, distributed replication, synchronisations, fault tolerance, and security. Issues encountered in the design of distributed systems are addressed and distributed applications in the future using wireless and spontaneous networking are discussed. The focus of the unit is on conveying conceptual knowledge of distributed systems in order to solve practical problems in distributed system development.
View HandbookCSP3341 - Programming Languages and Paradigms
This unit engages the students in the exploration of the theoretical, practical and evolutionary characteristics of programming languages using various operational paradigms.
View HandbookThis unit focuses on the study of approaches and techniques for testing software systems. This unit will introduce various test case design techniques and test adequacy coverage criteria. The unit will also cover test automation and regression testing in software maintenance. In addition, students will learn strategies/approaches for testing object-oriented software, graphical-user interfaces as well as mobile and web applications.
View HandbookCSI3106 - Software Architectures and Design
This unit focuses on the study of approaches and techniques for software system design and software architecture. A software architecture outlines the components of a system and the interactions between those components, and provides the key elements for controlling and evolving the software system. This unit will examine various design models, different types of software architectures and their roles, architecture analysis and creation as well as methods of documenting an architecture.
View HandbookIn this unit, students will work in groups, under academic supervision, to propose and deliver a substantial project representative of industry norms for quality and outcomes. As a capstone learning experience, students must undertake a project directly aligned to their course learning outcomes, with a focus on discipline knowledge, communication and collaboration.
View HandbookCore Units
This unit focuses on data abstraction and the realisation of abstract data types as re-usable and generic modules using Python as the vehicular programming language. Basic algorithmic analysis is also introduced.
View HandbookCSP2104 - Object-oriented Programming with C++
This unit covers object-oriented design and programming using C++. It explores in detail the C++ language including classes, inheritance, virtual functions and polymorphism, encapsulation, templates, streams, file-handling, exception handling and the application of the Standard Template Library (STL).
View HandbookCSG3309 - IT Security Management
This unit covers various aspects of Information Security Management, the practice of safeguarding an organisation’s information assets, data, and technological infrastructure from unauthorized access and cyber threats. The unit delves into information security governance, policies, and protocols to ensure the confidentiality, integrity, and availability of critical information. Information security managers play a pivotal role in assessing risks, implementing safeguards, managing resources, and staying abreast of the threat landscape. In addition, security management fosters a culture of security awareness and compliance. This unit explores the many aspects of protecting information from a management perspective.
View HandbookCSI2108 - Cryptographic Concepts
Cryptography is a field of science that explores the means by which data can be securely transmitted through insecure mediums. A fundamental understanding of cryptographic concepts is an essential part of any cyber security specialist’s arsenal of knowledge. This unit is a primer on cryptographic concepts as they are applicable to the cyber security specialist. The core cryptographic primitives will be explored in terms of function, implementation and implications of their use within the security landscape. Extending from the basic understanding of primitives the unit delves into relevant ciphers both historical and current, for a deeper understanding of the failures and successes of cryptographic theory and implementation.
View HandbookThis unit is designed to introduce the Computational Intelligence (CI) techniques used for making machines intelligent. This field is more oriented to numerical techniques than symbolic techniques. They include neural networks, evolutionary computing and fuzzy logic systems.
View HandbookCSG2344 - Project Methods and Professionalism
This unit develops students’ expertise in: the project development life cycle; project management techniques including planning, risk and configuration management; quality assurance; verification and validation; and requirements definition and design specification. The unit studies management issues involved in computing together with technical issues related to measurement and assessment of processes. The unit develops skills in both traditional Waterfall processes as well as Agile processes. Future developments together with social issues relating to ethics, professionalism and the law are also considered.
View HandbookModern forensic computing involves the preservation, identification, and analysis of digital evidence stored on various devices and media. Digital evidence is often not examinable by conventional access methods, so specialised software tools, techniques, and processes must be employed to preserve and recover it. This unit introduces students to the tools, techniques, and methods needed to recover digital evidence from a variety of devices.
View HandbookCSI3207 - Network Security Fundamentals
This unit covers fundamental aspects of networks and security, using design solutions optimised to different networks and the evaluation of security measures. Students will be given an overview of what network security is and how it can be implemented using a practical and theoretical approach.
View HandbookCore Units
This unit provides the principles and practice underlying the design of distributed systems. Weekly workshops cover various knowledge areas, including client/server interaction, communication protocols, RPC and RMI, consistency models, distributed replication, synchronisations, fault tolerance, and security. Issues encountered in the design of distributed systems are addressed and distributed applications in the future using wireless and spontaneous networking are discussed. The focus of the unit is on conveying conceptual knowledge of distributed systems in order to solve practical problems in distributed system development.
View HandbookCSP3341 - Programming Languages and Paradigms
This unit engages the students in the exploration of the theoretical, practical and evolutionary characteristics of programming languages using various operational paradigms.
View HandbookCSI3208 - Ethical Hacking and Defence
This unit is an introduction to ethical hacking with a particular focus on internet enabled services and technologies. Students will develop an understanding of modern techniques that can be employed to evaluate the security of implemented network configurations. Based on this understanding students will develop the skills to defend against network based threats. Ethical hacking is an emerging field which favours the practical application of skills to penetrate secure systems in order to demonstrate vulnerability so that steps can be taken to mitigate risk..
View HandbookMAT3120 - Machine Learning and Data Visualisation
This unit introduces students to the principles and practices of machine learning to uncover patterns and trends in complex data sets, and to visualise these patterns in meaningful ways. Machine learning is a process by which computer models are not explicitly programmed but “learn from data”. Students will use existing data to develop models used to predict various outcomes for new data.
View HandbookIn this unit, students will work in groups, under academic supervision, to propose and deliver a substantial project representative of industry norms for quality and outcomes. As a capstone learning experience, students must undertake a project directly aligned to their course learning outcomes, with a focus on discipline knowledge, communication and collaboration.
View HandbookPlease note these units are subject to change and should be used as an overview. Unit availability may differ upon each intake.
*Note: CSG3101 Applied Project is a 30-credit point unit
Domestic students please refer to:
International students please refer to:
CRICOS Code: 052112F
Course Code: U65