Bachelor of Science in Computer Science in Cyber Security

Fully Online
36 months
4500
Degree
Clarke College
Accreditation:
EQF6

About

The course teaches students comprehensive and specialized subjects in computer science; it develops skills in critical thinking and strategic planning for changing and fast-paced environments, including technological and operational analysis; and in general, it develops competences in leadership, including autonomous decision-making, and communication with team members, stakeholders, and other members of a business.

Supporting your global mobility
Supporting your global mobility

Global Recognition

A dramatic close-up view of the weathered, curved outer wall of the Colosseum in Rome. The ancient Roman architecture shows multiple tiers of large, segmented arches and pocked stonework, highlighting the scale and decay of the historic structure against a pale sky.

Woolf degrees align with major international qualification frameworks, ensuring global recognition and comparability. Earn your degree in the most widely recognized accreditation system in the world.

Learn More About Degree Mobility
A dramatic close-up view of the weathered, curved outer wall of the Colosseum in Rome. The ancient Roman architecture shows multiple tiers of large, segmented arches and pocked stonework, highlighting the scale and decay of the historic structure against a pale sky.

Our accreditation through the Malta Further and Higher Education Authority (MFHEA) provides a solid foundation for credential recognition worldwide.

Success stories
Success stories

How students have found success through Woolf

"As a working parent, I needed something flexible and manageable. Woolf’s structure fit me perfectly. I was nervous at first, balancing work, parenting, and midnight classes, but the support, resources, and sense of community kept me going."
Andreia Caroll
Clinical Research Nurse
"Woolf provided me flexibility, a strong community, and high quality education. It really broadened my perspective and significantly improved my communication skills. I graduated not just more knowledgeable, but also more confident and well-rounded."
Brian Etemesi
Software Engineer
"The program at Woolf gave me the language to articulate what I had been intuitively practicing for years. It sharpened my strategic thinking and reinforced my belief that art can be a tool for social transformation."
Elad Schechter
Master of Business Administration in Arts Innovation
"GCAS college at Woolf has offered me a venue to explore my ideas with like-minded individuals, whose aspirations to expand their (and others) horizons, finding new ideas and thoughts to assist our fellow human beings to be more efficient, kinder, and smarter."
James Greer
Master of Arts in Philosophy
"As a working parent, I needed something flexible and manageable. Woolf’s structure fit me perfectly. I was nervous at first, balancing work, parenting, and midnight classes, but the support, resources, and sense of community kept me going."
Andreia Caroll
Clinical Research Nurse
“Woolf and Scaler’s hands-on Master’s program gave me the practical skills and confidence I was missing after my undergraduate degree. Real projects, professional tools, and mentorship transformed how I think, build, and solve problems — leading me to a career as a Software Engineer.”
Bhavya Dhiman
Master’s in Computer Science
"Woolf provided me flexibility, a strong community, and high quality education. It really broadened my perspective and significantly improved my communication skills. I graduated not just more knowledgeable, but also more confident and well-rounded."
Brian Etemesi
Software Engineer
“Woolf’s flexible, accredited program gave me structure, community, and the confidence to grow. From landing my dream internship to winning a hackathon, Woolf opened doors and shaped both my career and mindset.”
Dominion Yusuf
Higher Diploma in Computer Science
• Students will apply theoretical and practical knowledge to address various problems, indicating a synthesis of learning and application • Students will be able to formulate their ideas in clearly structured conventional formats and use appropriate evidence to support their claims. • Students will proactively manage their learning progress, identifying and addressing their educational needs to thrive as self-reliant learners. • Students will be able to respond to real world problems and formulate technical strategies and judgement on the basis of academic scholarship. • Students will manage well-defined IT projects with a range of responsibilities that require independent decision-making and handling of unpredictable situations. • Students will acquire skills in identifying vulnerabilities, implementing security measures, and responding to cyber incidents.

Course Structure

Programming 1
150 hours | 6 ECTS

About

The course helps students develop an appreciation for programming as a problem-solving tool. It teaches students how to think algorithmically and solve problems efficiently, and serves as the foundation for further computer science studies.

Using a project-based approach, students will learn to manipulate variables, expressions, and statements in Python, and understand functions, loops, and iterations. Students will then dive deep into data structures such as strings, files, lists, dictionaries, tuples, etc. to write complex programs. Over the course of the term, students will learn and apply basic data structures and algorithmic thinking. Finally, the course will explore the design and implementation of web apps in Python using the Flask framework.

Throughout the course, students will be exposed to abstraction and will learn a systematic way of constructing solutions to problems. They will work on team projects to practice pair programming, code reviews, and other collaboration methods common to the industry. The course culminates in a final group project and presentation during which students demonstrate and reflect on their learning.

All materials are inclucded.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Grasp fundamental programming concepts, including abstraction, objects, classes, and events, enabling them to effectively apply these principles in software development and problem-solving contexts.
  • Cultivate strategic and creative responses to problems for which the solutions require a knowledge of data structures such as strings, files, lists, dictionaries, or tuples.
  • Have an introductory knowledge of programming as a problem-solving tool, demonstrated by identifying the jobs to be done and implementing software solutions, such as web-based apps in Python using a Flask framework.
Skills
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Can select appropriate evidence and formulate code reviews to support the work of others.
  • Ability to use abstraction and systematically construct solutions to problems.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions pair programming and online code collaboration.
Competencies
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to programming.
  • Possess the academic competences to undertake further studies in computer science with a degree of autonomy.
  • Independently manage projects that require programming as a problem-solving tool, requiring the manipulation of variables, expressions, and statements.
  • Display creativity and initiative in writing complex programs requiring application of a knowledge of basic data structures and algorithmic thinking.
Web Development Fundamentals
150 hours | 6 ECTS

About

This module provides a foundation in building for the web. It helps students understand how the internet works, examines the role of the internet in their lives, and teaches them the basics of web development. The module prepares students for the advanced module in Web Application Development.

The module will cover the building blocks of web technologies. Students will learn HTML, intermediate CSS, and the basic concepts and use of JavaScript. The course covers a brief history of the internet and network technologies. Students will relate what they learn about the conceptual foundations of the web to their own experience of the web, recreating common design and interaction patterns seen across countless websites. The module will focus on collaboration, communication, and sharing. Web technology is fundamentally social; students will work together and build for real audiences.

The module culminates in a project in which students create a website using the tools they learned throughout the module.

Teachers

Jean Luis Urena
Jean Luis Urena
Michael Tabor
Michael Tabor

Intended learning outcomes

Knowledge
  • Apply the rules and conventions for the proper use of sources that lead to demonstrated knowledge of the social and ethical issues relevant to the humanities.
  • Describe the technical design and infrastructure of the internet
  • Describe the history of the internet, and the role it plays in today’s society
Skills
  • Monitor and assess their own performance as well as that of their peers; where suitable, collaboratively guide others in the proper methods for web project development, utilizing communication and sharing tools to improve project results
  • Possess the academic competencies to undertake further studies in Web Application Development by laying a solid foundation of web development principles and practices.
  • Build a basic website with HTML and CSS
