Bachelor of Science in Computer Science

Fully Online
36 months
4500 hours | 180 ECTS
Degree
Scaler Neovarsity
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 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

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

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 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
"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 demonstrate some application of theoretical and practical knowledge in responding to problems. • Students formulate their ideas in clearly structured conventional formats and use appropriate evidence to support their claims. • Students will monitor, evaluate, and adjust their own learning needs in order to succeed as independent learners. • Students will also collect and analyse data to respond to both well-defined practical problems and well-specified abstract problems.

Course Structure

Communicating for Success
75 hours | 3 ECTS

About

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

You will learn how to effectively read and analyze texts as a precursor to developing your own written communication skills. You 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, you will move on to verbal communication and will learn how to confidently and skillfully deliver effective oral presentations. Finally, you will learn about the impact of non-verbal communication on how your messages are received.

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

All materials are included.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

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
  • 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.
  • 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.
Competencies
  • 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.
  • Display creativity and initiative in carrying out complex ideas and arguments, and distill them in their components, assumptions, and evidence.
Data Structures & 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 Python.

This course emphasises 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 formative assignments, they will also deepen their understanding of these topics and practice technical communication by writing technical blog posts.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Make judgments based on knowledge of the rules and conventions for the proper use of data structures.
  • Cultivate strategic and creative responses when developing algorithms for sorting and searching, iteration and recursion for repetition, and when make tradeoffs between the approaches
  • Exhibit knowledge of analyzing algorithms, demonstrated by solving common algorithmic technical interview problems.
Skills
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Communicate ideas in a well-structured, coherent format, and practice writing and refining algorithms in Python.
  • Ability to apply theoretical and practical when estimating the efficiency of algorithms.
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems of data structures, especially as relates to technical interview questions.
Competencies
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to examining data structures
  • 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.
  • Represent algorithms using pseudocode and translate these into running programs.
Product Management and Design
150 hours | 6 ECTS

About

This course teaches students to build products users want and love. It gives students a foundation in the tools and practices of modern product management and interaction design. Students will work in pairs to apply product development skills to real user challenges.

The course begins with a focus on user research. Students learn and apply the design thinking framework to product development. They learn to define user needs through user interviews and market analysis. They learn to translate user needs into product specifications and define metrics to test product success. They learn to create and test design prototypes (wireframes, user journeys). The second part of the course focuses on UX/UI design. Students learn key concepts in UI/UX design including information hierarchy, and typography, and color. Students will create high-fidelity UI mockups using industry-standard tools. They’ll then conduct usability tests to gauge the effectiveness of their designs.

As students work in pairs, they will practice the complementary and collaborative roles of PMs and UX designers in early product development. They’ll also practice giving design critiques to other teams and responding to feedback on their designs. By the end of the courses, each pair will have a user-tested, refined, and development-ready design for a web or mobile application.

All materials are included.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Have knowledge of product management, demonstrated by translating user needs into product specification documentation.
  • Learn and apply the design thinking framework to product development.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to user requests.
Skills
  • Can select appropriate patterns for information hierarchy, and typography and colour.
  • Create high-fidelity UI mockups using industry-standard tools.
  • Ability to apply theoretical and practical knowledge in the creation of solutions for problems related to product management.
Competencies
  • Display creativity and initiative in carrying out product management, including PM-UX interactions.
  • Independently manage projects that require techniques related to product management resulting in a user-tested, refined, and development-ready design for a web or mobile application
  • Possess the academic and practical competences to undertake further studies in product management with a degree of autonomy.
  • Monitor and review their own performance and the performance of others while collaborating on product design.
Web Application Development
150 hours | 6 ECTS

About

This course builds on Web Foundations and provides a comprehensive introduction to the client and server-side development for the web.

In this project-based course, students will work independently to build a web application and progressively apply new knowledge to their application. Students deepen their knowledge of HTML and learn advanced CSS, including how to use CSS variables and modern frameworks for motion and interaction. They learn about accessible web design, and how to create websites and apps that work well on mobile devices, and that support the use of assistive technologies like screen readers.

Students will build the front-end of a web application using HTML, CSS and JavaScript then write a supporting back-end using either a JavaScript or Python framework. In doing so, they will demonstrate knowledge of the request-response structure, database management, and JSON-based APIs. Students will also apply technical communication skills by writing technical specs, drafting architecture diagrams, and documenting APIs.

All materials are included.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to web development tools.
  • Demonstrate knowledge of the request-response structure, along with database management and JSON-based APIs.
  • 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.
Skills
  • Ability to solve front-end web application problems related to design requirements using HTML, CSS and JavaScript.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of technology.
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Work independently to build a web application, trouble-shooting problems as they rise using self-directed research techniques.
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.
  • 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.
  • Build the front-end of a web application using HTML, CSS and JavaScript then write a supporting back-end using either a JavaScript or Python framework.
Collaborating for Impact
75 hours | 3 ECTS

About

