IST College - Πτυχία Bachelor, Προγράμματα Master

banner_purple_msc_computer_science

Overview

About the course

  • A flexible course, part of our postgraduate master's programme in Computer Science, with two different routes.
  • The 1st route is specially designed for graduates without a Computer Science degree who wish to develop a career in IT or apply advanced computing techniques to their existing discipline. Foundation modules in software development are first studied followed by advanced modules selected from a wide range of specialist options in computer science.
  • The 2nd route is designed for recent graduates in Computer Science who want an advanced but not a specialist master's degree. Advanced modules selected from a wide range of specialist options in computer science are studied. Taught by a highly-regarded and long-established computer science department with strong links to business.

Entry requirements

1st route: a good bachelors degree (e.g. honours degree from the UK) or equivalent in any subject (except Computer Science).
2nd route: a recent, good bachelors degree (e.g. honours degree from the UK) or equivalent in Computer Science or closely-related subject.
Applicants who do not wholly meet these requirements, but who are considered to have the professional experience, motivation or potential to succeed at the programme, may also be accepted.

Study routes

  • Full-time 15 months (Oct start)
  • Part-time 3 years

Location(s)

  • IST College Athens

Course Detail

More about the course

The course is particularly suitable for those without a first (bachelor’s) degree in Computer Science or for those whose degree in Computer Science was awarded some years ago. On this 1st route, the intensive foundation modules will rapidly equip you with the fundamentals of modern software development and enable you to study many of the specialist optional modules that follow.
It will equally suit those with a recent first degree in Computer Science who want a less specialized award than the others offered. On this 2nd route you can choose from a range of topics to put together a programme that suits your interests and experience.

Course Structure:

The course lasts for 15 months over three semesters from October to March of the next year, with a three months break during the summer (July to September). This break can be used for further study, work experience or a holiday. In the first two semesters there are four or more taught modules, to make a total of 120 credits, and there is a 60 credit project in the third.
On the 1st route, i.e. if your bachelor’s degree is not in Computer Science, typically you will study four taught 15-credit foundation modules in the first semester, two or more advanced specialist modules to make a total of 60 credits in the second, and will undertake a 60 credit project in the third.
On the 2nd route, i.e. if your bachelor’s degree is in Computer Science, you will study four or more taught, advanced specialist modules in the first two semesters to make a total of 120 credits, and will undertake a 60 credit project in the third.

Core Modules:

  • for recent graduates in Computer Science (2nd route):
    • none (you can choose from all the modules available)
  • for other graduates (1st route):
    • Foundation Modules
      • Introduction to Programming (15 credits)
      • Object-oriented Programming (15 credits)
      • Software Development Tools and Methods (15 credits)
      • Professional Issues (recommended) (15 credits)
  • for both routes:
    • Computer Science Project (60 credits):
      • In the third semester, you complete a project in your chosen specialism under the guidance of an experienced individual supervisor. Supporting tuition for the project includes the general principles of research methods.
      • Through the project you will demonstrate your understanding of the principles and concepts you have learned in the taught modules and your ability to apply them to a substantial piece of development or investigative work.

Careers

Our masters programme is designed to give graduates the up-to-date skill s and knowledge sought after by employers, whether in business, industry, government or research.
This particular course will prepare you for a career in many areas including research, IT or software development. If your first degree was not in computer science, it could enable you to apply advanced computing techniques to your original discipline or to change career direction into the IT industry.

Teaching methods

Classes consist of lectures, small group seminars, and practical work in our well-equipped laboratories. We use modern, industry-standard software wherever possible. There are specialist facilities for networking and multimedia and a project laboratory.
In addition to scheduled classes, you will be expected a significant amount of time in self-study, taking advantage of the extensive and up-to-date facilities.

Course Structure

Core modules

Foundation Modules

This module introduces the basic facilities found in imperative and object-oriented programming languages, and develops the skills needed to use such languages to build and verify high quality programs to solve clearly-specified problems. It assumes no previous programming experience, and uses a practical approach, and up-to-date tools, to explore the basic principles underlying modern approaches to program development.

This module explores the use of object-oriented methods and tools in the design and implementation of software systems, particularly the appropriate use of inheritance to support code reuse and to promote flexible designs. Practical work involves these and other advanced features of modern programming languages (such as programming graphical user interfaces, using threads, and using generic library classes). The module assumes some prior programming experience and an understanding of basic object-oriented concepts.

This module provides a broad understanding of information systems (IS) project management. The module will look at the various IS development methodologies in use and will cover project control activities and techniques includingestimation of development resources, risk management, systems quality assurance and human resource management. This module also covers the relationship between technological change, society and the law, emphasising the powerful role that computers and computer professionals play in a technological society. It also covers the laws in EC which are relevant to the discipline of computer science, and an understanding of important ethical concepts and dilemmas of relevance to computer professionals.

