BSc in Computer Science

With the world being driven by computers, a degree in Computer Science is vital. Areas like computing and information technology, security, database and web development will be explored. The degree will provide students with both theoretical and practical computer science knowledge and skills thus enabling them to work in the industrial, banking, commercial and government sector. The student among others will acquire and develop problem-solving, analytical and computation skills that will enable them to excel in the career they choose to follow.
This degree is ideal for people wishing to enhance their position within their organisations while at the same time it offers excellent prospects for future employment.

Delivery Mode: Online and through Supported Open Learning

Entry Requirements

Admission Requirements:

  1. Malawi School Certificate  of Education (MSCE) with 6 credit passes (grades 1-6) including English or international equivalent qualification.
  2. English proficiency: Grade 6 or better on the Malawi School Certificate of Education (MSCE) or equivalent English language qualification.
  3. Copy of valid passport or national ID

Applicants that do not meet the minimum entry requirements may be considered for the ‘FOUNDATION PROGRAMME’.

In addition to a strong academic record, the student’s extra curricular involvement, leadership skills and other relevant background information are taken into account.

Section: Business Modules

Course Credits: 3

Course Description:

Objectives of the Course:

1. Explain the main principles of accounting, including the accounting equation and the double entry system.
2. Expose students to financial statements (i.e. Income Statement, Balance Sheet).
3. Expose students to post Trial Balance adjustments (depreciation of non-current assets, accruals, prepayments, and allowance for doubtful debts).
4. Enable students to prepare Bank Reconciliation Statements.

Learning Outcomes:

1. Explain what accounting is about.
2. Understand and list the main users of accounting information.
3. Present and explain the accounting equation, and how accounting transactions affect the items in the accounting equation.
4. Open ‘T’ accounts, understand how the double entryis used, and record transactions into individual accounts.
5. Prepare Trial Balance, Income Statement, and Balance Sheet. Explain how adjustments (e.g. prepayments, accruals, etc.) affect the financial statements.
6. Describe the process of recording transactions in a book of original entry.
7. Explain and operate the imprest system for petty cash.
8. Account for bad debts and allowance for doubtful debts.
9. Account for depreciation of non-current assets.
10. Understand and prepare bank reconciliation statement.

Course Credits: 3

Course Description:

Objectives of the Course:

• collection and analysis of data for the purpose of resolving ethical dilemmas in business;
• development of intrapersonal and interpersonal skills;
• confidence when interacting with others in a number of organizational settings;
• communication, both orally and in writing;
• problem – solving;
• effective use of resources in order to ‘learn how to learn.’
Learning Outcomes:

1. Recognize an ethical dilemma;
2. Develop a Code of Ethics;
3. Resolve workplace ethical dilemmas;
4. Explain the term ‘whistleblower’ and its relationship to the organization;
5. Define and explain the components of Corporate Social Responsibility;
6. Define and explain the term Corporate Governance;
7. Identify the ethical ramifications of technology in organizations;
8. Identify and suggest ways of coping with the ethical challenges in a global environment.

Course Credits: 3

Course Description:

Objectivesof theCourse:
This course will enable the student to understand the evolution of law and the judicial system as well as contract law.Case studies will allow the student to apply the principles to everyday situationsaswell asthebusinessenvironment.
LearningOutcomes:

1. Describethebasisoflaw inthebusinessenvironment.
2. Appraisetheroleof governmentinstitutionsintheregulationofbusiness.
3. Comprehendthefundamentaldifferencebetweenpublicandprivatelaw.
4. Describethedifferentmethodsbywhichlegal relationscanbeestablished contractually.
5. Evaluatethecircumstancesinwhicha contractmaybebreached andthe remediesavailable.
6. Comprehendhowacompanymaybeestablished.
7. Assessthedifferenttypesofcompanyandthebasisfor/natureofliability.
8. Assesswhylawisimportant.

Course Credits: 3

Course Description:

Objectives of the Course:

• introduce students to the basic concepts and functions of management
• introduce students to a range of important management processes, which can be used to support the main management functions
• help students understand the nature of the external business environment and its effect on the organisation
• help students understand the systemic nature of organisations
• help students appreciate the importance of human resources in management
• help students appreciate the importance of team work in management and become effective team players
• familiarise students with decision making tools and develop their analytical skills
• develop students’ critical thinking and their ability to develop an argument and to defend a position
• encourage students to engage in debates on management issues, including controversial management topics.
Learning Outcomes:

1. discuss the importance of management both as an occupation and as a universal human activity
2. view organisations as complex human activity systems
3. discuss and apply the basic management functions of planning, organising, leading and controlling
4. discuss and apply the main management processes
5. demonstrate how good management can help organisations become effective and efficient
6. critically discuss the importance of the external business environment and its effect on the organisation
7. critically discuss the importance of human resources in management
8. critically discuss the importance of team work in management
9. carry out independent research using a variety of resources
10. participate in debates on controversial management issues.

Course Credits: 3

Course Description:

Objectives of the Course:
To provide the students with a comprehensive understanding of the Marketing Concept, Philosophy, Practice and Processes. Major emphasis is placed on the elements of the Marketing mix.
Learning Outcomes:

1. To explain the importance of understanding customers and the marketplace and identify the core marketplace concepts. (Students are expected to appreciate the role of marketing in understanding customers’ needs and wants and providing value and customer satisfaction).
2. To explain marketing’s role in strategic planning and how marketing works to create and deliver customer value. (Students are required to identify and analyze the elements of the strategic planning process).
3. To analyze the environmental forces that affect a company’s ability to serve its customers and how companies can react to the marketing environment. (Students are expected to identify and describe the micro and macro environmental factors and forces that influence the company’s activities).
4. To describe how consumers’ personal, cultural, social and psychological characteristic can influence consumer buying behavior. (Students are expected to know the factors affecting consumer behavior and to identify the role/s a consumer assumes in the decision-making process).
5. To analyze how the Marketing Information System and Marketing Research support marketing decision making. (Students are expected to identify and assess the factors and decisions that affect the design, development and use of the Marketing Information System and the Marketing Research Process).
6. To analyze the four elements of the Marketing Mix Strategy (Students are required to identify, explain and analyze the four elements of the marketing mix strategy, product, price place and promotion as well as to identify the most important decisions that need to be taken in designing, developing and implementing these tools).