Competencies
  • Communicate ideas in a well-structured format, following appropriate conventions.
  • Apply theoretical and practical knowledge in the creation of solutions for problems related to web development.
  • Analyze the challenges facing internet connectivity in a region of their choice
Front End Web Development
150 hours | 6 ECTS

About

Front End Web Development builds on previous knowledge of web development, and extends students’ familiarity with modern HTML, CSS, JavaScript, and Web APIs. Students learn to develop and deploy client-side web applications with greater scope and complexity. Complex frontend features require using HTML, CSS, and JavaScript together. Students will usually have taken Web Application Development (or similar course under advisement from their faculty) as a prerequisite for this course.

Students deepen their knowledge of the JavaScript language, covering in depth topics like scope and higher order functions. Students practice using modern build tools for package management, bundling, optimization, formatting and linting, and testing. Throughout the course, students will solve practice exercises and build projects, culminating in a final project using a JavaScript framework to build a complex web application.

Students will continue to apply technical communication skills by writing technical specs, drafting architecture diagrams, and documenting APIs. They will extend their communication practice through technical blogging on topics like tool comparisons, architecture choices, benchmarks, and frontend web design. Students will grow in independence by reading documentation to learn about novel language and browser features.

Teachers

Jean Luis Urena
Jean Luis Urena
Michael Tabor
Michael Tabor

Intended learning outcomes

Knowledge
  • Have knowledge of web development tools, demonstrated by writing technical specification documentation.
  • Gain exposure to accessible web design, understanding the principles of how to create websites and apps that work well on mobile devices, and that support use of assistive technologies like screen readers.
  • Demonstrate knowledge of the request-response structure, along with database management and JSON-based APIs.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to web development tools.
Skills
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of technology.
  • Ability to solve front-end web application problems related to design requirements using HTML, CSS and JavaScript.
  • Work independently to build a web application, trouble-shooting problems as they rise using self-directed research techniques. Ability to build and debug features in HTML, CSS, and JavaScript. Ability to measure, monitor, and improve performance of complex web applications.
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
Competencies
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to computer web application development.
  • Use a modern JavaScript framework to build and deploy a complex web application.
  • Independently manage projects that require techniques related to building web applications where the correct use of client and server-side development for the web is essential.
  • Possess the academic competences to undertake further studies in web application development with a degree of autonomy.
Programming 2
150 hours | 6 ECTS

About

This course builds upon the foundational concepts introduced in Programming 1,

aiming to deepen students' understanding of programming with a focus on data access and management, incorporating advanced programming paradigms.

Key programming concepts such as data types, operators, variables, and control flows are revisited, now with an added emphasis on advanced techniques like recursivity, object-oriented programming, and event-driven programming. These paradigms enhance students' ability to structure and manage complex data interactions efficiently. Students learn to use Regular Expressions, a powerful tool for finding and extracting data from string and other data types. They are introduced to modern web protocols, and learn how to retrieve data from web services using Python and JSON, and how to access and parse data in XML. Students learn the basics of working with databases and the relationships between databases. They learn how to write queries in SQL, the

foremost programming language for generating, manipulating, and retrieving

information from a relational database.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to databases.
  • Make judgments based on knowledge of the rules and conventions for the proper use of network planning, and demonstrate knowledge of the social and ethical issues relevant to programming.
  • Have knowledge of Python, demonstrated by retrieving and visualizing original data in Python.
Skills
  • Ability to apply theoretical and practical knowledge in the creation of solutions for problems related to programming.
  • Write queries in SQL, demonstrating an ability to manipulate, and retrieve information from a relational database.
  • Use Regular Expressions as a tool for finding and extracting data from string and other data types.
Competencies
  • Independently manage projects that require techniques related to Python where the correct use of data access and management is essential.
  • Possess the academic competences to undertake further studies in computer science with a degree of autonomy.
  • Display creativity and initiative in implementing solutions that correctly retrieve data from web services using Python and JSON, and demonstrate an ability to access and parse data in XML
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to working with databases and the relationships between databases.
Communicating for Success
75 hours | 3 ECTS

About

Communicating for Success supports students in developing communication skills that are essential for success in their personal and professional lives. The course will focus on close reading, written communication, verbal communication, and non-verbal communication skills. An emphasis will be placed on weekly submissions, and peer and instructor feedback, to allow students to practice and improve their skills.

Students will learn how to effectively read and analyze texts as a precursor to developing their own written communication skills. They will then practice crafting clear communications by learning about topics such as writing structure and organization, grammar, audience awareness, and the iterative writing process. Next, students move on to verbal communication, and will learn how to confidently and skillfully deliver effective oral presentations. Finally, students will learn about the impact of non-verbal communication on how their messages are received.

The course will culminate in a project that will require students to develop and implement a strategy for communicating a technical topic to a non-technical audience.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Make judgments based on knowledge of the rules and conventions for the proper forms of communication, and demonstrate knowledge of the social and ethical issues relevant to communication.
  • Understand writing structure and organization, grammar, the role of audience awareness, and the iterative writing process, demonstrated by delivering effective written and oral presentations.
  • Cultivate close reading skills, written communication skills, verbal communication skills, and non-verbal communication skills.
Skills
  • Having the ability to choose appropriate evidence when formulating responses to well-defined concrete and abstract problems of communicating technology to a non-technical audience.
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Cultivate close reading skills, written communication skills, verbal communication skills, and non-verbal communication skills.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of communication.
Competencies
  • Display creativity and initiative in carrying out complex ideas and arguments, and distill them in their components, assumptions, and evidence.
  • Independently manage a project requiring implementing a strategy for communicating a technical topic to a non-technical audience.
  • Monitor and review their own performance when seeking to craft clear communications.
  • Possess the academic competences to undertake further studies in communication with a degree of autonomy.
Introduction to Cyber Security
150 hours | 6 ECTS

About

In today's interconnected world, where technology permeates every aspect of our lives, protecting our digital assets and information has become paramount. The Introduction to Cyber Security module is designed to provide students with a comprehensive understanding of the fundamental concepts, principles, and practices of cyber security.

Through a combination of theoretical knowledge and hands-on practical exercises, students will develop the necessary skills to identify and mitigate various cyber threats, protect sensitive data, and safeguard computer systems and networks.

By the end of this module, students will have a solid foundation in cyber security principles, enabling them to pursue further studies in specialized areas of cyber security.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Explore the different types of cyber threats, including malware, phishing, social engineering, and network attacks.
  • Develop a foundational understanding of the core concepts and terminologies used in cyber security.
  • Learn about the various security technologies and tools used in cyber defense, such as firewalls, intrusion detection systems, and encryption.
Skills
  • Use incident response and disaster recovery techniques to effectively handle and mitigate cyber security incidents.
  • Implement basic security measures to protect computer systems, networks, and web applications.
Competencies
  • Understand the principles of risk management and vulnerability assessment to identify potential security weaknesses.
  • Articulate emerging trends and challenges in the field of cyber security, such as cloud security, mobile security, and IoT security.
  • Analyse legal and ethical considerations surrounding cyber security, including privacy, intellectual property, and compliance.
Optimizing Your Learning
75 hours | 3 ECTS

About