Collaborating for Impact aims to support students in developing effective collaboration skills in the pursuit of collective impact and success. Few problems are solved by individuals working alone, therefore the ability to work effectively with others to achieve a common goal is a crucial professional skill.

The course will start by focusing on the social awareness and relationship management components of Emotional intelligence, which was briefly introduced in the pre-requisite course, Optimizing Your Learning. Students will then be introduced to a variety of collaboration and leadership theories and frameworks, and they will examine theories of team dynamics and dysfunction, and reflect on how these relate to their past experiences of collaboration in academic and personal settings.

The second part of this course will require students to put their communication and collaboration skills to practice by completing a group project that is designed to test their ability to work effectively as a group and deliver a high-quality output under time, resource, and information constraints.

All materials are included.

Teachers

No items found.

Intended learning outcomes

Knowledge
  • Gain self-awareness in collaborative settings, demonstrated by the development of relationship management skills in a project-based setting.
  • Make judgments based on knowledge of the rules and conventions for the proper use of collaborative learning and demonstrate knowledge of the social and ethical issues relevant to relationship management.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to team management and team building.
Skills
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems that drive team dysfunction in their collaborative work.
  • Demonstrate Emotional intelligence, including social awareness and relationship management in the creation of solutions for collaborative projects.
  • Communicate ideas in a well-structured, coherent format, demonstrating sensitivity to team dynamics.
  • 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 during team-building exercises; where appropriate collaboratively train others in the correct approach to team dynamics.
  • Independently manage projects that require techniques related to working effectively with others to achieve a common goal where the correct use of relationship management is essential.
  • Reflect on how collaboration and leadership theories relate to their experiences of collaboration in an academic setting.
  • Reflect on how these relate to their past experiences of collaboration in academic and personal settings.
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

Hugo André Fred Maurinier
Hugo André Fred Maurinier
Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas

Intended learning outcomes

Knowledge
  • Utilize detailed theoretical and practical knowledge essential to developing solutions using Python programming
  • Python commands, demonstrated by the ability to construct complex programs from simple instructions.
  • Understand a range of techniques used in Python, including variables, expressions, conditional execution, functions, loops, and iterations.
Skills
  • 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.
  • Compose Python programs in a well-structured, coherent format, following appropriate conventions
  • Think algorithmically and solve problems efficiently using Python
  • Implement knowledge and understanding in a way that demonstrates professionalism in team collaboration
Competencies
  • Possess the academic competences covering variables, expressions, conditional execution, functions, loops, and iterations, and demonstrate an ability to undertake further studies in related topics with a degree of autonomy
  • 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
Programming 2
150 hours | 6 ECTS

About

This course expands on Programming 1, and deepens students' knowledge of Python with a focus on data access and management.

Previously introduced programming topics include data types, operators, variables, and control flows are reinforced, this time in the context of retrieving and manipulating data. 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.

Students work on small projects throughout the course. The final project challenges students to retrieve and visualize original data in Python.

All materials are included.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to databases.
  • Have knowledge of Python, demonstrated by retrieving and visualizing original data in Python.
  • 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.
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
  • 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
  • Possess the academic competences to undertake further studies in computer science with a degree of autonomy.
  • 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.
  • Independently manage projects that require techniques related to Python where the correct use of data access and management is essential.
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

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • 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.
  • 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.
  • Make judgments based on knowledge of an abstract, systematic way of constructing solutions to problems.
Skills
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions pair programming and online code collaboration.
  • Ability to use abstraction and systematically construct solutions to problems.
  • 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.
Competencies
  • Display creativity and initiative in writing complex programs requiring application of a knowledge of basic data structures and algorithmic thinking.
  • Independently manage projects that require programming as a problem-solving tool, requiring the manipulation of variables, expressions, and statements.
  • 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.
Mathematical Thinking
150 hours | 6 ECTS

About

This course helps students develop the ability to think logically and mathematically. It prepares students for more advanced courses in algorithms and discrete mathematics. An emphasis is placed on the ability to reason logically and effectively communicate mathematical arguments.

The course begins with a brief review of number systems and their relevance to digital computers. Students review the algebraic operations necessary to perform programming functions. In the unit on logic and proofs, students learn to identify, evaluate, and make convincing mathematical arguments. They are introduced to formal logic, and methods for determining the validity of an argument (truth tables, proofs, Venn Diagrams). Students learn to decompose problems using recursion and induction, and how these methods are used in real-world computational problems. The final unit is an introduction to counting and probability. Topics covered include principles of counting, permutations, combinations, random variables, and probability theory.

Throughout the course, students apply their knowledge by solving logic puzzles and creating programs in Python.

All materials are included.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Make judgments, relevant to real-world computational problems, based on knowledge of the principles of counting, permutations, combinations, random variables, and probability theory.
  • Display knowledge of algebraic operations in order to perform programming functions that builds upon advanced general education, though at a level still supported by advanced textbooks.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to logic and proofs.