This module introduces students to industry standard and current best practice tools and techniques used in the development of software systems. The Unified Modelling Language (UML) is used to produce models of the system at various stages in a software project, and to illustrate how these models can be elaborated from analysis through to design, implementation and deployment. Patterns and frameworks that occur across a range of problems and applications are explored. Alternative models of the process of software development are introduced. This is a practical module with an emphasis on the use of suitable software tools.

Optional modules

This module is primarily designed for students with existing knowledge and experience of database design and implementation, and an understanding of the underlying theory and practice. The aim of the module is to enhance the students’ existing understanding and knowledge through focussed study of selected current and emerging issues in the database field. The study will be grounded in sound understanding of relevant theory, practice and principles and promote a practical understanding and critical awareness of the selected issues.

A range of topics will be covered in this module. The detailed content will vary according to current research directions. Case studies will be used throughout. Issues will be considered in relation to each topic as appropriate. These pervasive issues are- models, design, standards, protocols, and performance.

In this module advanced issues of software engineering theory and practice are examined. The range of software engineering products and processes making up a software project are measured and modelled. Typical software engineering products explored in the module may include- user requirements, design documents, code etc. Typical software engineering processes explored in the module may include- testing, de-bugging etc. The aim of the module is to use the modelling and measuring of such products and processes to allow quantified decision-making during software development. The module offers students the opportunity to explore both the state-of-the-art and thestate- of-the-practice in software engineering. The module will examine the most up to date research findings about software engineering as well as investigate the current practices of many software engineering companies.

Mobile and pervasive computing is a rapidly evolving area and so the main body of knowledge will be taught through the close reading of the most up-to-date research in the area. Themes covered could include pervasive computing, mobile HCI, privacy and security, location and context awareness, technological transparency vs proactivity, mobile development platforms, networking and data standards. Ensuring deep and broad background in these ideas constitutes the seminar part of the course. Alongside this runs a practical course in programming for mobile devices based on one of the popular development platforms. Following this, students in groups create a substantial mobile application project involving the research, specification, design, implementation and evaluation of a system using real mobile devices, or conversely an emulation of such a system should the technological hardware not be available for the system envisaged.

The Multimedia Specification Design and Production module is intended to develop an advanced understanding of the stages in the development of multimedia computer applications. This will include the analysis, design, implementation and evaluation of interactive multimedia software as well as the design and development of the component media used in such software. There is a large practical element to the module within which students will develop advanced skills in a multimedia programming tool and use this tool in conjunction with the theoretical principles gained on the course to develop an interactive multimedia computer application.

This module is primarily designed for those with an existing knowledge and understanding of fundamental computer networking concepts, protocols and architectures and aims to extend that knowledge in practice. Students will be able to gain a deeper understanding and appreciation in computer networks and the Internet by having hands-on experience with real networks and will learn how to configure and maintain network systems.

The variety and proliferation of passive and active malicious attacks made against users of networks and distributed systems has led to a need for pro-active defence mechanisms against such attackers. For an individual, the inconvenience of being attacked can range from being extremely frustrating to downright expensive with slow to no service at all on their computer. For a company it too can be frustrating and costly both financially and to their reputation. This module will be both theoretical and practical, exploring concepts and applications from the fields of computer systems and their security weaknesses. Content will vary according to current research directions.

This module gives students the opportunity to extend their understanding and experience of software engineering practice. It offers students exposure to the development and evolution of software. The module is very practical and is based around a substantial piece of software. The aim of the module is to enable students to develop software engineering knowledge and skills that are transferable to software companies. The module covers each element of the software engineering process. It explores the use of overarching development approaches such as eXtreme Programming and Component Based Software Engineering. Leading edge practices are introduced such as using program slicing to find code faults. Specialised software development approaches are investigated such as those required for application areas such as safety critical systems. Process models popular with industry, such as one of the SEI models, are also used and evaluated during this module.

The term web services is used to define a number of protocols and technologies used to implement a service oriented architecture. These standards are designed to support the notion of using standardised interfaces to allow communication, integration and co-ordination of information between applications distributed over and accessible through a decentralised network environment. This module develops students’ understanding of the fundamental architectures of web services and the protocols and standards that underpin them. The module provides only a brief introduction to the basic technologies and associated practical skills before moving on to focus on architectural issues and evaluation of different technologies and their developments. This will be done in the context of specific application and/or enterprises. Examples could include applications within e-commerce, information retrieval and knowledge management.

A study of a selection of research topics centred around evolutionary neural networks, neural network design, machine learning and some interesting applications, for example, Data Mining, Biocomputation, Robotics, Evolutionary Algorithms, Neural Networks as models of human cognition, and data visualization. Actual topics taught may vary from year to year.