Optimizing Your Learning aims to transform incoming first year students into effective and empowered self-directed learners. In the modern world, long-term academic, professional, and personal success is driven by the ability of individuals to take control of their learning. Therefore, this course helps students to develop the knowledge, skills, and mindsets necessary to take ownership of their learning and build their self-efficacy. During the course, students will develop competence in skills that are most critical for effective self-directed and self-regulated learning (i.e. self-management, self-monitoring, and self-modification), while also learning how to use learning strategies to maximize their overall learning efficiency and efficacy. They will also utilize the Emotional Intelligence framework to explore their identity, self-image, motivation, and self-regulation skills, to support their development as self-directed learners. The course culminates in the creation of a personal learning charter that will help guide students in their learning throughout their undergraduate studies, which can also be applied to their learning activities in other realms of their lives.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to self-awareness.
  • Make judgments based on knowledge of the rules and conventions for the proper use of self-awareness, and demonstrate knowledge of the social and ethical issues relevant to self-directed learning.
  • Have knowledge of self-directed learning and study-patterns, demonstrated by creating a personal learning charter that will help guide students in their learning throughout their undergraduate studies .
Skills
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems of personal career and education planning and success.
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Ability to apply theoretical and practical knowledge for the purpose of attaining long-term academic, professional, and personal success.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of technology.
Competencies
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to develop a reflective practice to support deep learning.
  • Display creativity and initiative in carrying out self-directed learning.
  • Independently manage external perceptions that require techniques of self-reflection and self-evaluation.
  • Possess the academic competences to undertake further studies in emotional competence with a degree of autonomy.
Introduction to Programming in Python
75 hours | 3 ECTS

About

This course is intended for students with little or no programming experience. It aims to help students develop an appreciation for programming as a problem solving tool and to provide a foundation in Python programming. Students will learn how to think algorithmically, solve problems efficiently, and prepare for further computer science studies. The course begins with an introduction to programming constructs in a simplified visual environment. Students will learn to specify commands, and to construct complex programs from simple instructions. The next part of the course introduces a formal programming environment, and students learn the basic syntax and structures of Python. Topics covered include variables, expressions, conditional execution, functions, loops, and iterations. Throughout the course, students will be exposed to abstraction and will learn a systematic way of constructing solutions to problems. They will work on team projects to practice pair programming, code reviews, and other collaboration methods common to industry.

The course culminates in a final group project and presentation during which students demonstrate and reflect on their learning.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Demonstrate knowledge of the rules and conventions for the proper use of Python in a software development environment.
  • Basic concepts of programming, including simple algorithms and the role of programming in problem-solving and software development.
  • Python commands, demonstrated by the ability to construct complex programs from simple instructions.
  • Knowledge of Python's syntax, including variables, expressions, conditional execution, loops, functions, and error handling, to develop a foundational understanding of the language.
Skills
  • Write, debug, and maintain Python code that solves real-world problems, applying constructs such as loops, conditions, and functions.
  • Think algorithmically and solve problems efficiently using Python.
  • Collaborative skills through pair programming, code reviews, and team projects, mirroring industry practices for software development.
  • Have the ability to analyze Python programs in a code review, or receive feedback in a code review, in order to make substantial improvements to a program.
Competencies
  • Communicate technical information, present and explain their code and problem- solving approaches clearly, both orally and in writing, to a variety of audiences.
  • Show creativity and initiative to develop projects related to Python programming.
  • Demonstrates planning and time management while handling basic issues relating to Python programming assignments.
  • Apply their programming knowledge and skills to identify, articulate, and solve basic programming problems, demonstrating academic competency to understand and use variables, expressions, conditional execution, functions, loops, and iterations.
Team Software Project
150 hours | 6 ECTS

About

In this course, students practice the skills necessary to work effectively on a professional software product team. By working in small teams to build a web application, they integrate the technical, communication, and collaboration skills built in previous courses.

Students build a multi-feature web application, either for a fictional client or an original idea of their own design. As they work together, they learn modern technical collaboration tools and practices. Topics covered include using version control for shared repository management, writing technical design documents, and conducting code reviews. They also practice project management skills by implementing the SCRUM framework, including sprint planning, reviews, and retrospectives. During each milestone, team members rotate taking on various roles including Scrum master, product owner, and technical lead. Throughout the course, students will also apply and refine the emotional intelligence, team development, and leadership frameworks previously learned. By the end of the course, students should understand and value the various roles within a software product development team, and be able to participate effectively on a product team.

There are no scheduled class sessions. Teams will submit their sprint retrospectives for feedback from peers and faculty.  The course culminates in a showcase where students present their final project to their peers and external stakeholders.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Have knowledge of modern technical collaboration tools, demonstrated by developing and deploying a web application in collaboration with a team.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to software.
  • Make judgments based on knowledge of the rules and conventions for the proper use of technical collaboration tools, and demonstrate knowledge of the social and ethical issues relevant to technology.
Skills
  • Practice project management skills by implementing the Scrum framework, including sprint planning, reviews, and retrospectives.
  • Ability to apply theoretical and practical knowledge in the creation of solutions for problems related to software.
  • Rotate through team roles, taking the position of Scrum master, product owner, and technical lead.
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
Competencies
  • Possess the academic competences to undertake further studies in software project development with a degree of autonomy.
  • Display creativity and initiative in a collaborative software project.
  • Understand and value the various roles within a software product development team, and be able to participate effectively on a product team.
  • Use emotional intelligence and team development frameworks whilst monitoring and reviewing their own performance and the performance of others.
Industry Experience 1
300 hours | 12 ECTS

About

Industry Experience is a form of experiential learning that enables students to apply their academic knowledge in a professional context. Students work to build software that meets the needs of a professional organization by completing either (1) an

approved internship, or (2) a product studio.

During the online internship, students work on tasks that meet the needs of the

organization, guided by an on-site supervisor. Internships must entail significant,

substantial computer science. In the studio, external clients (e.g., businesses, non-

profits) sponsor a software development project completed by students. A typical end

result is a prototype of or a fully functional software system ready for use by the clients.

These projects are completed by teams of 4-6 students, who meet with the client

weekly to share progress and get feedback.

Students complete online modules under the supervision of a faculty advisor. Pre-work

includes instruction in communication, goal-setting, and professional development.

During the industry experience, students submit bi-weekly written reflections on their

personal goals, challenges, and, for the studio, team feedback. At the end of the term,

students obtain written feedback from their organization supervisor. They also submit

a final report which describes the problem statement, approaches/methods used,

deliverables, and skills gained. Industry Experience culminates in a final presentation

which is shared as a public blog post.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Utilize detailed theoretical and practical knowledge essential to industry experience.
  • Make judgments based on knowledge of the rules and conventions for the proper use of communication and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Have industry-relevant knowledge that goes beyond advanced general education textbooks and is applicable to the field of technology.
  • Understand a range of tools and techniques used in professional settings.
Skills
  • Communicate academic knowledge and skills in a well-structured, coherent format, following appropriate conventions in the field of technology.
  • Implement knowledge and understanding in a way that demonstrates professionalism in a field of technology.
  • Translate business requirements that meet the needs of the organization into actionable software development tasks.