Skills
  • Can select appropriate evidence when formulated responses to well-defined concrete and abstract problems of algebraic operations.
  • Identify, evaluate, and make convincing mathematical arguments which are communicated in a well-structured, coherent format, following appropriate conventions.
  • Ability to apply theoretical and practical knowledge in the creation of solutions for problems related to mathematical arguments.
  • Decompose problems using recursion and induction in the context of real-world computational problems.
Competencies
  • Monitor and review their own performance and the performance of others; where appropriate collaboratively train others in the correct approach to effectively communicate mathematical arguments.
  • Develop the ability to think logically and mathematically at a level that prepares students for more advanced courses in algorithms and discrete mathematics.
  • Display creativity and initiative in carrying out algebraic operations necessary to perform programming functions.
  • Possess the academic competences to undertake further studies in advanced courses in algorithms and discrete mathematics with a degree of autonomy.
Industry Experience 1
300 hours | 12 ECTS

About

This course will help you apply, interview for, and succeed in roles in the software engineering industry.

Industry Experience is a form of experiential learning that will let you apply your academic knowledge in a professional context. You will work to build software that meets the needs of a professional organization by completing either

  • An approved internship

  • A product studio or open-source project

The course is broken up into two parts.

Part 1: Preparing for Industry Experience

During the first part of the course, you will refine your personal brand, and craft effective resumes, LinkedIn profiles and portfolios. You will learn to communicate effectively in behavioral interviews, including how to conduct company and role research, and how to succinctly answer questions and share you background. You will also 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, you will learn to prepare to onboard to development job, and understand how to effectively navigate large codebases and organizations to make valuable contributions.

Part 2: Succeeding during Industry Experience

During your industry experience, you will work on tasks that meet the needs of your sponsoring organization. Whether you undertake an internship, product studio or open-source collaboration, your industry experience must include significant, substantial computer science.

In addition to building your project, you will submit bi-weekly written reflections on your personal goals, challenges, and team feedback. At the end of the term, you must obtain written feedback from you organization supervisor. You will also submit a final report which describes the problem statement, approaches/methods used, deliverables, and skills you gained. Industry Experience culminates in a final presentation which is shared as a public blog post.

All materials are provided.

Learning Outcomes

By the end of this course, you will be able to:

  • Craft an effective professional presence including resume, portfolio and online website

  • Apply academic knowledge and skills in new professional settings

  • Demonstrate the ability to cope effectively with ambiguous and unfamiliar situations

  • Develop interpersonal and professional skills to successfully transition to work

  • Reflect on you personal skills, and identify opportunities for further development

  • Demonstrate professional and ethical behavior, and ability to maintain accountability for your commitments

Course Structure

Preparation phase

  • Each week, you will complete lessons and submit required assignments

  • You will also complete live practice interviews and submit self-evaluations and interviewer evaluations

Work phase

  • Every other week, you will submit a reflection of how the work experience is going

  • At the end of industry experience, you will obtain a written evaluation from your supervisors, and submit a final report

Core Reading List

This course will include readings from the following sources. The readings will be introduced throughout the lesson at the relevant time along with additional resources in video, audio, and other formats.

  • Bolton, G. and Delderfield, R. (2018). Reflective practice: writing and professional development (5th edition). London: SAGE.

  • Hudak, Kasey; Kile, Alexandria; Grodziak, Eileen; Keptner, Elizabeth. Advancing Student Interview Skills: Incorporating Virtual Interview Technology into the Basic Communication Course. International Journal for the Scholarship of Teaching and Learning, v13 n1 Article 3 2019

  • Northeastern University (2020). Job Search Guide

  • Personal Brand Workbook (2015). PricewhaterhouseCoopers

  • Rollag, K. (2015) Succeed in New Situations. Harvard Business Review

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

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
  • Translate business requirements that meet the needs of the organization into actionable software development tasks.
  • 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
  • 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.
Optimizing Your Learning
125 hours | 5 ECTS

About

Optimising 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 maximise their overall learning efficiency and efficacy. They will also utilise 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

Hugo André Fred Maurinier
Hugo André Fred Maurinier
Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas

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
  • 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.
  • 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 personal career and education planning and success.
Competencies
  • Independently manage external perceptions that require techniques of self-reflection and self-evaluation
  • 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.
  • Possess the academic competences to undertake further studies in emotional competence with a degree of autonomy
  • Display creativity and initiative in carrying out self-directed learning.
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

Hugo André Fred Maurinier
Hugo André Fred Maurinier
Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas

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.
  • Cultivate strategic and creative responses in the search for solutions to well-defined concrete and abstract problems related to web development tools.
  • Demonstrate knowledge of the request-response structure, along with database management and JSON-based APIs.
Skills
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of technology
  • Evaluates their own learning and identifies the learning deficits to address in further learning
  • 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
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.
  • Possess the academic competences to undertake further studies in web application development with a degree of autonomy.
  • 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.
  • Use a modern JavaScript framework to build and deploy a complex web application.
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 web applications, they integrate the technical, communication, and collaboration skills built in previous courses.