Section: Language Expression Modules

Course Credits: 3

Course Description:

Objectives of the Course:

• help students develop skills necessary to work within a business-orientated context
• facilitate students’ develop of business communication skills in the areas of business correspondence (i.e. letter format, open punctuation, notes, memoranda, emails, tone, writing and public speaking) and key business terminology and concepts.

Learning Outcomes:

1. write a variety of fully-blocked letters that use open punctuation and the four-point plan.
2. create a range of buy/sell documents with their corresponding cover letters
3. produce professional emails that use netiquette
4. write different kinds of letters of application and CVs, testimonials
5. create business memos, meeting documentation, itineraries, and a wide collection of publicity materials
6. confidently describe data
7. prepare and give a business presentation

Course Credits: 3

Course Description:

Objectives of the Course:

1. Increase the students’ awareness and ability in different common styles of writing
2. Develop the students’ academic writing skills
3. Revise and utilise techniques of composing grammatically correct sentences
4. Provide students with deep knowledge of the writing process and the strategies to develop, organize, and review ideas in English paragraphs and essays
5. Cover problem areas in the use of grammar and mechanics Basic Writing is at Level B2 of the Common European Framework of Reference for Languages.

Learning Outcomes:

1. Demonstrate an awareness of the writing process, sentence structure, punctuation and spelling.
2. Compose different types of effective outlines and understandable, coherent paragraphs that have a clearly stated topic sentence.
3. Compose well developed common essay genres with a clearly stated thesis statement.
4. Compose introductions, body paragraphs and conclusions for essays.
5. Recognize and correct fragments, comma splices, and run-on sentences.
6. Employ the most effective words for concise writing

Course Credits: 3

Course Description:

Objectives of the Course:

• To teach students how to produce academic papers (research papers & theses);
• To develop the style and vocabulary characteristic of academic writing;
• To develop academic reading and writing skills that allow students to use material more effectively in their own academic papers; At the end of the semester, students are expected to be close to functioning at C1 (Proficient User) level of the Common European Framework of Reference for Languages.

Learning Outcomes:

1. Scan long and complex texts, summarize information and reconstruct arguments in a coherent presentation;
2. Produce organized and coherent essays with clear paragraphs and use of methods for introducing and concluding an essay;
3. Write well-supported essays using different patterns of development (illustration, cause and effect, process analysis, persuasion) taking into consideration purpose and audience.
4. Write proposals, critical analyses, summaries and literature reviews;
5. Demonstrate techniques to avoid plagiarism (paraphrasing, summarizing and quoting) and produce research papers with correct parenthetical and bibliographical citations using specific documentation styles such as MLA, APA, Harvard etc.);
6. Write accurately with a wide vocabulary and few errors in spelling or punctuation.

Course Credits: 3

Course Description:

Objectives of the Course:

1. Appropriate levels of oral and written communication in English
2. General knowledge of all grammatical structures
3. Basic and general knowledge of the paragraph
4. Intercultural competence
5. Ability to work autonomously/independently
6. Ability to work collaboratively
7. Ethical commitment Upon completion of the course students are at the end of B1 (Threshold level).

Learning Outcomes:

1. Exercise listening skills through dialogues, announcements, instructions and discussions.
2. Communicate using the full range of tenses in contexts both familiar and non-familiar
3. Exercise reading skills such as vocabulary in context, word structure, prefixes and suffixes, scanning, skimming, identifying main ideas etc
4. Demonstrate the use of the structure and purpose of the paragraph in writing
5. Apply practiced reading strategies and produce summary, narrative and descriptive writing at the paragraph level

Section: Computer Modules

Course Credits: 3

Course Description:

Objectives of the Course:

· Introduce students to the digital world. Follow the developments in computer hardware and software from the initial steps of generation to modern and future time.
· Introduce the components of an information system, i.e., hardware, software, data, networks, facilities, personnel, services and partners.
· Closely examine information system’s hardware. Specifically consider the processing unit, input and output devices, and primary and secondary storage. Examine the         technology and analyze its characteristics.
· Examine information systems in organizations. Explore different types of software: applications, system software.
· Introduce information systems’ development. Consider the Systems Development Life Cycle (SDLC). Introduce computer programming languages and database concepts.
· Introduce data communications. Focus on local area networks and consider security issues.
· Explore the Internet, web resources and their use.
· Address information systems security, and issues relating to ethics, and crime in the computer world.

Learning Outcomes:

· Appreciate the role of information systems and technology in our digital world.
· Comprehend the developments occurring in the information technology era from its initiation to present time and the future trends.
· Name and describe the components of an information system. More specifically and concerning information system’s hardware the student should be able to describe and   analyze the characteristics of the processing unit, input and output devices, and primary and secondary storage.
· Based on the knowledge gained above the student should be able to suggest a certain computer configuration based on specified organization or personal needs.
· Understand data representation and work with different number systems.
· Describe an I. S. professional and his/her role and career opportunities in an organization.
· Differentiate between application and systems software and subtypes.
· Understand the requirements for developing an information system: process (e.g. SDLC), computer programming languages, and data storage.
· Demonstrate basic knowledge about data communications, the Internet and web resources.
· Understand how to secure information systems resources, focusing on both human and technological safeguards.
· Understand how information systems raise ethical concerns in society, and how they influence crime.

Course Credits: 3

Course Description:

Objectives of the Course:

  •  Introduce students to structured programming by means of the syntax and semantics of a structured high-level programming language.
  •  Provide students a good working knowledge of a programming language. This includes programming constructs such as expressions, selection statements, loops, functions and arrays.
  •  Provide practical experience in problem solving, coding, debugging, and testing.
  •  Guide the student in order to develop good programming practices.
  •  Obtain a foundation that will allow the student to pursue more advanced programming topics.

