BSc (Hons) Software Engineering

Description

The world today is interconnected than ever before with the combination of digital devices and the software systems that make them operational. The future calls for further interactions through latest phenomena such as the internet of things (IOT). Hence, the need for skilled Software Engineers in a multitude of specializations is on the rise. Our students are trained to meet these multifaceted software engineering needs. They learn programming skills, analytical skills, database design and development, mobile and enterprise application development, gaming software development, computer security and professional practice to name a few areas. The degree programme from UCLan is designed to equip students with technical, analytical and soft skills that are needed to build, operate and manage software systems successfully.

Progression Pathway For Completion Of The Degree

The degree is designed for four (4) years in total1, inclusive of the option of a work placement year. However, students who wish to complete the degree faster may do so in three (3) years, without going through a placement year. The work placement is usually 48 weeks long and offers 120 credits and will be noted in the transcript. The BSc (Hons) Software Engineering degree requires 360 credits, hence, students will do well to utilize the work placement year to gain industry exposure and equip themselves with skills that will make them highly employable following graduation.


Programme Structure
  • BSc (Hons) Software Engineering with Work Placement (4 Years)
  • BSc (Hons) Software Engineering (3 Years)*

Year 1 (Level 4)

▪ The Computing Challenge
▪ Games Concepts
▪ Programming
▪ Introduction to Networking
▪ Computer Systems and Security
▪ Systems Analysis & Database Design

Year 2 (Level 5)

▪ Software Development
▪ Advanced Programming
▪ The Agile Professional
▪ Computational Thinking
▪ Cyber Security
▪ Cross Platform Development

Year 3 (Level 6)

▪ Advanced Software Engineering Techniques
▪ Object Oriented Methods in Computing
▪ Distributed Enterprise Systems
▪ Honours Degree Project (Double Project)
▪ One module fromt
▪ Wireless and Mobile Networks
▪ Data Science
There are possibilities to transfer to UCLan, Preston Campus in UK, after completing the 1st Year. *Subjected to completing 360 credits. Subjected to availability

Assessment

Each module will have its own assessment structure. The assessment guidelines may be collected from lecturers once the student is registered in a particular year. Assessments may vary from identifying user requirements, conceptualizing, designing and developing software and showcasing to an audience to, writing online or paper based exams. Each module may have one or more forms of assessments to match the learning outcomes specified in the module descriptor. Each assessment will have a marking rubric that defines how marks are offered.

Career Opportunities

The UCLan BSc (Hons) Software Engineering degree programme comes with carefully selected subject areas to match the current needs in the software industry, hence positioning our students with an advantage. Moreover, our students are encouraged to take up the opportunity of working in the industry during the work placement year. While the students themselves may find a position suitable for their work placement, a dedicated career guidance team at UCL will assist in identifying potential employers. Our students are fit to apply for an array of positions in areas such as, but not limited to, Networking, Mobile application development, Gaming software development, Database administration, Enterprise application development and Computer security. The work placement not only allows the students to practice their learnings, but also assists in building the much-needed industry links and acquiring work experience prior to graduation.

Module Description
Year One(From OCT 2022 batch)
    This module offers an immersive experience designed to equip students with a foundation of study skills necessary to be successful in Computing. Students will be introduced to a broad range of computing concepts and how to apply them to design and develop a small software concept.
This module presents a broad range of basic games development concepts and provides foundation for further study in the field. Students will develop an understanding of commercial practices in game development and will be introduced to methods and technologies for game development. The module will also cover mathematical concepts needed for computer games development.
This module builds directly on the Introduction to Programming module. Students will gain the ability to further analyse, design, implement, test and debug more complex programs using an appropriate programming language. Key skills related for logical thinking, code design and alternative ways to code and debug will be explored in this module.
This module will introduce students to the fundamentals of networking and networked systems and will develop the understanding they need to investigate relevant computer network standards and protocols. Students will learn the necessary about skills to set-up and configure a Local Area Network through lab work, by handling devices and using simulators.
Gradually, we are becoming more and more dependent on computing systems in our daily lives. The services provided by these systems, such as online shopping, social networking, mobile banking and so forth represent the backbone of modern communities. This module will introduce the key security concepts, access control mechanisms and tools to protect the computer systems from harm.
This module introduces student to interact between the stakeholders and analysts to develop requirements to store and manipulate data, techniques of information gathering and representation using appropriate tools and techniques and the role of database design using normalization. Students will learn how to design and implementation a robust database using SQL and related tools.
Year Two(From SEP 2022)
This module will focus on the software development lifecycle, with students learning how to identify requirements, analyse, design, code and test a software application. Students will also learn alternative styles used in the industry and which ones are suitable for a given context.
This module will enhance the student’s programming competence and ability to use a range of programming techniques necessary for the development of effective and quality software. Students will learn how to select and apply appropriate data structures and algorithms to implement a software solution to a complex problem. Object-oriented and event-driven programming paradigms will also be introduced in this module.
This module will teach students the agile way of designing and developing solutions. Since this is fast becoming an industry recognized way of developing solutions, students will get an opportunity to learn how to apply theory to practice and develop agile software by having regular meetings, monitoring progress and refining the solution as the project moved along.
The module will develop core skills among students to think and develop computational solutions. Since problems may have many alternative solutions, students will learn the pros and cons of each and which type of solutions are most suitable for a given system or application.
In this module, student will learn to examine a range of vulnerabilities and attacks on computer systems and networks. This module will help develop an understanding of advanced methods for protecting communication and computer systems, and the need to have a systematic approach to computer security.
This module aims to develop an understanding of contemporary mobile development platforms and skills required to develop applications for mobile devices (phone and tablets). Students will explore a range of technical problems and solutions inherent in developing software applications for mobile computing: connectivity, security, data storage. Interactive mobile application: gestural input, location awareness, on-board-sensing (e.g. accelerometers) will also be taught.
Year Three
The module takes a rigorous approach to software development. It examines the use of formal methods for the specification, development and verification of software. It presents a range of techniques for the analysis and implementation of real-time solutions. The student will investigate the theory and problems of concurrent systems.
Object-oriented methods are popular in programming, analysis and design. This module will develop the student’s understanding of the underlying object-oriented concepts and techniques. Students will learn how to apply them to system design and program development using languages such as C# .NET or Java.
This module aims to teach students how systems and applications can be built for distributed environments. Since data and clients using the applications are likely to be spread over geographical and system boundaries, it is important to learn if a centralized or a distributed type of system is more suitable. This module will introduce the theory and key concepts to develop such distributed systems.
The double module project will involve research, independent study and the production of a substantial report, which will be based on the investigation of a problem and the development of a solution. This project will be the culmination of the student's study and will draw substantially on the material and skills developed during the course.
Wireless and mobile networks systems have become an essential part of the modern world. Technologies such as 802.11, GPRS, and Bluetooth are being used in ever increasing numbers of businesses and homes. This module focuses on these technologies in depth, covering both the theory and practical applications of the same.
Large volumes of data, commonly known as ‘big data’ are generated and stored by retail stores, online-shopping websites, or other transaction systems. This big data is now considered a very rich resource for information, especially for the strategic and commercial growth of a company. This module will teach students how to apply formal concepts to extract and analyse meaningful information from such large datasets, find hidden patterns, measure similarity etc.