Competencies
  • Possess the academic competences to undertake further studies in professional development with a high degree of autonomy.
  • Show creativity and initiative to develop projects with effective communication.
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues in a professional setting.
Web Foundations
75 hours | 3 ECTS

About

This course provides a foundation in building for the web. It helps students understand how the internet works, examines the role of the internet in their lives, and teaches them the basics of web development. The course prepares students for the advanced course in Web Application Development.

The course begins with a brief history of the internet and network technologies. Students will learn about the physical underpinnings of the internet, barriers to connectivity, and efforts to expand access (e.g., undersea cable projects, satellite projects). They will also explore the challenges of internet security and privacy.  Students will be encouraged to make these social explorations personal, and investigate the history, barriers, and opportunities for connectivity in their local regions. The course will also cover the building blocks of web application development. Students will learn fundamentals of HTML, intermediate CSS, and basic concepts and syntax of JavaScript.

The course culminates in a “Knowledge Share” project during which students create a website to educate a non-technical audience on a key aspect of the internet or emerging technology.

Teachers

Jean Luis Urena
Jean Luis Urena
Michael Tabor
Michael Tabor

Intended learning outcomes

Knowledge
  • Display knowledge of how the internet works through the creation of websites to educate a non-technical audience.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to web development.
  • Make judgments based on knowledge of the rules and conventions for the proper use of web applications and demonstrate knowledge of the social and ethical issues relevant to the role of the internet in modern day life.
Skills
  • Ability to apply theoretical and practical knowledge in the creation of solutions for problems related to web development.
  • Ability to use HTML, intermediate CSS, and basic concepts and syntax of JavaScript.
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems related to web development.
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of web development.
Competencies
  • Independently manage a project involving the creation of a website to educate a non-technical audience on a key aspect of the internet or emerging technology.
  • Possess the academic competences to undertake further studies in web development with a degree of autonomy.
  • Display creativity and initiative in carrying out foundations in building for the web
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to a key aspect of the internet or emerging technology
Challenge Studio 2
150 hours | 6 ECTS

About

Engineering for Development, Challenge Studio 1, and Challenge Studio 2 are 3 courses that help students investigate the role that technology can play in solving some of the world’s most intractable social and economic development challenges.

Challenge Studio 2 builds on the final output from Challenge Studio 1, and supports students in creating a sustainable business model for the MVP that they developed in the previous course. This course is focused on putting the MVPs in the hands of real users, getting their feedback, and iterating and refining the product or service, while also developing a viable business model.

The course will utilize virtual studio time, where groups are able to work collaboratively on their MVPs, with the support of additional lectures, seminars, and learning resources on important topics such as product launch planning, user evaluation tools and frameworks, business canvas development, funding models, financial modelling and strategy, and pitching.

The course will culminate in a pitch showcase, where students are required to present their work to relevant stakeholders (e.g. industry leaders).

Teachers

No items found.

Intended learning outcomes

Knowledge
  • core strategies of problem formulation; user research; and build, measure, learn cycles – evaluating user feedback on a Minimum Viable Product and adjusting the business model.
  • the rules and conventions of problem identification, product management, and sprint management.
  • human centered design principles, end user identification strategies; best practices for requirements gathering and impact measurement.
Skills
  • ability to apply theoretical and practical knowledge to the decomposition of problems into actionable tasks
  • select appropriate evidence and technologies when formulating responses to well-defined concrete and abstract problems in the domain of Human Centered Design and End User requirements.
  • communicate ideas in a well-structured, coherent format, following appropriate conventions.
  • consistently evaluates own learning and identifies learning needs.
Competencies
  • Possess the academic competences to undertake further collaborative projects leading to an MVP or prototype that increasingly and iteratively solves a user problems.
  • work as a team to develop a sustainable business model for a Minimum Viable that provides a practical solution for an identified problem.
  • organise and execute upon a detailed project plan that employs progress tracking methods using appropriate metrics and tools.
Cloud Analytics & Security Architecture
150 hours | 6 ECTS

About

This course introduces scalable cloud-based data processing using PySpark, Python, SQL, and Spark to manipulate structured and semi-structured data. Learners will apply NumPy, Pandas, and PySpark to analyze large datasets and produce meaningful insights. The course further develops skills in visual storytelling through Seaborn and introduces generative AI and interactive dashboards for applied analytics. Students will also study secure architecture fundamentals, vulnerability assessment, secure network design, zero-trust principles, network segmentation, and cloud security considerations. The course concludes with an applied project integrating big-data analytics with secure architectural design.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Explain cloud computing principles for scalable and cost-effective distributed data processing.
  • Describe secure architecture fundamentals, frameworks, and zero-trust concepts relevant to cloud environments.
  • Discuss data processing workflows using Python, SQL, Spark, and foundational data science libraries.
Skills
  • Create visualizations and interactive dashboards to communicate complex insights effectively.
  • Assess systems and network architectures for vulnerabilities and propose secure design improvements.
  • Apply PySpark, Python, and SQL to manipulate and analyze large structured and semi-structured datasets.
Competencies
  • Develop a comprehensive project demonstrating the ability to identify vulnerabilities and build secure, data-driven solutions.
  • Integrate big-data analytics and security principles to analyze cloud-based systems in real-world contexts.
  • Evaluate architectural decisions, network segmentation, and security controls for effectiveness in cloud settings.
Industry Experience 2
300 hours | 12 ECTS

About

Industry Experience 2 provides a form of experiential learning that enables students to apply their academic knowledge in a professional context. Students work to build software that meets the needs of a professional organization by completing either (1) an approved internship, or (2) a product studio.

During the online internship, students work on tasks that meet the needs of the organization, guided by an on-site supervisor. Internships must entail significant, substantial computer science. In the studio, external clients (e.g., businesses, non-profits) sponsor a software development project completed by students. A typical end result is a prototype of or a fully functional software system ready for an end user. These projects are completed by teams of 4-6 students, who meet with the clients or other end users weekly to share progress and get feedback.

Students complete online modules under the supervision of a faculty advisor. Pre-work includes instruction in communication, goal-setting, and professional development. During the industry experience, students submit bi-weekly written reflections on their personal goals, challenges, and, for the studio, team feedback. At the end of the term, students obtain written feedback from their organization supervisor.  They also submit a final report which describes the problem statement, approaches/methods used, deliverables, and skills gained. Industry Experience culminates in a final presentation which is shared as a public blog post.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Make judgments based on knowledge of the rules and conventions for the proper use of communication and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Understand a range of tools and techniques used in professional settings.
  • Utilize detailed theoretical and practical knowledge essential to industry experience.
  • Have industry-relevant knowledge that goes beyond advanced general education textbooks and is applicable to the field of technology.
Skills
  • Consistently evaluates own learning and identifies learning needs.
  • Devises and sustains arguments to solve problems related to professional settings.
  • Have the ability to gather academic knowledge and skills in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
  • Implement knowledge and understanding in a way that demonstrates professionalism in a field of technology.
  • Communicate academic knowledge and skills in a well-structured, coherent format, following appropriate conventions in the field of technology.