Students will work together to build a multi-feature web application. Students will learn and practice 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, including sprint planning, reviews, and retrospectives. During each milestone, team members rotate taking on various team roles. 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.

The course culminates in a showcase where students present their final project to the Kibo community and external stakeholders.

Core Reading List

  • Piercy, C. (2019). Problem Solving in Teams and Groups. University of Kansas Libraries

  • Atlassian (2021). The Agile Coach.

  • Chacon, S., Straub B. (2014). Pro Git. Apress.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • 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.
  • 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.
Skills
  • Evaluates their own learning and identifies the learning deficits to address in further learning.
  • Ability to apply theoretical and practical knowledge in the creation of solutions for problems related to software.
  • Practice project management skills by implementing the Scrum framework, including sprint planning, reviews, and retrospectives.
  • Rotate through team roles, taking the position of Scrum master, product owner, and technical lead.
Competencies
  • 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.
  • Possess the academic competences to undertake further studies in software project development with a degree of autonomy.
  • Use emotional intelligence and team development frameworks whilst monitoring and reviewing their own performance and the performance of others.
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 master 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.

All materials are included.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • 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.
  • Display knowledge of how the internet works through the creation of websites to educate a non-technical audience.
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 related to web development.
  • Communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of web development.
  • 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.
Competencies
  • Display creativity and initiative in carrying out foundations in building for the web,
  • 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.
  • 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
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 formative assignments, they will write technical blog posts to deepen their understanding of these topics and to practice technical communication.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

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

About

This course is intended for students who have completed Programming 1. It aims to help students deepen their programming skills, concentrating on Python. Students will learn how to think algorithmically and solve problems efficiently.

Students will gain proficiency in specifying commands and constructing complex programs from simple instructions. The course uses a formal programming environment, and students learn the 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 gain 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.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Utilize detailed theoretical and practical knowledge essential to developing solutions using Python programming
  • Understand a range of techniques used in Python, including variables, expressions, conditional execution, functions, loops, and iterations
  • Demonstrate knowledge of the rules and conventions for the proper use of Python in a software development environment
  • Python commands, demonstrated by the ability to construct complex programs from simple instructions
Skills
  • 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.
  • Implement knowledge and understanding in a way that demonstrates professionalism in team collaboration
  • Think algorithmically and solve problems efficiently using Python
  • Compose Python programs in a well-structured, coherent format, following appropriate conventions.
Competencies
  • Show creativity and initiative to develop projects related to Python programming.
  • Possess the academic competences covering variables, expressions, conditional execution, functions, loops, and iterations, and demonstrate an ability to undertake further studies in related topics with a degree of autonomy.
  • Demonstrates planning and time management while handling complex issues relating to Python programming assignments.
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
  • Understand a range of tools and techniques used in computer security.
  • Modern practices for building secure web architectures.
  • 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.
  • Network and computer security strategies, demonstrated by preparing both attacker and defender computer programmes.
Skills
  • 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.
  • evaluate recent security and privacy breaches, diagnosing the core system vulnerabilities
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.
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 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

Shamir Leon Colin Joseph
Shamir Leon Colin Joseph
Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas

Intended learning outcomes

Knowledge
  • 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.
  • 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.
  • Utilize detailed theoretical and practical knowledge essential to industry experience.
Skills
  • Consistently evaluates own learning and identifies learning needs
  • Devises and sustains arguments to solve problems related to professional settings
  • Communicate academic knowledge and skills in a well-structured, coherent format, following appropriate conventions in the field of technology
  • 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
Competencies
  • 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.
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues in a professional setting.
Discrete Math
150 hours | 6 ECTS

About

This course builds on Mathematical Thinking and provides the mathematical foundation needed for many fields of computer science, including data science, machine learning, and software engineering.

It focuses on core mathematical areas that are essential in the toolkit of every computer scientist: logic, combinatorics and probability, set theory, graph theory, and elementary number theory. Each topic is covered with a focus on applications in modern computer science. It begins with a unit on logic that builds on previous knowledge, with an emphasis on writing readable and precise code. Probability and combinatorics focus on the analysis of algorithms and reliability. There is an in-depth focus on graph theory, and students explore the numerous applications of graph theory in computer science (data mining, clustering, networking, etc.). Finally, the course introduces number theory, beginning with fundamental results such as the Euclidean Algorithm then applications in cryptography.

The course culminates in a final group project where students explore original mathematical sources and describe the historical proof techniques of a discrete math topic.

Teachers

Hugo André Fred Maurinier
Hugo André Fred Maurinier
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • the application of discrete math to key problems in modern computer science.
  • the rules and conventions for the proper use of discrete math.
  • mathematical areas that are essential in the toolkit of every computer scientist: logic, combinatorics and probability, set theory, graph theory, and elementary number theory.
  • a range of tools and techniques used in discrete math