Learning Outcomes:

  • Deal with the practicalities of writing a computer program.
  • Think and plan in a logical manner.
  • Apply a structured approach to problem solving.
  • Analyze and explain the behavior of simple programs involving the fundamental programming constructs.
  • Modify and expand short programs that use standard conditional and iterative controls structures and functions.
  • Design, implement, test and debug a program that uses each of the following fundamental programming constructs:

Basic computation

Simple I/O

Standard conditional and iterative structures

Functions

Arrays

  •  Choose appropriate conditional and iteration constructs for a given programmingtask.
  •  Apply the techniques of structured (functional) decomposition to break a program into smaller pieces.
  •  Describe the mechanics of parameter passing (value and reference) and write programs with actual and formal parameters.

Course Credits: 3

Course Description:

Objectives of the Course:

• introduce to the students good software development practices
• provide practical experience in developing software with appropriate comments and comment tags
• provide practical experience in developing readable, maintainable, robust, and secure source code
• provide practical experience in developing software which checks all function arguments and the function return argument
• provide practical experience in developing function/method tests and automatic test suites
• introduce tools/environments which automatically can run test suites
• introduce tools which automatically check the quality of the code
• introduce environments which provide code check-style

Learning Outcomes:

1. Be proficient in developing high quality source code.
2. Describe what high quality source code is.
3. Demonstrate the ability to use tools to run automatic test suites.
4. Demonstrate the ability to use tools in order to test the quality and/or complexityof source code.
5. Be proficient in using development environments, which provides check-styles, and other tools for developing high quality source code.

Course Credits: 3

Course Description:

Objectives of the Course:

• introduce and provide experience in using tools for source code version management
• familiarize students with tools for software bug tracking in order to gain experience in using such tools.
• cover in details the full life-cycle of software development: commit code, test and submit bug reports, provide patches and patch the source code
• introduce and use tools for builds and installers for various platforms.

Learning Outcomes:

1. use source code version management tools
2. use bug-tracking tools for application development
3. apply the full cycle of software (source code) development
4. create builds and installers for a software product.

Course Credits: 3

Course Description:

Objectives of the Course:

• Address different types of organizational needs which may undertake some information technology-based solution.
• Introduce the various aspects of feasibility and their use in the determination of project feasibility.
• Examine several development methodologies which may be used to manage the software development process. Such methodologies include: Structured Systems Analysis and Design Methodology (SSADM) and the Systems Development Life Cycle (SDLC); agile and iterative methodologies including Prototyping, Rapid Application Development and other agile software development approaches; Object-Oriented Analysis and Design using UML and other methodologies.
• Examine a variety of information gathering techniques and their potential use.
• Cover formal project management techniques and team dynamics.
• Identify, evaluate (Cost vs. Benefit analysis), and suggest different systems acquisition alternatives.
• Briefly discuss security, validation, and privacy issues relating to data maintenance and accessibility.
• Address the objectives for effective design (input, output, database, data entry procedures). Introduce human-computer interaction and incorporate its principles in the software design.
• Discuss successful information system implementation by addressing training requirements and possibilities, physical conversion strategies, and the need for evaluation.

Learning Outcomes:

• Identify the types of organizational needs that can be addressed using information technology‐based solutions.
• Initiate, specify, and prioritize information systems projects by the determination of various aspects of feasibility for these projects.
• Understand and compare between different systems development methodologies.
• Use at least one specific methodology for analyzing an organizational situation (a problem or opportunity), modeling it using a formal technique, and specifying requirements for a system that enables a productive change in the way the organization operates. Within the context of this methodology, students will learn to write clear and concise requirements’ documents and convert them into technical specifications.
• Communicate effectively with various organizational stakeholders to collect information using a variety of techniques and to convey proposed solution characteristics to them.
• Manage information systems projects using formal project management methods.
• Identify various systems acquisition alternatives, including the use of packaged systems and outsourced design and development resources.
• Compare various acquisition alternatives systematically including performing a cost and benefit evaluation of the alternatives.
• Incorporate principles of security and user experience from the beginning of the systems development process.
• Design high‐level logical system characteristics (user interface design, design of data and information requirements).
• Propose a user-training program and a conversion strategy for the successful implementation of the information system.
• Use CASE tools effectively to complete different tasks of the software development process.

Course Credits: 3

Course Description:

Objectives of the Course:

• Introduce students to Abstract Data Types (ADT).
• Provide practical experience to advanced programming techniques and data structures including tables, linked lists, queues and stacks.
• Introduce students to advance recursion such as the divide-and-conquer and backtracking.
• Obtain a foundation that will allow students to use storage media; methods of representing structured data; and techniques for operating on data structures.
• Introduce students to searching and sorting algorithms.
• Introduce students to Binary Trees and graphs.

Learning Outcomes:

• Discuss the use of primitive data types and build-in data structures.
• Describe common applications for different data structures.
• Implement user-defined data structures in a high-level language.
• Compare alternative implementations of data structures with respect to performance.
• Recognize when and how to use the following data structures: Arrays, Linked lists, Stacks, Queues and Binary trees.
• Compare and contrast the costs and benefits of dynamic and static data structure implementation.
• Choose the appropriate data structure for modeling a given problem.
• Describe the concept of recursion and give examples of its use.
• Describe the divide-and-conquer and backtracking approaches.
• Compare iterative and recursive solutions and determine when a recursive solution is appropriate for a problem.
• Apply various sorting and searching algorithms.

Course Credits: 3

Course Description:

Objectives of the Course:

• thoroughly discuss and acquire the knowledge and programming experience of basic principles of the object-oriented programming with specific reference to the Java programming language
• demonstrate and analyze the basic object-oriented concepts for simple concepts as well as for more complex (private classes, objects, encapsulation, inheritance and polymorphism)
• identify the key Object Oriented Concepts (OO Concepts) required to build an OO system
• critically assess different Object Oriented Analysis and Design approaches (OOAD) to architect and build object oriented systems
• demonstrate and analyze a way for efficient algorithmic thinking and problem solving using the object-oriented paradigm with the UML (Unified Modelling Language)
• design, practice and develop using the Java graphical user interfaces (GUI) applications with the associated API libraries of SDK/Oracle
• critically assess, plan, and build simple applications using the concepts of objectoriented programming in the Java context
• introduce state-of-the art application development in the area of object-oriented implementation methodologies to a variety of problems, with emphasis on the Reverse Engineering (RE) paradigm

Learning Outcomes:

1. analyze problems and find abstract OO solutions
2. identify basic principles of object-oriented program design/ advanced issues related to extrapolate manipulation of classes and methods-such as data, visibility, scope,      method parameters, object references, and nested classes
3. exploit object-oriented principles and advanced java language features in the design and implementation of object-oriented programs
4. identify the basic ideas behind class hierarchies, polymorphism, and programming to interfaces
5. explain the capabilities of several java API’s and demonstrate appropriately the utilization of them
6. identify the basic programming concepts and problem solving techniques
7. identify the object-oriented, windows-based and event driven programming paradigms
8. formulate and organize an excellent Object Oriented design skills
9. implement, test, maintain and refactor small to medium sized applications in Java/ develop API applications consisting of multiple source files
10. design write and execute programs in Java.
11. demonstrate and analyze the basic concepts of object oriented programming
12. critically assess the abstractions of the Object Oriented design core language of Java
13. design and develop (write/debug/correct) Java source code and GUI programs with specified requirements
14. establish a solid knowledge and utilize the different views of the UML
15. research in state-of-the art areas for the up-to-date reverse engineering procedures using the UML model paradigm

Course Credits: 3

Course Description:

Objectives of the Course:

• develop algorithmic, object-based and event-driven thinking and problem solving skills.
• introduce the concepts of designing a graphical user interface and associate the interface with the program code.
• introduce the concepts and techniques of programming in general and Visual, Object-Oriented, and Event-Driven programming in a specific Visual Integrated Development Environment.
• develop programs that responds to exception conditions raised during execution.
• introduce the concepts of Visual Programming, namely Controls and Constructs, Variable, Decisions, Loops, Arrays, Multi-form applications, File Handling, and integrating components like Web forms, Graphics, Animation, and Sound.

Learning Outcomes:

1. analyze problems and find abstract solutions
2. apply components based concepts and problem solving techniques
3. critically asses the object-oriented, GUI-based, and event driven programming paradigms
4. translate an abstract solution into an application with the appropriate user interface
5. develop (write/debug/correct) applications using an Integrated Development Environment
6. reuse and integrate components into the solution application Course Contents:
1. Problem solving techniques; abstract programming
2. Object-oriented, event-driven, GUI application programming concepts
3. The Visual Integrated Development Environment

Course Credits: 3

Course Description:

Objectives of the Course:

• build on the knowledge already acquired in Programming I, by focusing on the more advanced concepts of procedural programming.
• enable the students to develop algorithmic thinking and problem solving.
• introduce dynamic memory allocation.
• provide practical experience in manipulating data strings, arrays, pointers and structures.
• provide the fundamentals of recursion.
• introduce students to I/O file stream and data files.
• introduce Object-Oriented Programming.

Learning Outcomes:
:
1. use built-in data structures to organize and process information.
2. develop algorithms and choose suitable data structures to produce solutions for complex problems using procedural programming.
3. develop working programs using the more advanced concepts such as pointers and arrays of structures.
4. develop programs using dynamic memory allocation.
5. describe and use recursion.
6. develop programs that use I/O file streams and data files.
7. apply the fundamentals of Object-Oriented Programming.
8. develop simple object-oriented programs.
9. develop applications consisting of multiple source files.

Course Credits: 3

Course Description:

Objectives of the Course:

• Examine databases, database management systems and their role in the organization.
• Follow historically the development of database management systems until present time.
• Analyze data models and data modeling techniques.
• Cover relational database design by converting a conceptual data model to a database schema.
• Explain normalization and use it to design normalized relational databases.
• Cover Structured Query Language’s (SQL), data definition (DDL), data manipulation (DML), and data control (DCL) components.
• Introduce data and database administration functions.
• Examine on-line transaction processing (OLTP) and its role in the business environment.
• Introduce business intelligence to include on-line analytic processing (OLAP), data warehousing, data mining.

Learning Outcomes:

• Explain the role of databases and database management systems in managing organizational data and information.
• Follow the historical development of database management systems and logical data models.
• See the role of information requirements specification processes in the broader systems analysis and design context.
• Distinguish between the basic approaches to data modeling techniques (i.e. object‐oriented data modeling, semantic data modeling, etc.)
• Use at least one conceptual data modeling technique (such as entity‐relationship modeling) to capture the information requirements for an enterprise domain.
• Design high‐quality relational databases.
• Explain the purpose and principles of normalizing a relational database structure and design a normalized relational database.
• Implement a relational database design using an industrial database management system, including the principles of data type selection and indexing.
• Use the data definition, data manipulation, and data control language components of SQL in the context of one widely use implementation of the language.
• Perform simple database administration tasks.
• Understand the concept of database transaction and apply it appropriately to an application context.
• Identify the role of databases and database management systems in the context of enterprise systems.
• Identify the difference between on‐line transaction processing (OLTP) and on‐line analytic processing (OLAP), and the relationship between these concepts and business intelligence, data warehousing and data mining.

Course Credits: 3

Course Description:

Objectives of the Course:

• be familiar with the basic theoretical principles in Computer Science
• know various types of finite automata
• be familiar with formal definitions of programming languages and their connection with finite automata
• have learnt material on Turing machines and computability
• have a deeper theoretical understanding of algorithmic complexity classes.

Learning Outcomes:

1. Discuss the concept of finite state machines.
2. Explain context-free grammars.
3. Design a deterministic finite-state machine to accept a specified language.
4. Explain how some problems have no algorithmic solution.
5. Provide examples that illustrate the concept of uncomputability.
6. Determine a language’s location in the Chomsky hierarchy (regular sets, context-free, context-sensitive, and recursively enumerable languages).
7. Prove that a language is in a specified class and that it is not in the next lower class.
8. Convert among equivalently powerful notations for a language, including among DFAs, NFAs, and regular expressions, and between PDAs and CFGs.
9. Explain at least one algorithm for both top-down and bottom-up parsing.
10. Explain the Church-Turing thesis and its significance.
11. Define the classes P and NP.
12. Explain the significance of NP-completeness.
13. Prove that a problem is NP-complete by reducing a classic known NP-complete problem to it.

Course Credits: 3

Course Description:

Objectives of the Course:

• Understand performance metrics
• Be introduced to an instruction set architecture
• Understand instruction types, register sets, addressing modes
• Understand flow-of-control, subroutine call and return mechanisms
• Understand the Structure of machine-level programs
• Be introduced to Arithmetic of Computers
• Construct an ALU
• Implement in hardware several Instructions like Addition, Subtraction, Multiplication and Division
• Be introduced to pipelining and memory hierarchy

Learning Outcomes:

• Apply performance metrics
• Apply the concept of an instruction set architecture, ISA, and the nature of a machine-level instruction in terms of its functionality and use of resources (registers and memory).
• Utilize the various classes of instructions: data movement, arithmetic, logical, and flow control.
• Demonstrate the way in which subroutines are called and returns made.
• Design a basic ALU
• Implement in hardware several Instructions like Addition, Subtraction, Multiplication and Division
• Explain how conditional operations are implemented at the machine level.
• Appreciate how a lack of resources in ISPs has an impact on high-level languages and the design of compilers.
• Know, at the assembly language level, how parameters are passed to subroutines and how local workplace is created and accessed.
• Know pipelining and memory hierarchy

Course Credits: 3

Course Description:

Objectives of the Course:

· Introduce the main macroeconomics variables (GDP, inflation, unemployment)
· Introduce the aggregate demand – aggregate supply model
· Distinguish between inflation and unemployment
· Identify the fiscal and monetary policy tools
· Introduce the balance of payment and exchange rates
Learning Outcomes:

· Measure economic variables (GNP and its components, inflation, unemployment, money supply, balance of payments, exchange rates)
· Analyze the aggregate demand – aggregate supply model, the concept of the multiplier and the business cycle
· Identify the tools of monetary and fiscal policies, understand their effect on the economy and appreciate the significant role of the Central Bank.
· Explain the importance balance of payments, international trade and how the value of foreign exchange is determined

Course Credits: 3

Course Description:

Objectives of the Course:

• demonstrate and analyze the basic computer networking technologies and the required infrastructure which comprises the key steps involved in the communication process
• establish a solid knowledge of the layered approach that makes design, implementation and operation of extensive networks possible. Discuss and explain thoroughly the 7-layer OSI network model (each layer and its responsibilities) and identify as well as realize the definitions explored in the TCP/IP suite of protocols and the networked applications supported by it
• thoroughly discuss and acquire the knowledge of the basic protocols involved in wired/wireless communication process. These include the characteristics of the
required infrastructure for Local Area Networks (MAC-CSMA-CD/Ethernet, Token Ring, FDDI, and others), and for Wide Area Networks using the TCP/IP, UDP/IP
• determine, apply and demonstrate as well as compare different illustrated network performance concepts and traffic aspects for Quality of Service (QoS) in broadband communication
• demonstrate and analyze as well as critically compare and evaluate the basic design principles of wired and wireless communication networks. Moreover to demonstrate and critically compare the way to model and the way to compare the structural performance for some commonly used network architectures

Learning Outcomes:

• provide a good realization and clear identification of the physical and logical as well as the electrical characteristics of digital signals and the basic methods of data transmission
• acknowledge the importance of the ISO 7-layer reference model
• critically assess the concepts and requirements hosted in communication protocols and provide an overview of Data Communication Standards
• figure the area of computer networks in terms of connectivity, mobility and the role of metrics, with emphasis on the range of communication protocols utilized
• acquire the knowledge of the basic protocols involved in wired/wireless communication process. Local Area Networks (MAC-CSMA-CD/Ethernet, Token Ring, FDDI, and others), and for Wide Area Networks using the TCP/IP, UDP/IP
• conceptual development of the basic design principles in wired and wireless communication networks.
• analyze the structural performance for some commonly used network architectures/ identify the functions and architectures of LAN and WAN/ analyze and design LAN architecture and the design and deploymentrequirements
• demonstrate and analyze the electrical interface and the basics of digital data transmission
• demonstrate and critically assess the need for data communication standards and the underlying technology used in wired and wireless communicationmodels
• analyze as well as critically compare a broad knowledge of the protocols used in various types of computer networks
• critically compare and evaluate and identify the principles of Open Systems and the Transport/Application protocols, which facilitate them
• identify the utilized fundamentals and technologies of physical, data-link and network layers.
• to link different network performance concepts and traffic issues for Quality of Service (QoS) in broadband communication
• research in state-of-the art areas in data and network communication systems

Course Credits: 3

Course Description:

Objectives of the Course:

o Provide understanding how to evaluate the efficiency of an algorithm
o Present a variety of techniques for designing algorithms
o Provide a wide variety of data structures and should be able to use them appropriately to solveproblems
o Build a foundation of fundamental algorithms

Learning Outcomes:

1. Explain the use of big O, omega, and theta notation to describe the amount of work done by analgorithm.
2. Discuss factors other than computational efficiency that influence the choice of algorithms, such as programming time, maintainability, and the use of application-specific patterns in the input data.
3. Use big O, omega, and theta notation to give asymptotic upper, lower, and tight bounds on time and space complexity of algorithms.
4. Determine the time and space complexity of simple algorithms.
5. Implement the most common quadratic and O(NlogN) sorting algorithms.
6. Design and implement an appropriate hashing function for an application.
7. Design and implement a collision-resolution algorithm for a hash table.
8. Discuss the computational efficiency of the principal algorithms for sorting, searching, and hashing.
9. Solve problems using the fundamental graph algorithms, including depth-first and breadth-first search, single-source and all-pairs shortest paths, transitive closure, topological sort, and spanning tree algorithm.
10. Demonstrate the following capabilities: to evaluate algorithms, to select from a range of possible options, to provide justification for that selection, and to implement the algorithm in programming context.

Course Credits: 3

Course Description:

Objectives of the Course:

• Introduce students to the design and construction of models that represent information in ways that support the creation and viewing of images.
• Provide practical experience to two-dimensional and three-dimensional transformations, i.e. scaling, rotations, translation, and sheering,
• Introduce students to the design of devices and techniques through which a person may interact with the model or the view.
• Introduce students to techniques for rendering a model, and the design of ways the image may be presented.
• Provide practical experience to API programming using OpenGL.
• Introduce students to a three-dimensional environment for enhancing interaction between a human user and a computer-created world.

Learning Outcomes:

• Distinguish the capabilities of different levels of graphics software and describe the appropriateness of each.
• Create images using a standard graphics API.
• Use the facilities provided by a standard API to express basic transformations such as scaling, rotation, translation, and sheering.
• Describe the appropriateness of graphics architecture for given applications.
• Explain the function of different input devises.
• Compare and contrast the techniques of raster graphics and vector graphics.
• Use current hardware and software for creating and displaying graphics.
• Create simple polyhedral models by surface tessellation.
• Construct CSG models from simple primitives, such as cubes and quadric surfaces.
• Generate a mesh representation from an implicit surface.
• Explain the operation of Bresenham algorithm for rendering a line or pixelbased display.
• Demonstrate rendering techniques by creating an image using API.
• Describe how a graphics image has been created.

Course Credits: 3

Course Description:

Objectives of the Course:

Determined by the topic. Special topics will be selected from the area of computer science with the intention to keep the students informed about current developments and directions in the respective field of study. The specific topic may be of mutual interest to the student and faculty member or appropriate for group study.

Course Credits: 3

Course Description:

Objectives of the Course:

· Students will study a variety of business models in the national and global context connecting individuals, businesses, governments and other organizations. They will be exposed to the concept of strategy at the corporate level, the business unit level and the operational level as well as the concept of value creation.
· Students will study the management of information systems services from the point of view of the CIO and to examine alternative strategies and tactics available to            management to achieve their goals.
· Students will study the e-business strategy framework with concentration on the impact of the Internet on the macro-environment, the industry structure
and the firm boundaries, the markets for e-business and the strategy options for value creation in market spaces.
· Students will gain insight into how IS enables core and supportive business processes as well as those that interface with suppliers and customers and how
they represents a key source of competitive advantage for firms.
· Students will get an understanding of existing and emerging information technologies, the functions of IS and their impact on the organizational operations.
· Students will use the steps of the e-business strategy formulation roadmap, link the individual steps of the roadmap to the different parts of the e-business
strategy formulation, and understand the main business issues involved in each stage of the roadmap.
· Students will apply the above concepts in the design and implementation of an e-business initiative. A content management system will be used for thispurpose.
Learning Outcomes:

1. Be able to design and manage enterprise architecture through business and marketplace models for electronic communications and trading, including revenue models and transaction models available through online services
2. Outline the hardware and software technologies used to build an e-business infrastructure within an organisation and with its partners including security issues.
3. Understand the concept of e-strategy at the corporate level, the business unit level and the operational level as well as the concept of value creation.
4. Follow an appropriate strategy process model for e-business and be able to develop an e-business strategy framework with concentration on the impact of the Internet on the macro-environment, the industry structure and the firm boundaries, the markets for e-business and the strategy options for value creation in market spaces and for improving organizational processes with information technology solutions
5. Identify the main elements of supply chain management and their relationship to the value chain and value networks.
6. Identify various procurement methods, their benefits and risks and assess different options for integration of organizations’ information systems with e-procurement suppliers.
7. Identify the characteristics of the new media marketing communications and understand the relation between e-business and e-marketing and how to outline e-marketing plan.

Course Credits: 3

Course Description:

Objectives of the Course:

• Describe all phases of the life cycle of a software system, including requirements analysis and specification, design, construction, testing, deployment, and operation and maintenance.
• Demonstrate tools for managing software development; analyzing and modeling software artifacts; assessing and controlling quality; and for ensuring a disciplined, controlled approach to software evolution and reuse.
• Present the “good practice” tools, methods, and approaches that are most applicable for a given development environment.

Learning Outcomes:

1. Explain the concept of a software life cycle and provide an example, illustrating its phases including the deliverables that are produced.
2. Select, with justification the software development models and process elements most appropriate for the development and maintenance of a diverse range of software products.
3. Explain the role of process maturity models. Develop a medium-size software product using a software requirement specification, an accepted program desig methodology (e.g., structured or object-oriented), and appropriate design notation.
4. Follow ICONIX methodology and design appropriate UML diagrams for a medium-sized software system.
5. Discuss the properties of good software design including the nature and the role of associated documentation.
6. Evaluate the quality of multiple software designs based on key design principles and concepts.
7. Distinguish between program validation and verification.
8. Describe the role that tools can play in the validation of software.
9. Distinguish between the different types and levels of testing (unit, integration, systems, and acceptance) for medium-size software products and related materials.
10. Create, evaluate, and implement a test plan for a medium-size code segment.

Course Credits: 3

Course Description:

Objectives of the Course:

To provide an introduction to the theory and practice of Artificial Intelligence. It is designed to develop an understanding of the fundamental issues associated with the
field such as: problems and search, knowledge representation and reasoning, game playing, rule-based systems. Advanced topic areas such as probabilistic reasoning and Bayesian networks are also introduced.