Competencies
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues in a professional setting.
  • Show creativity and initiative to develop projects with effective communication.
  • Possess the academic competences to undertake further studies in professional development with a high degree of autonomy.
Data Structures and Algorithms 1
150 hours | 6 ECTS

About

This course teaches the fundamentals of data structures and introduces students to the

implementation and analysis of algorithms, a critical and highly valued skill for

professionals.

Students start by examining the basic linear data structures: linked lists, arrays, stacks,

and queues. They learn how to build these structures from scratch, represent

algorithms using pseudocode, and translate these into running programs. They apply

these algorithms to real-life applications to understand how to make complexity and

performance tradeoffs. Students will also learn how to develop algorithms for sorting

and searching, use iteration and recursion for repetition, and make tradeoffs between

the approaches. They will learn to estimate the efficiency of algorithms, and practice

writing and refining algorithms in a programming language.

This course emphasizes big-picture understanding and practical problem-solving in

preparation for technical interviews and professional practice. Throughout the course,

students will solve common practice problems, and participate in mock interview

sessions. As part of their regular assignments, they will also deepen their understanding

of these topics and practice technical communication by writing technical blog posts.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Demonstrate analytical thinking skills in the development of algorithms, focusing on sorting and searching. This includes applying analysis, synthesis, and evaluation to employ iteration and recursion effectively, and making informed trade-offs between these approaches based on the specific problem context
  • Exhibit knowledge of analyzing algorithms, demonstrated by solving common algorithmic technical interview problems.
  • Understanding of the principles and conventions necessary for the effective use of data structures in problem-solving
Skills
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems of data structures, especially as relates to technical interview questions.
  • Ability to apply theoretical and practical when estimating the efficiency of algorithms.
  • Communicate ideas in a well-structured, coherent format, and practice writing and refining algorithms in a programming language.
Competencies
  • Independently manage projects that require techniques related to data structures where the correct use of analysis of algorithms is essential.
  • Possess the academic competences to undertake further studies in data structures and algorithms with a degree of autonomy.
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively guide others in the correct approach to examining data structures
  • Represent algorithms using pseudocode and translate these into running programs.
Statistical Inference & Regression Modeling with Python
150 hours | 6 ECTS

About

This course equips learners with foundational and applied statistical inference skills using Python. Students will work with probability distributions, confidence intervals, and hypothesis testing across proportions, means, categorical data, and multivariate datasets. The course advances into regression analysis, beginning with simple and multiple linear regression before exploring model diagnostics, transformations, interaction terms, model selection, and regularization methods such as Ridge and Lasso. Emphasis is placed on interpreting model outputs, assessing performance, and addressing the bias–variance tradeoff. A final applied lab reinforces learning through real-world regression modeling.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Discuss model diagnostics, bias–variance tradeoff, and criteria for selecting appropriate regression techniques.
  • Describe simple, multiple, and regularized regression models and their underlying assumptions.
  • Explain key concepts of statistical inference, including probability distributions, confidence intervals, and hypothesis testing.
Skills
  • Apply statistical inference methods in Python to analyze single and multigroup datasets.
  • Evaluate model performance using diagnostics, selection criteria, and error-based metrics.
  • Develop regression models—including transformations, interactions, and regularization—and interpret results accurately.
Competencies
  • Produce a comprehensive analytical report demonstrating proficiency in inference and regression modeling.
  • Critically assess the appropriateness and robustness of statistical models for different data scenarios.
  • Integrate statistical and regression techniques to analyze real-world datasets and draw valid conclusions.
Fundamental Cyber Attacks and Defensive Tactics
150 hours | 6 ECTS

About

The threat of cybercrime is constantly evolving. New threats emerge as different technologies are created, innovated, and improved. The only way to be prepared to face these digital challenges is by knowing your enemy. Much like famous war tacticians throughout history, cybercriminals use common types of hacking techniques that are proven to be highly effective. Instead of entirely new hacking algorithms, they tend to find ways to innovate on commonly used methods like malware, SQL injection, cross site scripting (XSS), Zero-Day attacks and more. In this module, students will learn how to use and defend against dangerous but rudimentary attacks, such as SQL injection, XSS, and more. Students will develop a thorough understanding of hacking techniques by utilizing both a proactive approach through ethical hacking and a reactive approach that focuses on prevention, detection, and responding to attacks. Students will learn skills that will prepare them for situations they may encounter during their careers so they can meet them with confidence.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Identify and describe common types of cyber attacks
  • Develop incident response plans
  • Analyze defensive strategies and countermeasures
Skills
  • Assess and remedy server-side and client-side attacks.
  • Demonstrate proficiency in analyzing and responding to simulated cyber attacks
  • Develop and present comprehensive security assessments
Competencies
  • Apply foundational knowledge of cyber attack vectors
  • Design and implement effective defensive strategies
  • Conduct vulnerability assessments and penetration testing
Challenge Studio 1
150 hours | 6 ECTS

About

Engineering for Development, Challenge Studio 1, and Challenge Studio 2 are 3 courses that help students investigate the role that technology can play in solving some of the world’s most intractable social and economic development challenges.

In Challenge Studio 1, students will work in groups to design, develop, and test a solution to a development challenge of their choice. The focus of this course is to provide students with the tools and skills to create meaningful technology solutions (e.g. services, products) to a sustainable development problem. This course builds on the problem identification and analysis skills that were developed in Engineering for Impact, the product management skills that were developed in Product Management and Design, and the ethical engineering skills developed in Ethics in Tech.

At the end of Challenge Studio 1 students will submit a Minimum Viable Product (MVP) that is ready to go to market as their final project deliverable.

The course will utilize virtual studio time, where groups work together on the key incremental tasks that are required to allow them to successfully create their final project output. Studio time will be supported by lectures, seminars, and learning resources on useful skills such as human centered design, end user identification, requirements gathering, value creation, impact measurement, and creative thinking and innovation.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Human centered design principles, end user identification strategies; best practices for requirements gathering and impact measurement.
  • The rules and conventions of problem identification, product management, and sprint management.
  • Core strategies of problem formulation; user research; and build, measure, learn cycles - demonstrated by submitting a Minimum Viable Product (MVP) that provides a solution to a defined problem.
Skills
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions.
  • Ability to apply theoretical and practical knowledge to the decomposition of problems into actionable tasks
  • Consistently evaluates own learning and identifies learning needs.
  • Select appropriate evidence and technologies when formulating responses to well-defined concrete and abstract problems in the domain of Human Centered Design and End User requirements.
Competencies
  • Work as a team to develop a Minimum Viable Product or prototype that provides a practical solution for an identified problem.
  • Possess the academic competences to undertake further collaborative projects leading to an MVP or prototype when solving a well-defined user problem.
  • Organise and execute upon a detailed project plan that employs progress tracking methods using appropriate metrics and tools.
Network and Computer Security
150 hours | 6 ECTS

About

Network and Computer Security teaches students the principles and practices of security for software, systems, and networks. It aims to make students critical examiners and designers of secure systems. Students will learn the mathematical and theoretical underpinning of security systems, as well as practical skills to help them build, use, and manage secure systems.

