Online Resources of Frederick University

Highlights and Announcements

Quick Links

Welcome to FUC - Spring Semester 2016!!!
Important Links:

[January] The e-learning links are now available.

[September] The university's calendar is now available.

 







MDLlogo
 

Spring 2017, 2016, 2015, 2014 - Frederick University, Cyprus 

ACSC505 - Interactive Systems Design for Web and Mobile Applications: Spring 2017, 2016, 2015, 2014
The aim of this course is to provide an overview of concepts on Human Computer Interfaces design in making more comprehensive and user-friendly computer-based systems. The course will allow students to understand the theoretical dimension of human factors in the acceptance of computer interfaces and identify the impact of usable interfaces in the performance of Mobile and Web systems. The course enables students to identify techniques and practice in various platforms and toolkits for interface design, analysis and evaluation as well as develop creative skills in designing competitive user interfaces in web and mobile systems. Particular emphasis is given to extend students critical awareness of the issues and challenges associated to ubiquitous computing and augmented reality.

Outline: Part 1 - Introduction - Basics and the Vision, Applications and Requirements, Smart Devices and Services, Challenges: Pervasiveness, Design, Anytime, Anyplace, Anywhere. Augmented Reality: Emerging Technologies, Interfaces and Design, Part 2 - Human Computer Interaction - Web and Mobile Interfaces, Understanding Users, Cognitive and Affective Factors, The Computer and Human-Computer, Interaction, Interactive System Design,Requirements Analysis, System Design and Prototyping, Evaluation. Part 3 - Web and Mobile Interfaces Design and Development - Web Interface Design and Development: HTML, HTML5, javascript(jQuery), AJAX, Mobile Interface Design and Development: Windows Phone (Visual C# and XAML), Android (Java and XML). Part 4 - Mobile Social Networks and Personalization

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AELE221 - Circuit Analysis: Spring 2017, 2016, 2015, 2014, 2012, 2011
The main objective of this course is to introduce engineering students to Circuit Analysis and some introduction to electrical circuit's theory and analysis. An electrical circuit simulator as well as real instruments and components are used for exercising on various theorems and analysis.

Outline: Introduction to circuit theory and analysis. Electrical quantities and units. Analysis of DC and AC circuits using Ohms law, Kirchoff's law, Theveni's theorem, Norton's theorem, mesh and nodal analysis. Capacitive and inductive circuit transient and steady state analysis. SPICE simulations using a variety of popular commercial software packages. Experimental verification of circuit theorems.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC183 - Programming Principles II: Spring 2017, 2016, 2015, 2014, 2013, 2012, 2011
The main objective of this course is to understand the use of structures and arrays and apply them to construct and manipulate programmatically composite data types. Develop programs that read and write from/to files and can handle strings. Show the ability to use pointers and dynamic data types in programming exercises. Be able to design medium size programs using a modular approach and command the use of functions for developing algorithmic units and their communication through parameter passing and function returns.Appreciate the benefits and core concepts of object oriented C++ programming and develop simple programs using object-oriented terminology.

Outline: Part 1 Review of Programming Principles: Data and Algorithms. Variables, operators and statements. Sequential, Selective and iterative processes. Understanding complex code. Interacting with input and output. Part 2: Modular Program Development. Tackling larger programming tasks. Dividing the problem into parts. Designing software solutions. Understanding functions. Function declarations, definition and calls. Program interaction using functions.  Parameter Passing. Passing by value and by reference. Variable scope. From design to implementation. Approaches available, pseudo-code usage. Breaking programs into units. Use of header files and custom-made libraries.  Part 3: Using Composite Data Types. Limitations of built-in data types. Review of mechanisms for constructing composite data types. Arrays and Structures. Building complex data types. Handling composite types. Efficiency considerations. Part 4: Pointers and Dynamic Data. Understanding Pointers and memory addresses. Parameter Passing revisited. Memory allocation lifetime and memory leaks. Pointers and arrays. String handling. Part 5: Persistent Storage  Files, file pointers and file objects. Reading and writing methods. File manipulation. Part 6: Combining Data and Algorithms - Elements of Object-Orientation. Introducing a new way of looking at programming. Key features of object-orientation. Classes, objects, properties and methods.  Objects and memory management

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC299 - Visual Programming in Visual C# and Windows Mobile Phones: Spring 2017, 2016, 2015, 2014, 2013, 2012
The course provides an introduction to Human-Computer Interaction (HCI). HCI is concerned with understanding, designing, implementing and evaluating user-interfaces so that they better support users in carrying out their tasks. On completing the course you will have knowledge of the theoretical foundations of designing for interaction between humans and computers. You will also have practical experience in implementing and evaluating graphical user interfaces in both desktop and mobile phone environments. This course will also introduce the fundamental principles of event-driven programming and programming using a visual environment through the use of the Visual C# programming language and Windows Mobile Phone platform.

Outline:   Introduction and Event-driven programming: Procedural Programming versus Visual Programming, Introduction to HCI and Mental Models: students should have a clear understanding of HCI principles that influence a system's interface design, before writing any code. Such preliminary thinking involves ideas about user needs and demands and what kinds of designs might be appropriate for each implementation context, Usability Heuristics & Screen Design: students should have a clear understanding of HCI principles that influence a system's interface design, before writing any code. Such preliminary thinking involves ideas about user needs and demands and what kinds of designs might be appropriate for each implementation context, Human factors: Human limitations, vision, hearing, memory, Devices and paradigms for interaction,   Interface design and Prototyping: students will understand that the interfaces design emerges iteratively, through repeated design-evaluation-redesign cycles involving users. Broadly speaking, there are two types of design: conceptual and physical. The former is concerned with developing a conceptual model that captures what the product will do and how it will behave, while the latter is concerned with details of the design such as screen and menu structures, icons, and graphics, Evaluation: students will have the skills to understand why evaluation is important, what needs to be evaluated, where that evaluation should take place, and when in the product lifecycle evaluation is needed. We introduce three evaluation approaches and key evaluation methods, and examine short evaluation case studies which illustrate them. For each one we look at the aim of the evaluation, at what stage the evaluation was done during design, the techniques that are used to collect and analyze the data, and the challenges that the evaluators encountered, Visual programming: Students should be able to design and implement novel GUIs in Visual C#, Windows Mobile Phone Environment: Students should be able to design and implement GUIs for Windows Mobile Applications using Microsoft Technologies such as Blend, Silverlight etc.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.


Fall 2016, 2015,2014, 2013 - Frederick University, Cyprus 

ACSC503 (MSc in Web and Mobile Systems) - Sofware Development for Mobile Devices: Fall 2016, 2015, 2014, 2013
The aim of this course is to provide students with critical understanding of the technology, issues and challenges of smartphones and next generation mobile systems. The course will enable students to practice in various platforms and toolkits to develop skills in designing mobile applications, especially on Android, Windows Phone, iOS and Blackberry operating systems, and enhance students understanding of the mobile systems business aspect. Particular emphasis is given to extend students critical awareness of the issues and challenges associated with distributed, peer-to-peer and client/server architectures on mobile systems.

Outline: Wireless and Mobile Networks Revisited, Distributed Computing (RPC, CORBA, JAVA RMI), Mobile Computing, Pervasive Computing, Ubiquitous Computing, Mobile Social Networks, Context-awareness and Location-awareness, Personalization and Privacy, Crowdsourcing, Big Data. Development on Windows Phone, Windows 8 and Android Platforms.Business and Monetization aspcets of your smartphone application.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled. 

 

ACSC423 - Mobile and Ubiquitous Computing and Applications: Fall 2016, 2015, 2014, 2013, 2012
The aim of this course is to provide students with the theoretical and practical knowledge that is necessary to enable them to participate in the design and deployment of ubiquitous computing solutions in a wide range of applications and environments. Appreciate the benefits and core concepts of Mobile, Pervasive, Context-aware and Ubiquitous Computing. Learn to think your own ideas and implement them using Smartphone technologies. Industrial lectures from Microsoft Cyprus and PowerSoft will also provide the students the opportunity to discuss with experts that will share their experiences for the Cyprus market and the general challenges of this domain. By the end of the course students should be able to design and implement elementary group projects using Windows Phone and Windows 8 technologies.

Outline: Wireless Networks, Cellular Networks, Wireless Sensor Networks. Mobile Computing Context-aware Computing Ubiquitous Computing and technologies Smart Devices Augmented Reality Applications Challenges: Localization, Crowdsourcing,Laboratory: Introduction on Smartphones Oss(Windows Phone, Android, iOS, Blackberry), Development on Windows Phone 7 & 8, Application Fundamentals, User Interface, Working with Controllers, Working with Resources, Working with Sensors, Using Maps, Using Services, Localization. Industrial Lecturers and Workshops. 

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled. 

 

ACSC359 - Software Methodology (SQL, JAVA, JDBC): Fall 2016, 2015, 2014, 2013, 2012, 2011
The main objective of this course is to introduce engineering students to software methodology, i.e. the tasks of software development, Requirements Engineering, Design, Process Models, Project Management as well as Object-Oriented Programming and Databases. By the end of the course students should be able to design and implement elementary group projects using Java, ACCESS 2007, SQL and JDBC.

Outline: Design: User Interface (Menus and GUIs), Design Principles and Guidelines Interface Design. Modularity: Components type, size and complexity, Information hiding, Coupling and cohesion, OO Programming. Structured Programming: Selecting Control Structures. Data Flow Design: Identifying data flows, Creation of structure chart. Data Structure Design. OO Design.     Process Models: The Waterfall Model. The spiral model. Prototyping. Incremental Development. Open-Source. Extreme Programming. The unified Process. Project Management: Teams. Software Metrics and quality assurance. Management. The Java Programming Language: History, Introduction to Java, Selecting a Development Tool (JDK, SDK etc.), JDK Contents (java, javac, javadoc etc Compile and Run from Command Line.  NetBeans. Encapsulation. Library Classes. Inheritance. Polymorphism. Packages. Abstraction and Interfaces. Exceptions and exception handlers. Input/output Mechanisms. Objects and Instances. Constructors. Setters and Getters. Introduction to Databases: Relational Database Model and Overview. Access 2007: Get Started, Navigation Pane, Ribbon, Toolbars, Table templates, Create a Database, Create a form, Create a report, Save a Project. Design and Create a Table, Build Relationships, Create Queries. Introduction to Structured Query Language (SQL) : Queries ( Select, From, Where clause, Like clause, Having clause, Order By clause, Count, Group By, Join Inner/Right, Outer/Left Join). DDL: Create Table, Alter Table, Truncate Table, Drop Table. DML: Insert Into statement, Update statement, Delete From statement. JDBC: Introduction, Manipulating Databases with JDBC, Connecting to a JDBC data source, Querying a JDBC data source, Example Application.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AELE210 - Signals, Systems and Transforms (Matlab): Spring 2017, Fall 2015, 2014, 2013, 2012, 2011
The main objective of this course is to introduce engineering students to signals, systems and transforms. Particularly, by the end of this course students should acquire the capacity and ability to apply mathematics and analogue signal processing knowledge in practice, mathematically analyze and synthesize signal processing, to design signal processing systems using MATLAB, to process continuous-time signals and perform continuous-time Fourier transform analysis, to perform Laplace transform and to seriatim realise systems

Outline: Introduction to Signals and Systems: Introduction to signals and systems. Communication system case. Introduction to MATLAB. Continuous-Time Signals: Mathematical description of continuous-time signals. Signal functions. Functions and combinations. Scaling and shifting. Differentiation and Integration. Even and odd functions. Periodic functions. Signal energy and power. Properties of continuous-time signals. Block diagrams. System modelling and properties. Homogeneity, time invariance, additivity, linearity, superposition, stability, incremental linearity, causality, memory, static nonlinearity and invertibility. Eigenfunctions of LTI systems. Time-domain analysis of continuous-time systems. The Convolution integral. Impulse response, convolution properties, system realisation, stability and impulse response. Realisation of differential equations. Continuous-Time Fourier Analysis: Continuous-time Fourier series. Fourier series concept, calculation, numerical computation, convergence and properties. Band-limited signals. Responses of LTI systems. Continuous-time Fourier transforms. Fourier transform concept, calculation, numerical computation, convergence and properties. Continuous-time Fourier Transform analysis of signals and systems. Frequency response. Ideal filters. Practical passive and active filter design. Log-magnitude frequency response and bode diagrams. Communication systems.     Laplace Transform: The Laplace Transform. Concept, calculation, convergence and properties. The inverse Laplace transform using partial-fraction expansion. Laplace transform - Fourier transform equivalence. Differential equations with initial conditions. Transfer functions from circuit and system diagrams. System stability. Parallel, cascade and feedback connections. System responses to standard signals. Pole-zero response. Realisation of systems. Memory and PLAs: SRAMs, DRAMs, ROMs, stacks and PLAs. Subsystems testing. VHDL design. Special Purpose Subsystems: Packaging, power distribution, I/O circuits. Clock system architecture.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.



Spring 2013 - Frederick University, Cyprus 

ACSC183 - Programming Principles II: Spring 2013, Spring 2012, Spring 2011
The main objective of this course is to understand the use of structures and arrays and apply them to construct and manipulate programmatically composite data types. Develop programs that read and write from/to files and can handle strings. Show the ability to use pointers and dynamic data types in programming exercises. Be able to design medium size programs using a modular approach and command the use of functions for developing algorithmic units and their communication through parameter passing and function returns.Appreciate the benefits and core concepts of object oriented C++ programming and develop simple programs using object-oriented terminology.

Outline: Part 1 Review of Programming Principles: Data and Algorithms. Variables, operators and statements. Sequential, Selective and iterative processes. Understanding complex code. Interacting with input and output. Part 2: Modular Program Development. Tackling larger programming tasks. Dividing the problem into parts. Designing software solutions. Understanding functions. Function declarations, definition and calls. Program interaction using functions.  Parameter Passing. Passing by value and by reference. Variable scope. From design to implementation. Approaches available, pseudo-code usage. Breaking programs into units. Use of header files and custom-made libraries.  Part 3: Using Composite Data Types. Limitations of built-in data types. Review of mechanisms for constructing composite data types. Arrays and Structures. Building complex data types. Handling composite types. Efficiency considerations. Part 4: Pointers and Dynamic Data. Understanding Pointers and memory addresses. Parameter Passing revisited. Memory allocation lifetime and memory leaks. Pointers and arrays. String handling. Part 5: Persistent Storage  Files, file pointers and file objects. Reading and writing methods. File manipulation. Part 6: Combining Data and Algorithms - Elements of Object-Orientation. Introducing a new way of looking at programming. Key features of object-orientation. Classes, objects, properties and methods.  Objects and memory management

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

ACSC382 - Object Oriented Programming in Java:  Spring 2013, Spring 2012, Fall 2011, Spring 2011, Fall 2010,
The main objective of this course is to introduce students to object-oriented programming concepts and practical programming in Java. By the end of this course students should be able to design and implement elementary group projects in Java create reusable and extensible code based on object-oriented concepts.

Outline:   What is object-orientation? Reuse, extensibility, reliability, collaboration. Java programming language - JDK installation and use. IDEs. Imperative programming paradigm: data, functions, types, statements, control structures and data structures in Java. Classes and Objects: Abstraction. Instances, state and behaviour. Constructors. Objects communication by messages. Packages: Modularity. Reusable components. Namespace. Standard Java packages. Encapsulation: Information hiding. Data and method access types. Inheritance: Super class and generalization relationship. Abstract class. Interface. Polymorphism: Extensibility, based on building class hierarchy. Exception handling: Errors and exceptions. Exception handling in Java. I/O and Serialization: java.io package, streams and serialization. Event handling and User interface programming: java.awt and swing for user interface programming. Multithreaded programming: Threads. Timer and TimerTask classes. Synchronizing threads.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC299 - Visual Programming in Visual C# and Windows Mobile Phones: Spring 2013, Spring 2012
The course provides an introduction to Human-Computer Interaction (HCI). HCI is concerned with understanding, designing, implementing and evaluating user-interfaces so that they better support users in carrying out their tasks. On completing the course you will have knowledge of the theoretical foundations of designing for interaction between humans and computers. You will also have practical experience in implementing and evaluating graphical user interfaces in both desktop and mobile phone environments. This course will also introduce the fundamental principles of event-driven programming and programming using a visual environment through the use of the Visual C# programming language and Windows Mobile Phone platform.

Outline:   Introduction and Event-driven programming: Procedural Programming versus Visual Programming, Introduction to HCI and Mental Models: students should have a clear understanding of HCI principles that influence a system's interface design, before writing any code. Such preliminary thinking involves ideas about user needs and demands and what kinds of designs might be appropriate for each implementation context, Usability Heuristics & Screen Design: students should have a clear understanding of HCI principles that influence a system's interface design, before writing any code. Such preliminary thinking involves ideas about user needs and demands and what kinds of designs might be appropriate for each implementation context, Human factors: Human limitations, vision, hearing, memory, Devices and paradigms for interaction,   Interface design and Prototyping: students will understand that the interfaces design emerges iteratively, through repeated design-evaluation-redesign cycles involving users. Broadly speaking, there are two types of design: conceptual and physical. The former is concerned with developing a conceptual model that captures what the product will do and how it will behave, while the latter is concerned with details of the design such as screen and menu structures, icons, and graphics, Evaluation: students will have the skills to understand why evaluation is important, what needs to be evaluated, where that evaluation should take place, and when in the product lifecycle evaluation is needed. We introduce three evaluation approaches and key evaluation methods, and examine short evaluation case studies which illustrate them. For each one we look at the aim of the evaluation, at what stage the evaluation was done during design, the techniques that are used to collect and analyze the data, and the challenges that the evaluators encountered, Visual programming: Students should be able to design and implement novel GUIs in Visual C#, Windows Mobile Phone Environment: Students should be able to design and implement GUIs for Windows Mobile Applications using Microsoft Technologies such as Blend, Silverlight etc.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.



Fall 2012 - Frederick University, Cyprus 

ACSC423 - Mobile and Ubiquitous Computing and Applications: Fall 2012
The aim of this course is to provide students with the theoretical and practical knowledge that is necessary to enable them to participate in the design and deployment of ubiquitous computing solutions in a wide range of applications and environments. Appreciate the benefits and core concepts of Mobile, Pervasive, Context-aware and Ubiquitous Computing. Learn to think your own ideas and implement them using Smartphone technologies. Industrial lectures from Microsoft Cyprus and PowerSoft will also provide the students the opportunity to discuss with experts that will share their experiences for the Cyprus market and the general challenges of this domain. By the end of the course students should be able to design and implement elementary group projects using Windows Phone and Windows 8 technologies.

Outline: Wireless Networks, Cellular Networks, Wireless Sensor Networks. Mobile Computing Context-aware Computing Ubiquitous Computing and technologies Smart Devices Augmented Reality Applications Challenges: Localization, Crowdsourcing,Laboratory: Introduction on Smartphones Oss(Windows Phone, Android, iOS, Blackberry), Development on Windows Phone 7 & 8, Application Fundamentals, User Interface, Working with Controllers, Working with Resources, Working with Sensors, Using Maps, Using Services, Localization. Industrial Lecturers and Workshops. 

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC182 - Programming Principles I in C++  : Fall 2010, Fall 2011, Fall 2012
The main objective of this undergraduate course is to comprehend the basic concept and process of programming. Understand the constructs of an imperative programming language such as C++ and being able to comprehend programs of medium size and complexity. Be capable of designing algorithms and implementing them for solving simple problems  Understand imperative and functional programming as the mathematical vehicle toward programming. Designing and using fundamental algorithms for solving simple mathematical problems. Comprehend the methodology of structures, algorithm design and problem solving.

Outline: Comprehension of the basic concepts of imperative programming. Appreciation of program development through data representation and construction of algorithms using selection, iteration and sequence. Purpose and need for programming. Information representation in programs (types and variables). Statements, assignments and operations. Conditional and repetitive statements. Principles of algorithmic design. Composite data type (arrays, structures). Data input/output. Introduction to modularity - functions.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACOE359 - Software Methodology (SQL, JAVA, JDBC): Fall 2011, Fall 2012
The main objective of this course is to introduce engineering students to software methodology, i.e. the tasks of software development, Requirements Engineering, Design, Process Models, Project Management as well as Object-Oriented Programming and Databases. By the end of the course students should be able to design and implement elementary group projects using Java, ACCESS 2007, SQL and JDBC.

Outline: Design: User Interface (Menus and GUIs), Design Principles and Guidelines Interface Design. Modularity: Components type, size and complexity, Information hiding, Coupling and cohesion, OO Programming. Structured Programming: Selecting Control Structures. Data Flow Design: Identifying data flows, Creation of structure chart. Data Structure Design. OO Design.     Process Models: The Waterfall Model. The spiral model. Prototyping. Incremental Development. Open-Source. Extreme Programming. The unified Process. Project Management: Teams. Software Metrics and quality assurance. Management. The Java Programming Language: History, Introduction to Java, Selecting a Development Tool (JDK, SDK etc.), JDK Contents (java, javac, javadoc etc Compile and Run from Command Line.  NetBeans. Encapsulation. Library Classes. Inheritance. Polymorphism. Packages. Abstraction and Interfaces. Exceptions and exception handlers. Input/output Mechanisms. Objects and Instances. Constructors. Setters and Getters. Introduction to Databases: Relational Database Model and Overview. Access 2007: Get Started, Navigation Pane, Ribbon, Toolbars, Table templates, Create a Database, Create a form, Create a report, Save a Project. Design and Create a Table, Build Relationships, Create Queries. Introduction to Structured Query Language (SQL) : Queries ( Select, From, Where clause, Like clause, Having clause, Order By clause, Count, Group By, Join Inner/Right, Outer/Left Join). DDL: Create Table, Alter Table, Truncate Table, Drop Table. DML: Insert Into statement, Update statement, Delete From statement. JDBC: Introduction, Manipulating Databases with JDBC, Connecting to a JDBC data source, Querying a JDBC data source, Example Application.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AELE210 - Signals, Systems and Transforms (Matlab): Fall 2011, Fall 2012
The main objective of this course is to introduce engineering students to signals, systems and transforms. Particularly, by the end of this course students should acquire the capacity and ability to apply mathematics and analogue signal processing knowledge in practice, mathematically analyze and synthesize signal processing, to design signal processing systems using MATLAB, to process continuous-time signals and perform continuous-time Fourier transform analysis, to perform Laplace transform and to seriatim realise systems

Outline: Introduction to Signals and Systems: Introduction to signals and systems. Communication system case. Introduction to MATLAB. Continuous-Time Signals: Mathematical description of continuous-time signals. Signal functions. Functions and combinations. Scaling and shifting. Differentiation and Integration. Even and odd functions. Periodic functions. Signal energy and power. Properties of continuous-time signals. Block diagrams. System modelling and properties. Homogeneity, time invariance, additivity, linearity, superposition, stability, incremental linearity, causality, memory, static nonlinearity and invertibility. Eigenfunctions of LTI systems. Time-domain analysis of continuous-time systems. The Convolution integral. Impulse response, convolution properties, system realisation, stability and impulse response. Realisation of differential equations. Continuous-Time Fourier Analysis: Continuous-time Fourier series. Fourier series concept, calculation, numerical computation, convergence and properties. Band-limited signals. Responses of LTI systems. Continuous-time Fourier transforms. Fourier transform concept, calculation, numerical computation, convergence and properties. Continuous-time Fourier Transform analysis of signals and systems. Frequency response. Ideal filters. Practical passive and active filter design. Log-magnitude frequency response and bode diagrams. Communication systems.     Laplace Transform: The Laplace Transform. Concept, calculation, convergence and properties. The inverse Laplace transform using partial-fraction expansion. Laplace transform - Fourier transform equivalence. Differential equations with initial conditions. Transfer functions from circuit and system diagrams. System stability. Parallel, cascade and feedback connections. System responses to standard signals. Pole-zero response. Realisation of systems. Memory and PLAs: SRAMs, DRAMs, ROMs, stacks and PLAs. Subsystems testing. VHDL design. Special Purpose Subsystems: Packaging, power distribution, I/O circuits. Clock system architecture.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.


 

 Spring 2012 - Frederick University, Cyprus 

ACSC183 - Programming Principles II: Spring 2011, Spring 2012
The main objective of this course is to understand the use of structures and arrays and apply them to construct and manipulate programmatically composite data types. Develop programs that read and write from/to files and can handle strings. Show the ability to use pointers and dynamic data types in programming exercises. Be able to design medium size programs using a modular approach and command the use of functions for developing algorithmic units and their communication through parameter passing and function returns.Appreciate the benefits and core concepts of object oriented C++ programming and develop simple programs using object-oriented terminology.

Outline: Part 1 Review of Programming Principles: Data and Algorithms. Variables, operators and statements. Sequential, Selective and iterative processes. Understanding complex code. Interacting with input and output. Part 2: Modular Program Development. Tackling larger programming tasks. Dividing the problem into parts. Designing software solutions. Understanding functions. Function declarations, definition and calls. Program interaction using functions.  Parameter Passing. Passing by value and by reference. Variable scope. From design to implementation. Approaches available, pseudo-code usage. Breaking programs into units. Use of header files and custom-made libraries.  Part 3: Using Composite Data Types. Limitations of built-in data types. Review of mechanisms for constructing composite data types. Arrays and Structures. Building complex data types. Handling composite types. Efficiency considerations. Part 4: Pointers and Dynamic Data. Understanding Pointers and memory addresses. Parameter Passing revisited. Memory allocation lifetime and memory leaks. Pointers and arrays. String handling. Part 5: Persistent Storage  Files, file pointers and file objects. Reading and writing methods. File manipulation. Part 6: Combining Data and Algorithms - Elements of Object-Orientation. Introducing a new way of looking at programming. Key features of object-orientation. Classes, objects, properties and methods.  Objects and memory management

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AELE221 - Circuit Analysis: Spring 2011, Spring 2012
The main objective of this course is to introduce engineering students to Circuit Analysis and some introduction to electrical circuit's theory and analysis. An electrical circuit simulator as well as real instruments and components are used for exercising on various theorems and analysis.

Outline: Introduction to circuit theory and analysis. Electrical quantities and units. Analysis of DC and AC circuits using Ohms law, Kirchoff's law, Theveni's theorem, Norton's theorem, mesh and nodal analysis. Capacitive and inductive circuit transient and steady state analysis. SPICE simulations using a variety of popular commercial software packages. Experimental verification of circuit theorems.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy)) to get enrolled.

 

ACSC382 - Object Oriented Programming in Java: Fall 2010, Spring 2011, Fall 2011, Spring 2012
The main objective of this course is to introduce students to object-oriented programming concepts and practical programming in Java. By the end of this course students should be able to design and implement elementary group projects in Java create reusable and extensible code based on object-oriented concepts.

Outline:   What is object-orientation? Reuse, extensibility, reliability, collaboration. Java programming language - JDK installation and use. IDEs. Imperative programming paradigm: data, functions, types, statements, control structures and data structures in Java. Classes and Objects: Abstraction. Instances, state and behaviour. Constructors. Objects communication by messages. Packages: Modularity. Reusable components. Namespace. Standard Java packages. Encapsulation: Information hiding. Data and method access types. Inheritance: Super class and generalization relationship. Abstract class. Interface. Polymorphism: Extensibility, based on building class hierarchy. Exception handling: Errors and exceptions. Exception handling in Java. I/O and Serialization: java.io package, streams and serialization. Event handling and User interface programming: java.awt and swing for user interface programming. Multithreaded programming: Threads. Timer and TimerTask classes. Synchronizing threads.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC299 - Visual Programming in Visual C# and Windows Mobile Phones: Spring 2012
The course provides an introduction to Human-Computer Interaction (HCI). HCI is concerned with understanding, designing, implementing and evaluating user-interfaces so that they better support users in carrying out their tasks. On completing the course you will have knowledge of the theoretical foundations of designing for interaction between humans and computers. You will also have practical experience in implementing and evaluating graphical user interfaces in both desktop and mobile phone environments. This course will also introduce the fundamental principles of event-driven programming and programming using a visual environment through the use of the Visual C# programming language and Windows Mobile Phone platform.

Outline:   Introduction and Event-driven programming: Procedural Programming versus Visual Programming, Introduction to HCI and Mental Models: students should have a clear understanding of HCI principles that influence a system's interface design, before writing any code. Such preliminary thinking involves ideas about user needs and demands and what kinds of designs might be appropriate for each implementation context, Usability Heuristics & Screen Design: students should have a clear understanding of HCI principles that influence a system's interface design, before writing any code. Such preliminary thinking involves ideas about user needs and demands and what kinds of designs might be appropriate for each implementation context, Human factors: Human limitations, vision, hearing, memory, Devices and paradigms for interaction,   Interface design and Prototyping: students will understand that the interfaces design emerges iteratively, through repeated design-evaluation-redesign cycles involving users. Broadly speaking, there are two types of design: conceptual and physical. The former is concerned with developing a conceptual model that captures what the product will do and how it will behave, while the latter is concerned with details of the design such as screen and menu structures, icons, and graphics, Evaluation: students will have the skills to understand why evaluation is important, what needs to be evaluated, where that evaluation should take place, and when in the product lifecycle evaluation is needed. We introduce three evaluation approaches and key evaluation methods, and examine short evaluation case studies which illustrate them. For each one we look at the aim of the evaluation, at what stage the evaluation was done during design, the techniques that are used to collect and analyze the data, and the challenges that the evaluators encountered, Visual programming: Students should be able to design and implement novel GUIs in Visual C#, Windows Mobile Phone Environment: Students should be able to design and implement GUIs for Windows Mobile Applications using Microsoft Technologies such as Blend, Silverlight etc.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.


 

Fall 2011 - Frederick University Cyprus 

ACSC382 - Object Oriented Programming in Java: Fall 2010, Spring 2011, Fall 2011
The main objective of this course is to introduce students to object-oriented programming concepts and practical programming in Java. By the end of this course students should be able to design and implement elementary group projects in Java create reusable and extensible code based on object-oriented concepts.

Outline:   What is object-orientation? Reuse, extensibility, reliability, collaboration. Java programming language - JDK installation and use. IDEs. Imperative programming paradigm: data, functions, types, statements, control structures and data structures in Java. Classes and Objects: Abstraction. Instances, state and behaviour. Constructors. Objects communication by messages. Packages: Modularity. Reusable components. Namespace. Standard Java packages. Encapsulation: Information hiding. Data and method access types. Inheritance: Super class and generalization relationship. Abstract class. Interface. Polymorphism: Extensibility, based on building class hierarchy. Exception handling: Errors and exceptions. Exception handling in Java. I/O and Serialization: java.io package, streams and serialization. Event handling and User interface programming: java.awt and swing for user interface programming. Multithreaded programming: Threads. Timer and TimerTask classes. Synchronizing threads.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

ACSC182 - Programming Principles I in C++  : Fall 2010, Fall 2011
The main objective of this undergraduate course is to comprehend the basic concept and process of programming. Understand the constructs of an imperative programming language such as C++ and being able to comprehend programs of medium size and complexity. Be capable of designing algorithms and implementing them for solving simple problems  Understand imperative and functional programming as the mathematical vehicle toward programming. Designing and using fundamental algorithms for solving simple mathematical problems. Comprehend the methodology of structures, algorithm design and problem solving.

Outline: Comprehension of the basic concepts of imperative programming. Appreciation of program development through data representation and construction of algorithms using selection, iteration and sequence. Purpose and need for programming. Information representation in programs (types and variables). Statements, assignments and operations. Conditional and repetitive statements. Principles of algorithmic design. Composite data type (arrays, structures). Data input/output. Introduction to modularity - functions.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACOE359 - Software Methodology (SQL, JAVA, JDBC): Fall 2011
The main objective of this course is to introduce engineering students to software methodology, i.e. the tasks of software development, Requirements Engineering, Design, Process Models, Project Management as well as Object-Oriented Programming and Databases. By the end of the course students should be able to design and implement elementary group projects using Java, ACCESS 2007, SQL and JDBC.

Outline: Design: User Interface (Menus and GUIs), Design Principles and Guidelines Interface Design. Modularity: Components type, size and complexity, Information hiding, Coupling and cohesion, OO Programming. Structured Programming: Selecting Control Structures. Data Flow Design: Identifying data flows, Creation of structure chart. Data Structure Design. OO Design.     Process Models: The Waterfall Model. The spiral model. Prototyping. Incremental Development. Open-Source. Extreme Programming. The unified Process. Project Management: Teams. Software Metrics and quality assurance. Management. The Java Programming Language: History, Introduction to Java, Selecting a Development Tool (JDK, SDK etc.), JDK Contents (java, javac, javadoc etc Compile and Run from Command Line.  NetBeans. Encapsulation. Library Classes. Inheritance. Polymorphism. Packages. Abstraction and Interfaces. Exceptions and exception handlers. Input/output Mechanisms. Objects and Instances. Constructors. Setters and Getters. Introduction to Databases: Relational Database Model and Overview. Access 2007: Get Started, Navigation Pane, Ribbon, Toolbars, Table templates, Create a Database, Create a form, Create a report, Save a Project. Design and Create a Table, Build Relationships, Create Queries. Introduction to Structured Query Language (SQL) : Queries ( Select, From, Where clause, Like clause, Having clause, Order By clause, Count, Group By, Join Inner/Right, Outer/Left Join). DDL: Create Table, Alter Table, Truncate Table, Drop Table. DML: Insert Into statement, Update statement, Delete From statement. JDBC: Introduction, Manipulating Databases with JDBC, Connecting to a JDBC data source, Querying a JDBC data source, Example Application.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AELE210 - Signals, Systems and Transforms (Matlab): Fall 2011
The main objective of this course is to introduce engineering students to signals, systems and transforms. Particularly, by the end of this course students should acquire the capacity and ability to apply mathematics and analogue signal processing knowledge in practice, mathematically analyze and synthesize signal processing, to design signal processing systems using MATLAB, to process continuous-time signals and perform continuous-time Fourier transform analysis, to perform Laplace transform and to seriatim realise systems

Outline: Introduction to Signals and Systems: Introduction to signals and systems. Communication system case. Introduction to MATLAB. Continuous-Time Signals: Mathematical description of continuous-time signals. Signal functions. Functions and combinations. Scaling and shifting. Differentiation and Integration. Even and odd functions. Periodic functions. Signal energy and power. Properties of continuous-time signals. Block diagrams. System modelling and properties. Homogeneity, time invariance, additivity, linearity, superposition, stability, incremental linearity, causality, memory, static nonlinearity and invertibility. Eigenfunctions of LTI systems. Time-domain analysis of continuous-time systems. The Convolution integral. Impulse response, convolution properties, system realisation, stability and impulse response. Realisation of differential equations. Continuous-Time Fourier Analysis: Continuous-time Fourier series. Fourier series concept, calculation, numerical computation, convergence and properties. Band-limited signals. Responses of LTI systems. Continuous-time Fourier transforms. Fourier transform concept, calculation, numerical computation, convergence and properties. Continuous-time Fourier Transform analysis of signals and systems. Frequency response. Ideal filters. Practical passive and active filter design. Log-magnitude frequency response and bode diagrams. Communication systems.     Laplace Transform: The Laplace Transform. Concept, calculation, convergence and properties. The inverse Laplace transform using partial-fraction expansion. Laplace transform - Fourier transform equivalence. Differential equations with initial conditions. Transfer functions from circuit and system diagrams. System stability. Parallel, cascade and feedback connections. System responses to standard signals. Pole-zero response. Realisation of systems. Memory and PLAs: SRAMs, DRAMs, ROMs, stacks and PLAs. Subsystems testing. VHDL design. Special Purpose Subsystems: Packaging, power distribution, I/O circuits. Clock system architecture.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACOE101 - Freshman Computer Engineering (UNIX): Fall 2011
The main objective of this course is to introduce students to computing and computer engineerng as well as to provide an overview to the basic areas of computer systems, operating systems, programming and algorithms. To intoduce several social and professional issues of computing and internet as well as provide the capacity to manage the UNIX Operating System and environment.

Outline:   Introduction to the computing discipline. Historic evolution of computing. Disciplines of computing, relation of the computer engineering discipline with related disciplines such as computer science, information systems and electrical engineering. Overview of the basic educational areas of computing: digital systems and computer hardware, operating systems, programming
and algorithms, data communications and computer networks. Social and professional issues: Social context of computing, professional and ethical responsibilities, intellectual property, social implications of the Internet and computer crime.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.


 

Spring 2011 - Frederick University Cyprus 

ACSC183 - Programming Principles II: Spring 2011
The main objective of this course is to understand the use of structures and arrays and apply them to construct and manipulate programmatically composite data types. Develop programs that read and write from/to files and can handle strings. Show the ability to use pointers and dynamic data types in programming exercises. Be able to design medium size programs using a modular approach and command the use of functions for developing algorithmic units and their communication through parameter passing and function returns.Appreciate the benefits and core concepts of object oriented C++ programming and develop simple programs using object-oriented terminology.

Outline: Part 1 Review of Programming Principles: Data and Algorithms. Variables, operators and statements. Sequential, Selective and iterative processes. Understanding complex code. Interacting with input and output. Part 2: Modular Program Development. Tackling larger programming tasks. Dividing the problem into parts. Designing software solutions. Understanding functions. Function declarations, definition and calls. Program interaction using functions.  Parameter Passing. Passing by value and by reference. Variable scope. From design to implementation. Approaches available, pseudo-code usage. Breaking programs into units. Use of header files and custom-made libraries.  Part 3: Using Composite Data Types. Limitations of built-in data types. Review of mechanisms for constructing composite data types. Arrays and Structures. Building complex data types. Handling composite types. Efficiency considerations. Part 4: Pointers and Dynamic Data. Understanding Pointers and memory addresses. Parameter Passing revisited. Memory allocation lifetime and memory leaks. Pointers and arrays. String handling. Part 5: Persistent Storage  Files, file pointers and file objects. Reading and writing methods. File manipulation. Part 6: Combining Data and Algorithms - Elements of Object-Orientation. Introducing a new way of looking at programming. Key features of object-orientation. Classes, objects, properties and methods.  Objects and memory management

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AELE221 - Circuit Analysis: Spring 2011
The main objective of this course is to introduce engineering students to Circuit Analysis and some introduction to electrical circuit's theory and analysis. An electrical circuit simulator as well as real instruments and components are used for exercising on various theorems and analysis.

Outline: Introduction to circuit theory and analysis. Electrical quantities and units. Analysis of DC
and AC circuits using Ohms law, Kirchoff's law, Theveni's theorem, Norton's theorem, mesh and nodal analysis.
Capacitive and inductive circuit transient and steady state analysis. SPICE simulations using a variety of
popular commercial software packages. Experimental verification of circuit theorems.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy)) to get enrolled.

 

ACSC104 - Computer Programming for Engineers in VB .net : Fall 2010, Spring 2011
The main objective of this undergraduate course is to identify the components that constitute a computer system both in terms of hardware and software and effectively use core operations of a modern operating system (MS Windows XP). Distinguish the advantages of programming under a visual environment (VB.NET), use core visual components and recognise the basis of Object-Oriented logic within such environments. Demonstrate the ability to express elementary algorithms in the syntax of an elementary programming language (VB.NET), choosing the appropriate data types and applying the correct operations and forming the necessary statements. Illustrate the ability to define and use one and multi-dimensional arrays programmatically. Analyse simple engineering problems, construct algorithms to programmatically solve them, formulate corresponding programs using selective, iterative and sequential statements and implement them through the use of visual components.

Outline: The course introduces Engineering students to the VB.NET programming language and some basic notions of data types, variables and constants, and more importantly the language syntax. The role of the programming language as a tool for solving simple and complex mathematical and engineering problems is emphasized through practical work carried out.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 


Fall 2010 - Frederick University Cyprus 

ACSC104 - Computer Programming for Engineers in VB .net : Fall 2010
The main objective of this undergraduate course is to identify the components that constitute a computer system both in terms of hardware and software and effectively use core operations of a modern operating system (MS Windows XP).Distinguish the advantages of programming under a visual environment (VB.NET), use core visual components and recognise the basis of Object-Oriented logic within such environments. Demonstrate the ability to express elementary algorithms in the syntax of an elementary programming language (VB.NET), choosing the appropriate data types and applying the correct operations and forming the necessary statements. Illustrate the ability to define and use one and multi-dimensional arrays programmatically. Analyse simple engineering problems, construct algorithms to programmatically solve them, formulate corresponding programs using selective, iterative and sequential statements and implement them through the use of visual components.

Outline: The course introduces Engineering students to the VB.NET programming language and some basic notions of data types, variables and constants, and more importantly the language syntax. The role of the programming language as a tool for solving simple and complex mathematical and engineering problems is emphasized through practical work carried out.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC382 - Object Oriented Programming in Java: Fall 2010
The main objective of this course is to introduce students to object-oriented programming concepts and practical programming in Java. By the end of this course students should be able to design and implement elementary group projects in Java create reusable and extensible code based on object-oriented concepts.

Outline:   What is object-orientation? Reuse, extensibility, reliability, collaboration. Java programming language – JDK installation and use. IDEs. Imperative programming paradigm: data, functions, types, statements, control structures and data structures in Java. Classes and Objects: Abstraction. Instances, state and behaviour. Constructors. Objects communication by messages. Packages: Modularity. Reusable components. Namespace. Standard Java packages. Encapsulation: Information hiding. Data and method access types. Inheritance: Super class and generalization relationship. Abstract class. Interface. Polymorphism: Extensibility, based on building class hierarchy. Exception handling: Errors and exceptions. Exception handling in Java. I/O and Serialization: java.io package, streams and serialization. Event handling and User interface programming: java.awt and swing for user interface programming. Multithreaded programming: Threads. Timer and TimerTask classes. Synchronizing threads.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AEEE195 - Programming Principles in C  : Fall 2010
The main objective of this undergraduate course is to introduce Computer Science and Engineering students to the C programming language and some basic notions of data types, variables and constants, and more importantly the language syntax. The role of the C programming language as a tool for solving simple and complex mathematical and engineering problems is emphasised through practical work carried out.

Outline: Comprehend the basic concept and process of programming. Understand the constructs of an imperative programming language such as C and being able to comprehend programs of medium size and complexity. Be capable of designing algorithms and implementing them for solving simple problems. Understand imperative and functional programming as the mathematical vehicle toward programming. Designing and using fundamental algorithms for solving simple mathematical problems. Comprehend the methodology of structures, algorithm design and problem solving.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACOE423 - Interconnection Networks: Fall 2010
Familiarize with the broad field of interconnection computer networks. Be able to understand the design of high performance networks and parallel processing systems. Familiarize with different kind of networks and switching techniques. Be able to understand different routing protocols and techniques. Study basic network problems and conditions, as well as how to deal with them. Become familiar with the current network technology and architecture.

Outline:  Introduction in the design of high performance networks employed in high speed networks and parallel processing systems.  Shared medium networks, crossbar networks, multistage interconnection networks, and hybrid networks.  Basic switching techniques - circuit switching, packet switching, Virtual cut-through switching, wormhole switching, and hybrid switching techniques.  Deadlock, Livelock and Starvation.  Routing algorithms, taxonomy, deterministic routing, adaptive routing, resource allocation mechanisms, and fault tolerant routing. Overview of current technology: Gigabit Ethernet, Infiniband, PCI Express, Myrinet.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.


Spring 2010 - Frederick University Cyprus 

ACOE322 - Local and Metropolitan Area Networks: Spring 2010
The main objective of this undergraduate course is to familiarize students with the broad field of data communications and networking, understand the most important protocol in MAC and LLC layers. Study basic network components, models and architectures (e.g. LAN, MAN, WAN). Familiarize with different LAN types (Ethernet, Token ring, FDDI, Wireless LANs), Metropolitan and Wide Area Networks as well as internetworking devices. Understand the need of layering (OSI and TCP/IP) and addressing, as well as the operation of upper layers (Transport, Session, Presentation and Application). Familiarize with routing algorithms and network security.

Outline: Introduction to Local and Metropolitan Area Networks (principles of data transmission, transmission media, basic network components, models and architectures), Medium Access Control and Logical Link Control, (Basic LAN architecture and protocols, Physical layer (topology and media), MAC and LLC layers Medium Access Control (MAC) layer, Logical Link Control (LLC) layer), LAN types (Ethernet (IEEE 802.3), Token Ring (IEEE 802.5), Fiber Distributed Data Interface (FDDI), Wireless LANs (IEEE 802.11),  Metropolitan and Wide Area Networks (Internetworking devices, Metropolitan Area Networks, Wide Area Networks (ISDN and Broadband ISDN, X.25, Frame Relay, ATM, Congestion & Quality of Service)), TCP/IP Protocol suite and IP addressing, (the relation of TCP/IP with internet and OSI model, Internet layer, Transport layer and UDP, Application layer), Routing (The network layer, Routing algorithms, Broadcasting), Upper OSI layers (Transport layer, Session layer, Presentation layer, Application layer), Network Security (Threads, Cryptography, Encryption and decryption, Authentication, Firewalls.)

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC183  - Programming Principles II in C++: Spring 2010
The main objective of this undergraduate course is to provide students with a deep understanding of core programming practices used in imperative programming. This includes the capability of designing and implementing algorithms, understanding the concepts of modularity and being able to design a small software solution consisting of several components. Students completing the module should be capable of constructing medium size programs. In addition, students will also be introduced to the basic principles of object oriented programming although the concepts of object orientation will not be investigated in detail. This module uses the C++ programming language.

Outline: Review of Programming Principles (Data and Algorithms. Variables, operators and statements. Sequential, Selective and iterative processes. Understanding complex code. Interacting with input and output), Modular Program Development ( Tackling larger programming tasks. Dividing the problem into parts. Designing software solutions, Understanding functions. Function declarations, definition and calls. Program interaction using functions, Parameter Passing. Passing by value and by reference. Variable scope, from design to implementation. Approaches available, pseudo-code usage, Breaking programs into units. Use of header files and custom-made libraries), Using Composite Data Types (Limitations of built-in data types, Review of mechanisms for constructing composite data types. Arrays and Structures, Building complex data types, Handling composite types. Efficiency considerations), Pointers and Dynamic Data (Understanding Pointers and memory addresses, Parameter Passing revisited, Memory allocation lifetime and memory leaks, Pointers and arrays. String handling),  Persistent Storage (Files, file pointers and file objects, Reading and writing methods, File manipulation), Combining Data and Algorithms - Elements of Object-Orientation (Introducing a new way of looking at programming, Key features of object-orientation. Classes, objects, properties and methods, Objects and memory management).

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACOE251/AEEC335  - Assembly Programming Language (Microprocessor 8086): Spring 2010
The main objective of this undergraduate course is to introduce students to the assembly language programming. By the end of the course students should be able to write, test and debug programs in assembly language and relate assembly language with other high level languages.

Outline: Introduction, Representation of numbers and characters, Microcomputer systems, organization of the IBM personal computers, introduction to IBM PC assembly language, Multiplication and division instructions, the processor status and the flags register, flow control instructions, arrays and addressing modes, the stack and introduction to procedures,  programming in assembly.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

AEEE220  - Project (Technical/Professional Report Writing): Spring 2010
The main objective of this undergraduate course is to guide students into writing different reports by following appropriate styles. Also the subject provides information to students to decide and use different methodologies that will enable them to find and combine information on a particular area. Furthermore students will be able to develop different technical reports and academic papers of professional standards.

Outline: Prepare and present project proposals. Acquire extract and synthesize information. Software for word processing, creating graphs, and managing projects. Develop skills for finding information and information evaluation through the Internet, and the library and encourage the use of books, periodicals, and academic papers. Evaluate information accumulated for validity. Construct and synthesize and referencing and acknowledging information sources. Write formal reports, writing styles, organization and structure of a project report.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 


Fall 2009 - Frederick University Cyprus

ACOE312  - Data Communications and Computer Networks: Fall 2009
The main objective of this undergraduate course is to familiarize students with the broad field of data communications and computer networks, to be able to understand the most important protocol architectures, OSI and TCP/IP models and their associated protocols. Familiarize with the principles of data transmission and the need for: encoding, multiplexing, switching and error control and to be able to understand different transmission media, such as twisted pair, coaxial cable and optical fibre. Study basic network components, models and architectures (e.g. LAN, MAN, WAN) and become familiar with the technology and architecture of circuit and packet switching.

Outline: Introduction to Data Communications and Computer Networking (Communications model), Protocol Architecture (OSI and TCP/IP models, TCP/IP protocol architecture), Data transmission (Concepts and terminology, Analogue and digital data transmission, Transmission impairments, Channel capacity), Transmission Media (Guided transmission, Wireless transmission and propagation, Signal encoding techniques (Digital data, digital signals (RZ, NRZ-L, NRZI, Bipolar-AMI, Pseudoternary, Manchester, Differential Manchester encoding schemes), Modulation rate, Digital data, analog signals (ASK, FSK, BFSK, MFSK, PSK, DPSK, QPSK, QAM)), Digital Data Communication Techniques (Digital data communication techniques, Asynchronous and synchronous transmission, Types of error, Error detection, Line configurations, Interfacing (USB, RS-232, Firewire)), Data link control, Flow and error control, Multiplexing (Frequency Division Multiplexing, Synchronous Time Division Multiplexing, Statistical Time Division Multiplexing, Asymmetric Digital Subscriber Line), Circuit and packet switching (Circuit switching and packet switching, Networks, concepts and principles, X.25)

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACOE251/AEEC335  - Assembly Programming Language (Microprocessor 8086): Fall 2009
The main objective of this undergraduate course is to introduce students to the assembly language programming. By the end of the course students should be able to write, test and debug programs in assembly language and relate assembly language with other high level languages.

Outline: Introduction, Representation of numbers and characters, Microcomputer systems, organization of the IBM personal computers, introduction to IBM PC assembly language, Multiplication and division instructions, the processor status and the flags register, flow control instructions, arrays and addressing modes, the stack and introduction to procedures,  programming in assembly.

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC103 - Computer Application Packages: Fall 2009
The main objective of this undergraduate course is to help students to identify and describe the main elements of a computer system including peripherals and networking devices. Organise, share and transfer files using a stand alone system or in a networked environment. To have the ability to communicate through emails and send electronic documents and/or spreadsheets, as attachments, using the appropriate technology and  to use the World Wide Web to find information using available online search engines, and navigate through web pages effectively, having in mind the security issues related virus attacks from the Internet. To have the capacity to write and manipulate high-quality electronic documents using the Microsoft Word and to write formulas and functions, create tables and charts, manipulate and analyze data in electronic spreadsheets using the Microsoft Excel.

Outline: Introduction to Computer / Information Technology (basic concepts and terms related to computer / information technology, hardware and software concepts, data processing cycle, viruses and how they can be addressed, ergonomic rules and conditions of health and safety when working with computers), Windows Operating System ( computer environment, and desktop issues, apply computer files management as well as print management), Word Processor - Microsoft Word (use the application (open/close the application, create new and save a document, use help functions), adjust the settings of the application, implement the main operations of the application such as insert, select, and edit data, as well as duplicate, move, delete, search and replace text, apply formatting issues and specifically text, paragraph and document formatting, apply tables, pictures, images, and charts management), Spreadsheets - Microsoft Excel (use the application (open/close the application, create new and save a spreadsheet, use help functions), adjust the settings of the application, implement the main operations of the application related to the cells, such as insert data; select cells; manage rows and columns; edit, duplicate, move, delete, search, replace, and sort data, handle worksheets (i.e. worksheets setup), how to use formulas and functions (arithmetic formulas, call referencing, and functions), apply formatting issues (numbers, dates, contents, alignment and borders), charts and graphs development and printing issues), Presentation - Microsoft PowerPoint ( use the application (open/close the application, create new and save a PowerPoint, use help functions), adjust the settings of the application, implement the main operations of the application such as insert new slide, slide design, layout and background, slide transition, Master slide, action buttons and settings, custom animation, slide show, insert picture and chart.)

Note: An enrolment key is required for downloading the course's lecture notes, material, assignments, revision exercises. Please contact me at (com.ca@frederick.ac.cy) to get enrolled.

 

ACSC100 - Word Processing (in Greek): Fall 2009
Αναμενόμενες ικανότητες και δεξιότητες που θα αναπτυχθούν από τους φοιτητές συμπεριλαμβάνουν να προσδιορίζει και αναγνωρίζει τα μέρη του Ηλεκτρονικού Υπολογιστή. Ορίζει και επεξηγεί τις βασικές λειτουργίες και χρήσεις του Ηλεκτρονικού Υπολογιστή. Να ορίζει και κατατάσσει το λογισμικό και υλικό του Ηλεκτρονικού Υπολογιστή. Επιδεικνύει δεξιότητα στη χρήση του Διαδικτύου, χρησιμοποιεί το ηλεκτρονικό ταχυδρομίο επισυνάπτοντας αρχεία. Να αναγνωρίζει τους διάφορους κινδύνους που διατρέχει ο Ηλεκτρονικός Υπολογιστής καθώς και τρόπους αντιμετώπισεις τους. Να εφαρμόζει τις θεωρητικές του γνώσεις ώστε να γράφει και να επεξεργάζεται κείμενα χρησιμοποιώντας το πρόγραμμα Microsoft Word. Να εφαρμόζει τις θεωρητικές του γνώσεις ώστε να γράφει απλές εξισώσεις και συναρτήσεις, να δημιουργεί πίνακες και γραφικές παραστασεις, να επεξεργάζεται δεδομενα σε λογιστκά φύλλα χρησιμοποιώντας το πρόγραμμα Microsoft Excel.

Outline: Βασικές έννοιες του Ηλεκτρονικού Υπολογιστή (Περιφερειακά, κυρία μνήμη, μητρική κάρτα, επεξεργαστής, λογισμικό, υλικό, μονάδες εισόδου, μονάδες εξόδου, σκληρός δίσκος, καθολικός σειριακός δίαυλος. Λογισμικό (Λειτουργικά συστήματα, προγράμματα εφαρμογών και τα χαρακτηριστικά τους.Γραφικό περιβάλλον εργασίας. Αρχεία, φακέλλοι και εικονίδια), Δίκτυα πληροφοριών (Δίκτυο και Δίκτυο Ευρείας Περιοχής.Σύνδεση υπολογιστή στο δίκτυο. Τοπολογίες δικτύων (Bus,Ring,Star και Tree). Διαδίκτυο και Παγκόσμιος Ιστός. Φυλλομετρητές και Μηχανές Αναζήτησης. Πληροφορική (Χρήσεις Ηλεκτρονικού Υπολογιστή. Ηλεκτρονικος Υπολογιστής στην εργασία, επιχειρήσεις, δημόσιο, δημόσια υγεία, εκπαίδευση. Ηλεκτρονικός κόσμος (ηλεκτρονικό ταχυδρομίο, ηλεκτρονικό εμπόριο). Εργονομία), Υπολογιστές και Ασφάλεια (Προστασία δεδομένων ηλεκτρονικού υπολογιστή. Προσωπική μυστικότητα. Αποθήκευση δεδομένων. Τι είναι ιός και πως τον αντιμετωπίζουμε;  Τρόποι Εισαγωγής Ιών στον Η/Υ. Προγράμματα αντι-ιών), Διαχείριση αρχείων και φακέλλων (Επιφάνεια εργασίας. Τερματισμός μη ανταποκρινόμενης εφαρμογής. Μορφοποίηση (format) δισκέτας. Εγκατάσταση λογισμικού. Αφαίρεση (απεγκατάσταση) λογισμικού. Αλλαγή ώρας, ημερομηνίας και γλώσσας. Χειρισμός εκτυπωτή. Συμπίεση Αρχείου, Αρχείων και Φακέλων. Επεξεργασία και οργάνωση αρχείων και φακέλλων), Επεξεργασία κειμένων (Εισαγωγή στην Microsoft Word (Μενού συντόμευσης, γραμμές εργασίας, μορφοποίησης, σχεδιασμού.) Δημιουργία, άνοιγμα, αποθήκευση, μετονομασία κλείσιμο αρχείου. Επεξεργασία κειμένου (επιλογή, διαγραφή, μορφοποίηση) Μορφορποίηση παραγράφου. Στήλες, αρχιγράμματα, στύλ κειμένου. Δημιουργία και μορφοποίηση λίστας. Εισαγωγη και επεξεργασία πινάκων. Εισαγωγή και επεξεργασία εικόνων και σχημάτων. Αυτόματη διόρθωση, ορθογραφία και γραμματική. Περιθώρια κειμένου. Προσανατολισμός, αρίθμηση και μέγεθος σελιδών. Κεφαλίδα και υποσέλιδο.), Επεξεργασία λογιστικών φύλλων (Εισαγωγή στην Microsoft Excel (Το περιβάλλον εργασίας, φυλλο και βιβλίο εργασίας, κελιά). Εισαγωγή στοιχείων (Αυτόματη καταχώρηση και συμπλήρωση – Λίστες, αντιγραφή και μετακίνηση στοιχείων, επιλογή στηλών, γραμμών και φύλλων εργασίας, αντιγραφή, επικόλληση, αποκοπή, διαγραφή και εισαγωγή στήλων και γραμμών.) Διαμόρφωση και μορφοποίηση κελιών, στήλων, γραμμών και σελίδας. Άνοιγμα, αποθήκευση και εκτύπωση πινάκων και γραφημάτων.  Εκτέλεση υπολογισμών. Εμπλουτισμός φύλλου εργασίας. Κατασκευή και ανάληση διάφορων γραφημάτων (π.χ. πίτας.) Ταξινόμηση, αυτόματη φόρμα, φιλτράρισμα δεδομένων. Μακροεντολές.).

 


Fall 2009- University of Cyprus

EPL342 - Databases: Fall 2009
The main objective of this undergraduate course is to provide an in-depth understanding of concepts related to the design and utilization of a database management system. Students will get a deeper understanding by implementing these concepts in a commercial database management system. The course is organized in four parts: i) Introduction and Conceptual Modeling using the ER Model, ii) Relational Model and Relational Algebra, iii) Structured Query Language III, and iv) Database Design Theory and Methodology

Outline: Introduction: Databases and Database Users, Database System Concepts and Architecture, Data Modelling Using the Entity-Relationship (ER) Model, The Enhanced Entity-Relationship (EER) Model, The Relational Data Model and Relational Database Constraints, Relational Algebra, Relational Database Design by ER and EER-to-Relational Mapping, SQL-99: Schema Definition, Constraints, Queries, and Views, Introduction to SQL Programming Techniques, Functional Dependencies and Normalization for Relational Databases, Relational Database Design Algorithms and Further Dependencies, Practical Database Design Methodology, Introduction to Data Storage, Indexing, Query Processing, and Physical Design