Learning Outcomes:

1. define problems in terms of a formal representation
2. analyze problems based in their characteristics
3. examine various search techniques (both uniformed and informed) and apply them to solve problems
4. develop suitable heuristic functions for informed search
5. implement a solution to a problem using searching
6. explain the role of Knowledge Representation in Artificial Intelligence
7. use predicate logic to translate and prove sentences
8. explain the fundamentals of rule-based systems
9. examine the various approaches to uncertain reasoning and apply them to problems
10. explain the fundamentals of game playing (both deterministic and stochastic games) and apply the suitable algorithms for searching and pruning game trees

Course Credits: 3

Course Description:

Objectives of the Course:

• present and explain the compilation phases
• discuss the application of regular expressions in lexical scanners
• discuss parsing (concrete and abstract syntax, abstract syntax trees) and application of context-free grammars in recursive-descent parsing and bottom-up parsing
• discuss declarations and types
• provide student with knowledge on run-time environments, intermediate code representations and code generation principles
• experiment with the design and implementation of a compiler for a small language

Learning Outcomes:

1. demonstrate the various stages of the basic language translation process (lexical, parsing, code generation, optimization) and machine-dependent vs. machineindependent aspect of translation
2. recognize the underlying formal models such as finite state automata and their connection to language definition through regular expressions and grammars
3. use parsing techniques, including LL(1) and LR parsers
4. translate statements into three-address code
5. identify the properties of a variable and discuss type incompatibility
6. differentiate static vs. dynamic storage allocation and the usage of activation records to manage program modules and their data
7. produce a semantically equivalent target program, given an intermediate representation, along with symbol table information,
8. design and implement a simple language translator using automated tools, such lexical and parser generators lexx/yacc

Course Credits: 3

Course Description:

Objectives of the Course:

• appreciate the need for computer security and protection
• provide student deep knowledge on computer security technology and principles, including cryptographic tools, user authentication, access control, and formal models for multilevel computer security
• expose students to techniques to manage security of computers and users by means of contemporary host-based intrusion detection/prevention tools, physical security measures, auditing, logging
• explain various operating systems security models, policies

Learning Outcomes:

1. discuss and use basic cryptographic techniques
2. critically assess user authentication mechanisms, including choosing strong passwords
3. discuss and utilize access control techniques that could be employed in various operating systems and their impact on users
4. identify vulnerabilities in simple programs and rewrite them to make programs safe
5. identity various types of malicious software and use countermeasure defense/detection tools
6. determine and assess protection policies and mechanisms to secure a personal desktop

Course Credits: 3

Course Description:

Objectives of the Course:

The final year project is taken in the 4th year of study of the student in two semesters as COMP-498 (1st semester) and COMP-499 (2nd semester) and is completed only upon completion of both courses in the second semester. This course provides an opportunity for students to extend their studies in particular fields of interest that appertain to their future career aspirations. Students are expected to bring together the academic content and skills developed in a range of courses in an interdisciplinary way. This core module provides development opportunity for self awareness in regards to one’s personal strengths and weaknesses; understanding the limits and applicability of the subject discipline and being able to perform in a variety of contexts; working through problems and making creative and purposeful change with an awareness of ethical and moral codes of practice.

The course:

• Provides the opportunity for individual study in depth of some specialized area of computing of suitable scale and complexity
• Supports students in making self-determined decisions concerning the applicability of their study to their personal career goals and aspirations
• Provides an opportunity to develop a range of skills associated with research including analysis, interpretation, written expression, formal report writing and selfdisciplined study
• Provides a showcase for students to demonstrate their ability to apply the knowledge and skills they have acquired throughout the course to a significant and specialized task
• Encourages reflection upon the relationship of design decisions to the appropriateness of the finished task

Learning Outcomes:

– Apply methodologies, theories, skills and tools learning during the course and incorporate, where appropriate, best practice in terms of professional, technical and ethical issues.
– Make self-determined choices about their own learning agenda in relation to their career aspirations.
– Time-manage a substantial task through the creation of milestones and self-managed study.
– Understand the role of deliverables at various stages of a project’s development.
– Critically evaluate the results of the project in relation to the goals that they have set.
– Organize and present documentation in a professional manner.
– Have developed a final profile (the new graduate’s CV) of personal/professional attributes within the context of qualities and transferable skills, including selfevaluation, necessary for employment and further study or professional development, articulated through the personal development plan.

Course Credits: 3

Course Description:

Objectives of the Course:

The final year project is taken in the 4th year of study of the student in two semesters as COMP-498 (1st semester) and COMP-499 (2nd semester) and is completed only upon completion of both courses in the second semester.
This course provides an opportunity for students to extend their studies in particular fields of interest that appertain to their future career aspirations. Students are expected
to bring together the academic content and skills developed in a range of courses in an interdisciplinary way.
This core module provides development opportunity for self awareness in regards to one’s personal strengths and weaknesses; understanding the limits and applicability of the subject discipline and being able to perform in a variety of contexts; working through problems and making creative and purposeful change with an awareness of
ethical and moral codes of practice.

The course:

• Provides the opportunity for individual study in depth of some specialized area of computing of suitable scale and complexity
• Supports students in making self-determined decisions concerning the applicability of their study to their personal career goals and aspirations
• Provides an opportunity to develop a range of skills associated with research including analysis, interpretation, written expression, formal report writing and selfdisciplined study
• Provides a showcase for students to demonstrate their ability to apply the knowledge and skills they have acquired throughout the course to a significant and specialized task
• Encourages reflection upon the relationship of design decisions to the appropriateness of the finished task

Learning Outcomes:

– Apply methodologies, theories, skills and tools learning during the course and incorporate, where appropriate, best practice in terms of professional, technical and ethical issues.
– Make self-determined choices about their own learning agenda in relation to their career aspirations.
– Time-manage a substantial task through the creation of milestones and self-managed study.
– Understand the role of deliverables at various stages of a project’s development.
– Critically evaluate the results of the project in relation to the goals that they have set.
– Organize and present documentation in a professional manner.
– Have developed a final profile (the new graduate’s CV) of personal/professional attributes within the context of qualities and transferable skills, including selfevaluation, necessary for employment and further study or professional development, articulated through the personal development plan.

Course Credits: 3

Course Description:

Objectives of the Course:

• make students aware of the various database models (emphasis on post-relational models) and database systems
• provide students with deep knowledge for developing database applications and fundamental knowledge for developing web-based database applications
• cover in detail all aspects of the SQL language (including security, authorization, optimization, embedded SQL)
• thoroughly discuss the object-oriented database model, standards and languages and compare this model with the relational model
• discuss Data Warehousing, OLAP, Data Mining, Web Technology and XML
• introduce state-of-the art research in the area of databases.

Learning Outcomes:

1. critically compare and evaluate database models and database systems
2. design and develop database applications using commercially available database systems
3. enhance and fine-tune database applications with regards to security, authorization and optimization
4. develop web-based database applications at an intermediate level
5. critically assess post-relational database models and especially the objectrelational database model, standards and languages
6. develop advanced queries using the SQL language
7. research in state-of-the art areas in databases systems.

Course Credits: 3

Course Description:

Objectives of the Course:

• master design language concepts such as syntax and semantics
• provide student with deep knowledge on programming language constructs such as values, variables, and types
• cover in detail program execution during runtime
• provide student with thorough knowledge on the fundamental principles for various programming paradigms, including imperative programming, object oriented programming, functional programming, logic programming, eventdriven programming, and concurrent programming.

Learning Outcomes:

1. differentiate between syntax and semantics
2. design the syntax for a simple programming language
3. discuss name concepts such as scope, type checking, referencing
4. differentiate between basic types and nonbasic types
5. assess the operational semantics of programming constructs
6. describe the behavior of a function and its run-time stack
7. discuss memory management strategies for dynamic objects
8. utilize and exploit various programming paradigms (imperative, object oriented,functional, logic, event-driver, concurrent, etc) and state their differences

Course Credits: 3

Course Description:

Objectives of the Course:

• introduce a concept of WWW and the Internet
• introduce Domain Name System
• introduce and use name server configuration
• introduce and use IIS and Apache WEB servers
• introduce and use Microsoft WEB development platform
• introduce cloud computing (Microsoft Azure)
• obtain knowledge and practical experience of ASP.NET programming
• obtain knowledge and practical experience of database (ADO.NET) programming

Learning Outcomes:

1. Register an internet domain and manage domain name server
2. Configure and manage IIS and Apache WEB servers.
3. Develop ASP.NET data driven applications.
4. Apply (ADO.NET) database programming skills.

Section: Mathematics Modules

Course Credits: 3

Course Description:

Objectives of the Course:

• Develop the methods for solving linear equations and inequalities in one variable.
• Provide students with deep knowledge of linear systems.
• Provide students with deep knowledge of polynomials and polynomial equations.
• Provide students with deep knowledge of rational expressions.
Learning Outcomes:

1. Solve linear equations in one variable and systems of linear equations in twovariables.
2. Solve linear inequalities in one variable.
3. Carry out operations involving polynomials, to factor polynomials and to solvepolynomial equations.
4. Carry out operations involving rational expressions and to solve rational expression equations.
5. Sketch the graph of a linear equation.

Course Credits: 3

Course Description:

Objectives of the Course:

• introduce students to the basic principles of management science / operational research and to familiarise them with a number of its concepts and tools
• develop students’ ability to build numerical models and to use these models to help propose policy alternatives
• develop students’ analytical skills
• develop students’ ability to summarise and present data in a professional way
• develop students’ skills in practical decision making
• provide a conceptual understanding of the role of the methods of science in decision making
• develop students’ ability to communicate effectively with non-technical managers.
Learning Outcomes:

1. discuss the importance of quantitative methods in problem solving and decision making
2. structure business problems so that these can be solved by quantitative means
3. select appropriate quantitative methods to address particular types of business problems
4. apply appropriate quantitative methods to solve particular types of business problems
5. develop quantitative models to help propose policy alternatives
6. develop skills in analytical and practical decision making
7. develop a conceptual understanding of the methods of science in decision making
8. summarise and present data in a professional way
9. communicate effectively with non-technical managers.

Course Credits: 3

Course Description:

Objectives of the Course:

• Make students aware of the concept of measures of central tendency and variation.
• Make students aware of elementary probability theory.
• Cover in detail all aspects of the binomial and the normal random variables and distributions.
• Thoroughly discuss estimation and hypothesis testing.
Learning Outcomes:

1. Explain the meaning of statistical measures and compute measures of central tendency and variation from data.
2. Solve basic theoretical and empirical probability problems
3. Demonstrate the basic concept of discrete and continuous random variables.
4. Compute Probabilities for the binomial distribution and for the normal distribution.
5. Compute confidence intervals.
6. Execute hypothesis testing on the value of the population mean.

Course Credits: 3

Course Description:

Objectives of the Course:

• Provide students with deep knowledge of the theory of hypothesis testing about population means and proportions.
• Cover in detail all aspects of Analysis of Variance.
• Cover in detail all aspects of the Chi Square Test.
• Cover in detail all aspects of Correlation, Regression and Time Series Analysis.
• Make students aware of the basic Non parametric Tests.
Learning Outcomes:

1. Execute hypothesis testing for the Population Mean μ and the Proportion p.
2. Execute hypothesis testing for the difference between two Population Means (independent samples).
3. Make students aware of Linear Correlation and to perform Multiple Regression.
4. Execute Tests of Independence and Homogeneity.
5. Execute One-Way ANOVA tests.
6. Make students aware of the basic Non Parametric tests.
7. Cover in detail all aspects of Time Series Analysis.
8. Be able to use the SPSS package efficiently.

BSc in Computer Science
Course Information

Related Courses