The first part of the course is focused on applied cryptography. Students learn general cryptographic protocols and investigate real-world algorithms. The second part of the course covers software and system security, including access controls, trends in malicious code, and how to detect system vulnerabilities. There is a special focus on web security, and modern practices for building secure web architectures. The final section of the course focuses on network security and covers concepts of networking, threats, and intrusion protection.

Course projects will require students to think both as an attacker and as a defender, and write programs that examine security design.  Students will also examine recent security and privacy breaches. Working in pairs, they’ll conduct an in-depth investigation, and give a presentation to help classmates understand its technical underpinnings and social implications.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Network and computer security strategies, demonstrated by preparing both attacker and defender computer programmes.
  • Understand a range of tools and techniques used in computer security.
  • Utilize detailed theoretical and practical knowledge essential to network and computer security, demonstrating a knowledge of software and system security, including access controls, trends in malicious code, and how to detect system vulnerabilities.
  • Modern practices for building secure web architectures.
Skills
  • Evaluate recent security and privacy breaches, diagnosing the core system vulnerabilities.
  • Think both as an attacker and as a defender, and write programs that examine security design.
  • Communicate security principles in a well-structured, coherent format, following appropriate conventions.
Competencies
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues relating to network and computer security.
  • Possess the academic competences to undertake further studies in network and computer security with a high degree of autonomy.
  • Show creativity and initiative to read and analyze a variety of cryptographic algorithms and protocols.
Introduction to Data Science
150 hours | 6 ECTS

About

Data science is applicable to a myriad of professions, and analyzing large amounts of data is a common application of computer science. This course empowers students to analyze data, and produce data-driven insights. It covers all areas needed to solve problems involving data, including preparation (collection and integration), presentation (information visualization), analysis (machine learning), and products (applications).

This course is a hybrid of a computing course focused on Python programming and algorithms, and a statistics course focusing on estimation and inference. It begins with acquiring and cleaning data from various sources including the web, APIs, and databases. Students then learn techniques for summarizing and exploring data with spreadsheets, SQL, R, and Python. They also learn to create data visualizations, and practice communication and storytelling with data. Finally, students are introduced to machine learning techniques of prediction and classification, which will prepare them for advanced study of data science.

Throughout the course, students will work with real datasets (e.g., economic data) and attempt to answer questions relevant to their lives. They will also probe the ethical questions surrounding privacy, data sharing, and algorithmic decision making. The course culminates in a project where students build and share a data application to answer a real-world question.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Techniques for summarizing and exploring data with spreadsheets, SQL, R, and Python.
  • Theoretical and practical techniques for data collection and management, including acquiring and cleaning data from the web, APIs, and databases.
  • Ability to work with real datasets to answer questions set in the module.
  • Have a knowledge of key strategies for interpreting data to make informed predictions about possible outcomes.
Skills
  • Make judgments based on knowledge of the rules and conventions for the proper use of advanced data sets and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Communicate insights on the basis of data sets in a well-structured, coherent format.
  • Create data visualizations, and practice communication and storytelling with data.
  • Consistently evaluates own learning and identifies learning needs.
  • Communicate effectively about ethical issues surrounding data privacy, data sharing, and algorithmic decision making.
Competencies
  • Possess the academic competences to undertake further studies in data science with a high degree of autonomy.
  • Show creativity and initiative while working with real datasets (e.g., economic data) and providing valuable answers.
  • solve problems involving data, including preparation, presentation, analysis, and products.
Applied Computer Science
375 hours | 15 ECTS

About

This capstone course enables students to demonstrate their proficiency in the technical and human skills that they have acquired throughout their undergraduate studies. The capstone requires students to conceptualise, plan, and implement a software project to completion, and evaluate their project’s processes and outcomes.

The capstone builds on the initial project scoping work that was carried out in Capstone Research Methods, which culminated in students submitting a project proposal, and gaining formal approval for their capstone Project Proposal.

In this course, students will implement their proposed project with the support of a supervisor. Students with a common supervisor will be put into capstone advisory peer groups and will be required to meet with their group and supervisor regularly to update each other on their capstone progress and to provide feedback. Students will also have regular meetings with their capstone supervisor to provide additional support and guidance throughout the module.

Upon completion of their capstone projects, all students will be required to participate in a capstone symposium at the end of the term, where they will present their working projects/prototypes to internal and external stakeholders.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Make judgments based on knowledge of the rules and conventions for the proper use of capstone projects and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Utilize detailed theoretical and practical knowledge essential to capstone projects.
  • Understand a range of tools and techniques used in completing capstone projects.
  • Project management techniques required to plan, build, and present a software development project, demonstrated by the presentation of the final working project to internal and external stakeholders.
Skills
  • Devises and sustains arguments to solve problems related to the chosen topic of the capstone project, using effective and extensive evidence.
  • Implement knowledge and understanding in a way that demonstrates professionalism in capstone projects.
  • Have the ability to gather qualitative and quantitative data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
  • Consistently evaluates own learning and identifies learning needs.
  • Communicate capstone projects in a well-structured, coherent format, following appropriate conventions in the field of technology.
Competencies
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues in a capstone project.
  • Possess the academic competences to undertake further research studies with a high degree of autonomy.
  • Show creativity and initiative to develop projects with effective research skills.
Artificial Intelligence
150 hours | 6 ECTS

About

Artificial Intelligence (AI) aims to teach students the techniques for building computer systems that exhibit intelligent behavior. AI is one of the most consequential applications of computer science, and is helping to solve complex real-world problems, from self-driving cars to facial recognition. This course will teach students the theory and techniques of AI, so that they understand how AI methods work under a variety of conditions.

The course begins with an exploration of the historical development of AI, and helps students understand the key problems that are studied and the key ideas that have emerged from research. Then, students learn a set of methods that cover: problem solving, search algorithms, knowledge representation and reasoning, natural language understanding, and computer vision. Throughout the course, as they apply technical methods, students will also examine pressing ethical concerns that are resulting from AI, including privacy and surveillance, transparency, bias, and more.

Course assignments will consist of short programming exercises and discussion-oriented readings. The course culminates in a final group project and accompanying paper that allows students to apply concepts to a problem of personal interest.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Practical applications of Artificial Intelligence, demonstrated by completing short programming exercises and discussion-oriented readings.
  • Problem solving, search algorithms, knowledge representation and reasoning, natural language understanding, and computer vision.
  • Understand the different approaches by which AI is built.
  • Make judgments based on knowledge of the rules and conventions for the proper use of Artificial Intelligence and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Understand a range of tools and techniques used in Artificial Intelligence.
  • A deeper knowledge of the history, philosophy and theory of AI.
Skills
  • Have the ability to gather and analyze scholarly information about artificial intelligence in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
  • Complete short programming exercises using artificial intelligence.
  • Examine and write about pressing ethical concerns that are resulting from AI, including privacy and surveillance, transparency, and bias.
  • Communicate technical issues about AI using well-structured, coherent format, following appropriate conventions.
  • Devise and sustain arguments to solve problems related to artificial intelligence.