Skills
  • ability to solve problems in data mining, clustering, and networking using graph theory.
  • ability to construct proofs using a variety of techniques of mathematical reasoning
  • devise arguments to solve mathematical problems relevant to web development.
  • evaluate self learning and identify learning needs
  • communicate ideas in a well-structured, coherent format, following appropriate conventions in the field of Mathematics.
Competencies
  • Write readable and precise code that demonstrates an in-depth knowledge of discrete math
  • Possess the academic competences to undertake further studies in developing arithmetic logic unit solutions.
  • Show creativity and initiative in analysing algorithms and reliability qualities, using probability and combinatorics.
Engineering for Development
150 hours | 6 ECTS

About

Engineering for Development, Challenge Studio 1, and Challenge Studio 2 are 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 Engineering for Development, students will learn how to analyze the root causes of development challenges so that they are able to build effective technology solutions. The course aims to introduce students to selected global development challenges using the United Nations Sustainable Development Goals (SDGs) as the framework for selecting the areas of focus.

Each term, the course will focus on 1- 2 subject areas (e.g. Quality Education, Affordable and Clean Energy, Climate Action), which will serve as test cases for students to develop the skills required to effectively analyze and understand complex development issues. Students will examine the system-level dynamics that are at the root of these challenges, and will also analyze and critique technology-related solutions that have been developed to address these challenges.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Understand a range of tools and techniques used in engineering for development.
  • key strategies for decomposing problems into actionable engineering solutions
  • Make judgments based on knowledge of the rules and conventions for the proper use of engineering for collaboratively solving a problem.
  • Utilize detailed theoretical and practical knowledge essential to engineering for development.
Skills
  • Implement knowledge and understanding in a way that demonstrates professionalism.
  • Consistently evaluates own learning and identifies learning needs.
  • Communicate engineering solutions to a problem in a well-structured, coherent format, following appropriate conventions for technical documentation.
  • Devise and actionable plans for solving a complex but scoped problem.
Competencies
  • Possess the academic competences to undertake further studies in engineering with a high degree of autonomy.
  • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues relating to solving practical problems with software engineering.
  • Analyze the root causes of development challenges, formulating and executing upon effective technology solutions.
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 the 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

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • 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.
  • Theoretical and practical techniques for data collection and management, including acquiring and cleaning data from the web, APIs, and databases.
  • Techniques for summarizing and exploring data with spreadsheets, SQL, R, and Python.
Skills
  • Communicate insights on the basis of data sets in a well-structured, coherent format.
  • Consistently evaluates own learning and identifies learning needs.
  • Create data visualizations, and practice communication and storytelling with data.
  • Communicate effectively about ethical issues surrounding data privacy, data sharing, and algorithmic decision making
  • 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.
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.
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 student 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

Shamir Leon Colin Joseph
Shamir Leon Colin Joseph
Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas

Intended learning outcomes

Knowledge
  • 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
  • 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
Skills
  • 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
  • consistently evaluates own learning and identifies learning needs
  • ability to apply theoretical and practical knowledge to the decomposition of problems into actionable tasks
  • communicate ideas in a well-structured, coherent format, following appropriate conventions
Competencies
  • Possess the academic competences to undertake further collaborative projects leading to an MVP or prototype when solving a well-defined user problem
  • Work as a team to develop a Minimum Viable Product or prototype 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
Computer Systems
150 hours | 6 ECTS

About

This course explores computing beyond software. Students will go a level deeper to better understand the hardware and see how computers are built and programmed. It is modelled on the popular, project-based “Nand to Tetris” textbook, which walks learners through building a computer from scratch. It aims to help students become better programmers by teaching the concepts underlying all computer systems. The course integrates many of the topics covered in other computer science courses, including algorithms, computer architecture, operating systems, and software engineering.

Students will learn how to build a computer system using progressive steps. The course starts with a brief review of Boolean algebra and an introduction to logic gates. Students design a set of elementary logic gates using a Hardware Description Language. They then build chips to perform arithmetic and logical operations and build the computer’s main memory unit. Subsequently, students learn to write low-level machine language and build a CPU to create a fully functional computer system. Finally, students implement a virtual machine, compiler, and basic operating system. Projects are spread out evenly throughout the course and are completed in pairs.

By the end of the course, students will develop a strong understanding of the relationships between the architecture of computers, and the software that runs on them.

Teachers

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • Boolean algebra, and logic gates
  • the computer science disciplines essential to designing and building general purpose computer systems
  • computer systems, including algorithms, computer architecture, operating systems, and software engineering
Skills
  • write low-level machine language.
  • communicate with clarity about the relationships between the architecture of computers, and software that runs
  • build a computer from scratch
  • Consistently evaluates own learning and identifies learning needs
  • complete projects related to computer system building, while working collaboratively
Competencies
  • design a set of elementary logic gates using a Hardware Description Language
  • possess the academic competences to undertake further studies of the concepts underlying all computer systems.
  • understanding the relationships between the architecture of computers, and the software that runs on them, to the extent of building a CPU to create a fully functional computer system
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