Competencies
  • Show creativity and initiative to develop projects related to Artificial Intelligence
  • Understand the theory and techniques of AI, so that they apply AI methods under a variety of conditions to solve problems.
  • Possess the academic competences to undertake further studies in Artificial Intelligence with a high degree of autonomy, demonstrated by their ability to write an academic paper on an AI topic.
Engineering Your Career
75 hours | 3 ECTS

About

This module will prepare students to apply and interview for internships and full-time positions in the software engineering industry.

Students will refine their personal brand, and craft effective resumes, LinkedIn profiles and portfolios. They will learn to communicate effectively in behavioral interviews, including how to conduct company and role research, and how to succinctly answer questions and share their background. They will learn to prepare for technical interviews. Key skills include the ability to walk an interviewer through one’s thought process, craft code on a whiteboard or document, and identify opportunities for improvement in one’s work.  Finally, students will learn to prepare to onboard to development job, and understand how to effectively navigate large codebases and organizations to make valuable contributions.

The module emphasizes learning by doing, and the majority of assessments will be in the form of feedback received from practice interviews with industry professionals.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Understand theories and best practices related to interview strategies that build upon advanced general education, though at a level still supported by advanced applications.
  • Apply the rules and conventions for the proper use of sources, that lead to demonstrated knowledge of the social and ethical issues relevant to working in the tech industry.
  • Utilize strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to developing a personal brand.
Skills
  • Craft effective professional presence, including resumes, portfolios and online websites.
  • Reflect on their personal skills, and identify opportunities for further development.
  • Independently manage projects that require techniques related to finding a job where the correct use of technology is essential.
  • Display creativity and initiative in carrying out the utilisation of bset practices.
Competencies
  • Communicate ideas in a well-structured format, following appropriate conventions.
  • Apply theoretical and practical knowledge in the creation of solutions for problems related to applying for jobs.
  • Develop interviewing skills that enable them to make an effective case for technical roles.
Machine Learning
150 hours | 6 ECTS

About

This course aims to teach students the theoretical and practical methods for solving problems using machine learning. Machine learning is one of the fastest-growing areas of computer science. Its applications are reshaping society, from consumer products (e.g., voice assistants and recommendations) to life-sciences (e.g., personalized medicine and tumor detection). This course will build on the Data Science introductory course, and help students understand how, why and when machine learning methods work.

Students will be introduced to major paradigms in machine learning, and gain working knowledge of supervised and unsupervised learning techniques. Students will learn to solve common problems such as regression, classification, clustering, matrix completion and pattern recognition. They will learn how to train and optimize neural networks. They will explore modern software libraries that enable programmers to develop machine learning systems. Students will use these libraries along with publicly available data sets to build models, then learn how to evaluate and verify the results. Throughout the course, as they apply technical methods, students will also examine the societal context of machine learning and considerations of transparency, bias and privacy.

Course assignments will consist of short programming exercises and peer discussions of ethical considerations. The course culminates in a final group project and accompanying paper that allows students to apply concepts to a problem of personal interest.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Gain insight into the concept of learning from data, encompassing an understanding of bias and fairness.
  • Make judgments based on knowledge of the rules and conventions for the proper use of Machine Learning and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Understand a range of tools and techniques used in Machine Learning.
  • Understand how, why, and when machine learning methods work.
  • Have a knowledge of supervised and unsupervised learning techniques and machine learning strategies, demonstrated by completing short programming exercises that solve practical problems.
Skills
  • Consistently evaluates own learning and identifies learning needs.
  • Devises and sustains arguments to solve problems related to machine learning.
  • Understand the principles and methodologies for training and optimising machine learning models.
  • Have the ability to gather and analyse machine learning data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
  • Communicate machine learning methods in a well-structured, coherent format, following appropriate conventions in the field of technology.
Competencies
  • Possess the academic competences to undertake further studies in Machine Learning with a high degree of autonomy.
  • Solve common problems from an ML context, such as regression, classification, clustering, matrix completion and pattern recognition.
  • Show creativity and initiative when using modern ML software libraries along with publicly available data sets to build models, and evaluate and verify the results.
Capstone Research Methods
150 hours | 6 ECTS

About

The Capstone Research Methods course supports students in developing critical research skills that are needed for the successful completion of their capstone project (Applied Computer Science).

The course provides students with an overview of the research process and types of capstone projects that they can undertake, and includes a detailed exploration of relevant quantitative and qualitative research methods.

Students will develop skills in data gathering and analysis, researching and writing an effective literature review, creating a research proposal, and managing ethical considerations with regards intellectual property rights and research with human subjects.

At the conclusion of the course, students will be required to submit their formal capstone project proposal which should include details of their project scope, research question, hypothesis, and project plan. Their proposal must receive a passing mark before they are allowed to undertake the capstone course in the final term of the degree program.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Research planning strategies, demonstrated by the completion of a formal project proposal which should include details of the project scope, research question, hypothesis, and project plan.
  • Understand and evaluate the range of potential tools and techniques used in research, including a detailed exploration of relevant quantitative and qualitative research methods to be used in the capstone.
  • Utilize detailed theoretical and practical knowledge essential to research skills.
  • Make judgments based on knowledge of the rules and conventions for the proper use of research proposals and demonstrate knowledge of the social and ethical issues relevant to technology.
Skills
  • Have the ability to gather qualitative and quantitative data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
  • Implement knowledge and understanding in a way that demonstrates professionalism in research methods.
  • Consistently evaluates own learning and identifies learning needs.
  • Communicate research methods in a well-structured, coherent format, following appropriate conventions in the field of technology.
  • undertake extended research, writing an effective literature review, and creating a research proposal.
Competencies
  • Show creativity and initiative to develop projects with effective research skills.
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues in research skills.
  • Possess the academic competences to plan a research project, evaluating the types of capstone projects that can be undertaken.
Ethics for Tech
150 hours | 6 ECTS

About

This course examines the ethical questions that are emerging as a result of rapid technological change. It prepares students to become responsible technologists, and provides a basis for ethical decision-making in their professional work.

It focuses on the promise and potential ethical dilemmas that result from the latest developments of computer science. Topics addressed include ethical decision-making, privacy and confidentiality, safety, manipulation/deception, and the impact of computers on society.

Students are first introduced to a selection of classical ethical theories (e.g., Rights, Justice/Fairness, Utilitarian, etc.). These provide a vocabulary and framework for examining ethical issues in tech. These frameworks are applied to a selection of relevant ethical questions. Examples might include: should social media companies suppress the spread of fake news on their platforms? Is electronic privacy a right? Are there justifiable uses of state surveillance? Should AI be used to “predict” crime by police? What ethical codes should guide AI like self-driving cars? Students read case-studies addressing these questions, write positioning papers, and offer feedback on papers of their classmates. Each live class is a seminar, where students engage in facilitated discussion.

The class culminates in an ethical redesign project where students analyze an existing product that poses ethical questions, then propose specific changes (in software, hardware, UI design, processes, features, implementation) to reduce ethical risks posed by the product.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • A selection of classical ethical theories (e.g., Rights, Justice/Fairness, Utilitarian, etc.) and how they apply to ethical issues in technology
  • Make judgments based on knowledge of the rules and conventions for the proper use of ethical decision-making frameworks, and demonstrate knowledge of the social and ethical issues relevant to computing scenarios and projects.
  • Ethical decision-making frameworks, demonstrated by the ability to analyze an existing product that poses ethical questions.