Shamir Leon Colin Joseph
Shamir Leon Colin Joseph
Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas

Intended learning outcomes

Knowledge
  • the rules and conventions of problem identification, product management, and sprint management
  • 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
  • human centered design principles, end user identification strategies; best practices for requirements gathering and impact measurement
Skills
  • 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
  • ability to apply theoretical and practical knowledge to the decomposition of problems into actionable tasks
  • 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
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 in 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 a 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

Victor Adrien Philippe Lucas
Victor Adrien Philippe Lucas
Henry Ugochukwu Ukwu
Henry Ugochukwu Ukwu

Intended learning outcomes

Knowledge
  • ethical decision-making frameworks, demonstrated by the ability to analyze an existing product that poses ethical questions.
  • 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
Skills
  • 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
  • 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.
Competencies
    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

    Hugo André Fred Maurinier
    Hugo André Fred Maurinier
    Henry Ugochukwu Ukwu
    Henry Ugochukwu Ukwu

    Intended learning outcomes

    Knowledge
    • Understand a range of tools and techniques used in Machine Learning.
    • Have a knowledge of supervised and unsupervised learning techniques and machine learning strategies, demonstrated by completing short programming exercises that solve practical problems
    • 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 how, why, and when machine learning methods work.
    Skills
    • communicate machine learning methods in a well-structured, coherent format, following appropriate conventions in the field of technology.
    • Consistently evaluates own learning and identifies learning needs
    • Devises and sustains arguments to solve problems related to machine learning.
    • train and optimize neural networks.
    • Have the ability to gather and analyze machine learning data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
    Competencies
    • 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.
    • Possess the academic competences to undertake further studies in Machine Learning with a high degree of autonomy.
    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 the 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

    Hugo André Fred Maurinier
    Hugo André Fred Maurinier
    Henry Ugochukwu Ukwu
    Henry Ugochukwu Ukwu

    Intended learning outcomes

    Knowledge
    • practical applications of Artificial Intelligence, demonstrated by completing short programming exercises and discussion-oriented readings.
    • Understand a range of tools and techniques used in Artificial Intelligence.
    • 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.
    • problem solving, search algorithms, knowledge representation and reasoning, natural language understanding, and computer vision.
    Skills
    • complete short programming exercises using artificial intelligence.
    • Communicate technical issues about AI using well-structured, coherent format, following appropriate conventions.
    • Devise and sustain arguments to solve problems related to artificial intelligence.
    • examine and write about pressing ethical concerns that are resulting from AI, including privacy and surveillance, transparency, and bias
    • 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.
    Competencies
    • 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.
    • Show creativity and initiative to develop projects related to Artificial Intelligence
    Android App Development
    150 hours | 6 ECTS

    About

    Android App Development teaches students to develop applications for Android, the most-used mobile platform in the world. Students learn to build with Android Studio and Kotlin, the modern toolkit used for professional Android development. The course prepares students to become professional Android developers.

    The course begins with the fundamentals of Kotlin, the official language for Android development. Students learn its basic syntax, as well as its object-oriented programming principles and key language features such as classes, collections, higher-order functions, and extensions. Students then delve into building Android apps, first by exploring layout and how to use common UI components. They learn Activity Lifecycle, and how to monitor and handle app states as users navigate through an app. Students learn how to create dynamic applications that persist data, and how to use APIs to pass data. The second part of the course covers advanced functionality including animations, notifications, offline caching, and authentication and with Firebase.

    Students learn by building small programming projects. The course culminates in a final group project where students build an Android app of their choice from scratch, going from initial design to deployment in the Play Store. Students will have obtained enough knowledge and have the option to obtain the Associate Android Developer certification offered by Google.

    Teachers

    No items found.

    Intended learning outcomes

    Knowledge
    • Make judgments based on knowledge of the rules and conventions for the proper use of Android App Development and demonstrate knowledge of the social and ethical issues relevant to technology
    • Have knowledge of Android App Development, demonstrated by the ability to build a functional Android app.
    • Utilize detailed theoretical and practical knowledge which essential to Android App Development
    • Understand a range of tools and techniques used in Android App Development.
    Skills
    • Devises and sustains arguments to solve problems related to Android App Development
    • Make judgments based on knowledge of the rules and conventions for the proper use of Android App Development and demonstrate knowledge of the social and ethical issues relevant to technology
    • Consistently evaluates own learning and identifies learning needs
    • Communicate Android App Development methods 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.
    Competencies
    • Possess the academic competences to undertake further studies in Android App Development with a high degree of autonomy
    • Show creativity and initiative to develop projects related to Android App Development
    • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues relating to Android App Development.
    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

    Shamir Leon Colin Joseph
    Shamir Leon Colin Joseph
    Hugo André Fred Maurinier
    Hugo André Fred Maurinier

    Intended learning outcomes

    Knowledge
    • Understand a range of tools and techniques used in Human-Computer Interaction.
    • Sufficient knowledge of Human-Computer Interaction to work in a team to design, prototype and test a solution to a problem.
    • 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.
    • Techniques for creating a coherent design system as users move between devices.
    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.
    • 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.
    • 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.
    Competencies
    • Possess the academic competences to undertake further studies in Human-Computer Interaction with a high degree of autonomy.
    • Design, prototype, and test a solution to an HCI problem using techniques taught in the course.
    • Show creativity and initiative when designing for emerging technologies like sensors, controls and ubiquitous computing.
    Backend Development
    150 hours | 6 ECTS

    About

    Back End Development builds on previous knowledge of web development and security, and equips students with knowledge of server-side development so that they can become professional back-end developers and build enterprise-scale applications. Students learn to develop and deploy server-side applications with greater scope and complexity.

    In this project-based course, students deepen their understanding by building the back end for a cross-platform application. The project will require implementing advanced features that add complexity and uniqueness to a server’s structure. Examples of these include payment gateways, chat rooms, full text search, WebSockets, etc. Students will design and build out all of the API endpoints needed for the application and properly secure them for use in any web or mobile front-end application. In doing so, they will explore the differences and tradeoffs between web services, APIs, and microservices. They will learn best practices for code quality including unit testing and error handling. They will also learn to efficiently document their APIs.

    Students will understand key Developer Operations (DevOps) practices including environment design, testing, development controls, and uptime management. They will implement modern DevOps workflows (e.g., containers, cloud virtual machines), and learn tradeoffs between different approaches. They will set up continuous integration and continuous delivery, and explore various strategies for automated testing and application monitoring.

    Teachers

    Victor Adrien Philippe Lucas
    Victor Adrien Philippe Lucas
    Henry Ugochukwu Ukwu
    Henry Ugochukwu Ukwu

    Intended learning outcomes

    Knowledge
    • Knowledge of server-side development and architecture demonstrated by implementing advanced features such as API endpoints, chat rooms, full text search, WebSockets, and CI/CD pipelines.
    • Best practices for code quality including unit testing and error handling.
    • Utilize detailed theoretical and practical knowledge essential to back-end development.
    • Tools and techniques used in back-end development.
    Skills
    • efficiently document their APIs using appropriate conventions.
    • Devises and sustains arguments to solve problems related to back end development
    • set up continuous integration and continuous delivery, and explore various strategies for automated testing and application monitoring
    • implement modern DevOps workflows (e.g., containers, cloud virtual machines), and learn tradeoffs between different approaches.
    • Make judgments based on knowledge of the rules and conventions for the proper use of back end development and demonstrate knowledge of the social and ethical issues relevant to technology
    Competencies
    • Understand and make reasonable decisions about key Developer Operations (DevOps) practices including environment design, testing, development controls, and uptime management.
    • Design and build out all of the API endpoints needed for a web application and properly secure them for use in any web or mobile front-end application.
    • Possess the academic competences to undertake further studies in back-end development with a high degree of autonomy.
    Designing Your Future
    75 hours | 3 ECTS

    About

    Designing Your Future is inspired by the Stanford University course Designing Your Life. In this course, final year students will use design thinking to reflect on their undergraduate studies and to plan and prepare for their transition into full-time employment.

    The course begins by exploring some of the self-awareness topics (e.g. identity, self-image, mental models, and motivation) that were introduced during the Optimizing Your Learning course. Students will revisit artifacts that they created during that course and reflect on their personal and technical growth over the course of the degree program. This will allow them to craft a compelling personal and professional narrative so that they can position themselves effectively in the job market. Students will also learn how to use a design thinking approach to explore options for their careers after graduation.

    In the second half of the course, students will develop practical skills to support their transition into full-time employment. They will learn critical skills like networking, professionalism, virtual collaboration, etc. that will support them in their integration into the workplace, while also developing some practical life skills, such as financial planning and emotional wellbeing.

    Teachers

    Victor Adrien Philippe Lucas
    Victor Adrien Philippe Lucas
    Henry Ugochukwu Ukwu
    Henry Ugochukwu Ukwu

    Intended learning outcomes

    Knowledge
    • Understand a range of tools and techniques used to carry out decision-making frameworks to career planning.
    • Demonstrate knowledge of potential career pathways by engaging in career planning exercises and reflections on personal skills.
    • Make judgments based on knowledge of the rules and conventions for the proper use of networking, and demonstrate knowledge of the social and ethical issues relevant to career selection
    • Cultivate strategic and creative plans to career to financial planning and emotional wellbeing.
    Skills
    • Devises and sustains arguments to solve problems related to financial planning.
    • 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 financial planning.
    • Use a design thinking approach to explore options for their careers after graduation.
    • Apply theoretical and practical knowledge in the creation of solutions for problems related to self-awareness and motivation
    Competencies
    • Possess the academic competences to undertake further studies in personal career planning with a degree of autonomy.
    • Independently manage external perceptions that require techniques of self-reflection and self-evaluation, resulting in a compelling personal and professional narrative that positions a learner effectively in the job market.
    • Display creativity and initiative in selecting and applying decision-making frameworks to career planning.
    Capstone Research Methods
    150 hours | 6 ECTS

    About

    The Capstone Research Methods module supports students in developing critical research skills that are needed for the successful completion of their capstone project. 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

    Victor Adrien Philippe Lucas
    Victor Adrien Philippe Lucas
    Henry Ugochukwu Ukwu
    Henry Ugochukwu Ukwu

    Intended learning outcomes

    Knowledge
    • 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.
    • Make judgments based on knowledge of the rules and conventions for the effective use of research proposals and demonstrate knowledge of the social and ethical issues relevant to business.
    • Utilise detailed theoretical and practical knowledge which is essential to research skills.
    • 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.
    Skills
    • Consistently evaluates own learning and identifies learning needs.
    • Implement knowledge and understanding in a way that demonstrates professionalism in research methods.
    • Communicate research methods in a well-structured, coherent format, following appropriate conventions in the field of business to specialist and non-specialist groups.
    • Have the ability to gather qualitative and quantitative data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues.
    • Undertake extended research, writing an effective literature review, and creating a research proposal.
    Competencies
    • Possess the academic competences to plan a research project, evaluating the types of capstone projects that can be undertaken.
    • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues.
    • Show creativity and initiative to develop projects with effective research skills.
    iOS App Development
    150 hours | 6 ECTS

    About

    iOS App Development teaches students to build modern mobile applications using Apple’s iOS development platform and toolchain. It prepares students to become professional iOS developers. Students learn the core principles of the Swift programming language and Apple’s front-end frameworks for creating single and multi-page applications.

    The course begins with an introduction to the Swift programming language and Xcode, Apple’s development environment for iOS. Students learn the core object-oriented programming principles of Swift, it's Model/View/Controller paradigm, and its supporting classes. They then learn to create user interfaces with UIKit, Apple’s front-end framework.

    The second part of the course teaches students to create dynamic iOS applications that pass information between views and objects, and respond to user events. Students learn how to incorporate networking into their mobile apps, and how to get and parse information from the internet through APIs. They also learn techniques for creating asynchronous apps, including industry-standard patterns and frameworks to persist data locally and synchronizing data between the local device and the cloud.

    Students learn by building small programming projects. The course culminates in a final group project where students build an iOS app of their choice from scratch, going from initial design to deployment in TestFlight.

    Teachers

    No items found.

    Intended learning outcomes

    Knowledge
    • Utilise detailed theoretical and practical knowledge essential to iOS App Development
    • Make judgments based on knowledge of the rules and conventions for the proper use of iOS App Development and demonstrate knowledge of the social and ethical issues relevant to technology
    • Understand a range of tools and techniques used in iOS App Development
    • Have knowledge of iOS App development, demonstrated by the ability to build an iOS app from scratch
    Skills
    • Demonstrates administrative planning, resource management, and team management as well as handling unpredictable and complex issues relating to iOS Application Development
    • Show creativity and initiative to develop projects related to iOS Development
    • Devises and sustains arguments to solve problems related to iOS App Development.
    • Consistently evaluates own learning and identifies learning needs.
    • Implement knowledge and understanding in a way that demonstrates professionalism in a field of technology.
    • Communicate iOS App Development methods in a well-structured, coherent format, following appropriate conventions in the field of technology.
    • Possess the academic competences to undertake further studies in iOS Development with a high degree of autonomy
    • Make judgments based on knowledge of the rules and conventions for the proper use of iOS App Development and demonstrate knowledge of the social and ethical issues relevant to technology
    Competencies
      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

      Victor Adrien Philippe Lucas
      Victor Adrien Philippe Lucas
      Henry Ugochukwu Ukwu
      Henry Ugochukwu Ukwu

      Intended learning outcomes

      Knowledge
      • 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.
      • 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 research skills.
      • 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
      Skills
      • Consistently evaluates own learning and identifies learning needs.
      • Implement knowledge and understanding in a way that demonstrates professionalism in research methods.
      • undertake extended research, writing an effective literature review, and creating a research proposal.
      • Have the ability to gather qualitative and quantitative data in order to make informed judgments that reflect on relevant social, scientific, and ethical issues
      • Communicate research methods in a well-structured, coherent format, following appropriate conventions in the field of technology.
      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 a capstone project.
      • Possess the academic competences to undertake further research studies with a high degree of autonomy.

      Entry Requirements

      Tuition Cost
      8,700 EUR
      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

      Your application will be evaluated against program requirements

      4

      Interview

      Selected candidates may be invited for an interview

      5

      Decision

      Receive an admission decision

      6

      Enrollment

      Complete registration and prepare to begin your studies

      Ready to advance your education with a globally recognised degree?

      Previous
      Overview
      Next
      What you’ll learn