Skills
  • Evaluates their own learning and identifies the learning deficits to address in further learning, whilst writing positioning papers and offering feedback on papers of their classmates.
  • Ability to apply theoretical and practical knowledge using an appropriate scholarly vocabulary and framework for examining ethical issues.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of technology.
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems of ethical dilemmas.
Competencies
  • Monitor and review their own performance and the performance of others when engaged in discussions about ethical problems in technology; where appropriate collaboratively train others in the correct approach to ethical issues such as data privacy and AI training.
  • Independently analyze an existing product that poses ethical questions, then propose specific changes (in software, hardware, UI design, processes, features, implementation) to reduce ethical risks posed by the product.
  • Display creativity and initiative in carrying out analyses of ethical decision-making in the design of software programs.
  • Possess the academic competences to undertake further studies in classical ethical theories with a degree of autonomy.
Data Structures and Algorithms 2
150 hours | 6 ECTS

About

This course builds on Data Structures & Algorithms 1. Students will explore non-linear data structures, and implement and analyze advanced algorithms.

The course begins with a brief review of basic data structures and algorithms. Students deepen their understanding of searching and sorting, with a focus on describing performance. They learn about advanced data structures including priority queues, hash tables and binary search trees. Students build on their knowledge of graph theory to implement graph algorithms, and explore topics like finding the shortest paths in graphs, and applications of algorithms in maps, social networks, and a host of real-life applications. Other key topics include: divide and conquer recursion, greedy algorithms, dynamic programming algorithms, NP completeness, and case studies in algorithm design.

The course emphasizes big-picture understanding and practical problem-solving in preparation for technical interviews and professional practice. Students will solve common algorithmic problems and participate in mock interview sessions. As part of their regular assignments, they will write technical blog posts to deepen their understanding of these topics and to practice technical communication.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • data structures, demonstrated by solving common algorithmic problems and participating in mock interview sessions.
  • knowledge of the rules and conventions advanced data structures, including priority queues, hash tables and binary search trees.
  • typical use of algorithms for mapping problems, social networks, and other popular applications.
  • divide and conquer recursion, greedy algorithms, dynamic programming algorithms, NP completeness, and case studies in algorithm design.
Skills
  • devises and sustains arguments to solve mathematical problems relevant to data structures and algorithms.
  • Implement graph algorithms, demonstrating both theoretical and practical sophistication.
  • communicate about advanced data structures and algorithms in a well-structured, coherent format, following appropriate conventions in the field of technology.
  • solve common algorithmic problems typically found in technical interview sessions.
Competencies
  • show creativity and initiative in exploring non-linear data structures and formulating advanced algorithms.
  • Possess the academic competences to undertake further studies in data structures and algorithms with a high degree of autonomy.
  • implement graph algorithms, building on a knowledge of graph theory.
Advanced Cyber Attacks and Defensive Tactics
150 hours | 6 ECTS

About

This module expands on the information gained in Fundamental Cyber Attacks and Defensive Tactics and is designed to provide an in-depth exploration of the complex world of cyber threats, attacks, and the cutting-edge defensive strategies employed to counter them. In today's rapidly evolving digital landscape, organizations face increasingly sophisticated cyber attacks that can cripple their operations, compromise sensitive data, and undermine their reputation. This module equips students with the knowledge and skills necessary to understand and effectively combat these threats.

Topics addressed in the module include Kali Linux, Metasploit, Owasp ZAP, Burp Suite, Maltego, and other ethical hacking tools. Students will gain experience with IDS/IPS and learn how to deter and catch hackers. Additionally, students will critically study the pros and cons of antivirus software and how to comprehensively defend endpoint machines.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Analyze and assess advanced attack vectors and techniques
  • Evaluate and implement advanced defensive strategies and countermeasures
  • Develop and execute comprehensive incident response plans for advanced attacks
Skills
  • Implement advanced defensive measures and technologies
  • Develop and execute advanced attack scenarios
  • Conduct digital forensics and incident response in complex attack scenarios
Competencies
  • Apply advanced threat intelligence analysis techniques
  • Develop and implement advanced defensive methodologies
  • Demonstrate competence in conducting advanced penetration testing
Interaction Design
150 hours | 6 ECTS

About

This course introduces students to the principles of human-computer interaction (HCI). Students explore how humans process information (perception, memory, attention) in the context of designing and evaluating interfaces. This course complements programming coursework by helping students understand how to design more usable systems.

The course builds on previous knowledge of design thinking and expects students to apply the design thinking methodology as a starting point. The first part of the course focuses on designing for multiple platforms. Students create designs that solve a problem on multiple devices (e.g., web, mobile, wearables) and learn how to create a coherent design system as users move between devices. The second part of the course delves into design beyond visual user interfaces, and teaches students how to design for emerging technologies, for example, sensors, controls and ubiquitous computing. Throughout the course, students learn and apply a variety of evaluation methodologies used to measure the usability of design.

This is a project-based course and, in each part, students will work in a team to design, prototype and test a solution to a problem. Students will present their designs in class sessions, and practice giving and receiving meaningful critiques.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Make judgments based on knowledge of the rules and conventions for the proper use of Human-Computer Interaction and demonstrate knowledge of the social and ethical issues relevant to technology.
  • Understand a range of tools and techniques used in Human-Computer Interaction.
  • Techniques for creating a coherent design system as users move between devices.
  • Sufficient knowledge of Human-Computer Interaction to work in a team to design, prototype and test a solution to a problem.
Skills
  • Create designs that solve a problem on multiple devices (e.g., web, mobile, wearables) and learn how to create a coherent design system as users move between devices.
  • Have the ability to gather and analyze Human-Computer Interaction data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
  • Consistently evaluates own learning and identifies learning needs.
  • Evaluate interfaces, identifying problems, and design solutions using insights from the principles of Human-Computer Interaction.
  • Communicate Human-Computer Interaction methods in a well-structured, coherent format, following appropriate conventions in the field of technology.
Competencies
  • Possess the academic competences to undertake further studies in Human-Computer Interaction with a high degree of autonomy.
  • Show creativity and initiative when designing for emerging technologies like sensors, controls and ubiquitous computing.
  • Design, prototype, and test a solution to an HCI problem using techniques taught in the course.

Entry Requirements

Tuition Cost
46,800 USD
Student education requirement
High School

Application Process

1

Submit initial Application

Complete the online application form with your personal information

2

Documentation Review

Submit required transcripts, certificates, and supporting documents

3

Assessment

Note: Not required by all colleges.
For colleges that include this step, your application will be evaluated against specific program requirements.

4

Interview

Note: Not all colleges require an interview.
Some colleges may invite selected candidates for an interview as part of their admissions process.

5

Decision

Receive an admission decision

6

Enrollment

Complete registration and prepare to begin your studies

Person holding a booklet labeled 'WOOLFIT' against their blue jeans.

Ready to advance your education with a globally recognised degree?

Previous
Overview
Next
What you’ll learn