Software Engineering

Learning Outcomes

The course’s material includes the basic principles underlying the development of software projects, the most widely used Software Life Cycle Models, as well as methodologies, techniques and tools for the systematic analysis, design, development, testing, operation and maintenance of good quality software systems within a specific timetable and budget, following the structured and object-oriented approach.

Upon successful completion of the course, the students will be in position to:

  • Explain the basic principles and techniques that constitute the model of object-oriented programming (indicatively: classes and objects, inheritance, polymorphism).
  • Design and develop programs that implement specific algorithms in the object-oriented programming language Java.
  • Test programs developed in Java in a specific integrated programming environment.
  • Explain the basic concepts, methodologies and techniques used in each phase of the software life cycle.
  • Evaluate and select the appropriate software life cycle model.
  • Draw diagrams using the UML (Unified Modeling Language) modeling software for requirements analysis, design and development of software systems.
  • Apply testing techniques for software systems testing (validation and verification).

Course Contents

  • Introduction to Software Engineering, Software Engineering Principles, Problems in the development of software projects.
  • Software life cycle models – Introduction, classification and critical assessment of their general qualitative characteristics.
  • Requirements analysis and specifications – Requirements analysis using the Structured Analysis approach
  • Software requirements models and document
  • Methods of analysis and design of object-oriented systems, Unified Modeling Language (UML)
  • Use case diagrams
  • Class and object diagrams
  • Interaction diagrams
  • State diagrams
  • Design of software systems, Architectural Design
  • Coding – Desirable features – Writing techniques and good coding practices
  • Software testing – debugging
  • Software development tools (CASE tools)
  • Applications with UML

Recommended Readings

  • “Software Engineering”, Edition: 8th, Authors: R. Pressman, B.Maxim, Editors: A. Prentza, K. Saides, Publisher: Tziola, 2018 (1st Book)
  • “Software Engineering – Theory and Practice”, Edition: 2nd, Author: S. L. Pfleeger, Publisher: Kleidarithmos Ltd, 2011 (2nd Book)
  • Notes and course slides

Signals and Systems

Learning Outcomes

The aim of the course is to familiarize students with the description of analog and digital signals and linear systems. The student will acquire knowledge of signal and digital system analysis in time and frequency domains. Understanding the theory is applied to spectral signal analysis and OFDM transmission.

 

Upon successful completion of the course the student will be able to:

  • Has become familiar with the description and processing of signals
  • Be able to obtain digital filter transfer functions and frequency response
  • Has become familiar with the application in OFDM transmission
  • Be able to create filter’s frequency response and filter output using Matlab software tool.

Course Contents

  • Spectrum of continuous energy signals, power spectral density of periodic signals, Parseval’s theorem.
  • Transfer function of linear analogue systems, bode plots, impulse response and analogue convolution.
  • Sampling theorem, spectrum of sampled signals, difference equations, discrete time convolution.
  • Z transform, Frequency response of discrete time signals and systems, Inverse-Z transform.
  • Laplace transform and inverse Laplace transform.
  • Stability of linear systems, design and analysis of a complete system, signal quantization and quantization noise, line coding and signal spectrum, matched filtering.
  • Discrete Fourier Transform (DFT), Inverse DFT, Circular convolution, Linear convolution using DFT, spectral analysis using DFT.

Recommended Readings

  • Mulgrew B., Grant P. & Thomson J. (2003): Digital Signal Processing Concepts and Applications, 2nd Edition, Palgrave Mackmillan.
  • Proakis J. & Manolakis D. (2007): Digital Signal Processing: Principles, Algorithms and Applications, 4th Edition, Prentice Hall.

Information Theory

Learning Outcomes

The aim of this course is to support the students in learning the principles, concepts and applications of Information Theory. Information theory is a discipline in applied mathematics involving the quantification of data with the goal of enabling as much data as possible to be reliably stored on a medium or communicated over a channel. The measure of information, known as information entropy, is usually expressed by the average number of bits needed for storage or communication.

Course Contents

  • Concepts of entropy and information; channel capacity; channel coding; the Shannon’s theorem; error correction codes and decoding methods.
  • Basic definitions of probabilities.
  • Source coding.
  • Channel capacity.
  • Channel coding.
  • The Shannon’s theorem.
  • Error connection codes and decoding methods.

Recommended Readings

  • Teaching Notes.
  • Thomas M. Cover & Joy A. Thomas (2006): Elements of Information Theory, Second Edition, Wiley, ISBN: 0-471-24195-4.
  • MacKay D.J.C. (2003): Information Theory, Inference, and Learning Algorithms, Cambridge University Press.

Educational Psychology

Learning Outcomes

This course is designed to promote a fundamental understanding of the various theories of learning that have been developed to help us explain how people learn, emphasizing on the effects on the learner, the learning process, and the learning situation in educational environments, especially digital ones.

On completion of the course, the students will be able:

  • to demonstrate a critical understanding of a wide range of theoretical perspectives of learning which have been developed to understand human behavior.
  • to analyze these perspectives in terms of the nature of learning in technology enhanced learning environments (TELE).
  • to show ability to match knowledge to how human learns through designing lessons/case studies etc.
  • to synthesise and create knowledge into an understanding of the implications of the learning theories for every day practice in TELE
  • to demonstrate knowledge and appreciate of social diversity in solving problems in the classroom through individual projects and assignments, and through work in groups/community classrooms.

Course Contents

  • Psychological Learning theories: i) Behavioral Learning Theories. ii) Social Cognitive Learning theories (self- efficacy & self-regulation). iii) Cognitive Learning theories and tools. iv) Social Constructivism: Vygotsky’s Theory (open-ended learning environments).
  • Neuroscience & Information Processing: information processing models, memory, perception, attention, mnemonic devices & strategies, chunking, metacognitive strategies, problem solving, critical thinking, hyperlearning, applications in TELE.
  • Social Constructivism (Vygotsky’s Zone of Proximal Development, Situated Learning, Cognitive Apprenticeship, Communities of Practices): principles, conditions, restrictions, applications in TELE.
  • Critical approaches of learning theories based on digital learning environments: learning and applications in TELE (software tools, open learning environments, communication and collaborative tools).
  • Applications in different conditions of schooling (primary-secondary), tertiary educational programs.
  • LLL programs for professional development, job training, and business settings (marketing, sales, advertising, health).

Recommended Readings

  • Elliott S, Kratochwill T, Littlefield-Cook J, Travers J. (2000). Educational Psychology: Effective Teaching, Effective Learning, Brown & Benchmark Pub.
  • Slavin R., E. (2008). Educational Psychology: Theory and Practice, 9th ed., Allyn & Bacon.
  • Snowman, J. Biehler, R. (2008). Psychology Applied to Teaching, 12th Edition, Hougton & Mifflin.
  • Woolfolk, A. (2010). Educational Psychology, 11th ed., Allyn & Bacon.
  • Roblyer M.D. (2009). Integrating Educational Technology into Teaching, 5th ed., Allyn & Bacon.
  • Mayer, R. C., Richard, E. (2007). e-Learning and the Science of Instruction: Proven Guidelines for Consumers and Designers of Multimedia Learning, Pfeiffer.
  • Reggie, K., Fox, R., Chan F. T., Tsang P. (2008). Enhancing Learning Through Technology: Research on Emerging Technologies and Pedagogies. World Scientific
  • Beetham, H., Sharpe, R. (2007). Rethinking Pedagogy for a Digital Age: Designing and Delivering E-Learning, Routledge.
  • Sawyer, R. K. (2006). The Cambridge Handbook of the Learning Sciences, Cambridge University Press.

Introduction to Telecommunications

Learning Outcomes

The course seeks to introduce the students to telecommunication systems by focusing on physical layer technologies. By concluding the course, students are able to

  • thoroughly understand the principles that govern the transmission in telecommunication systems as well as the principles of analysis and design of telecommunication systems
  • recognize the discrete functions performed in a telecommunication system
  • distinguish and explain the mathematical tools describing the functions of a telecommunication system
  • apply mathematical notations and tools in the analysis and synthesis of both existing and new analog and digital telecommunication systems

By concluding the lab sessions students are able to

  • identify and apply the acquired theoretical knowledge in real-world problems
  • use and exploit laboratory equipment for observation, measurement and comparison of real signals.

Course Contents

Introduction to signal theory (categories and elementary signals, basic signal conversions) and to telecommunication systems (categories, Linear Time Invariant systems). The concepts of impulse response, convolution, autocorrelation and cross-correlation are also introduced. Next, the representation of signals is explained in the case of digital modulation techniques by introducing the geometric signal representation (vectors in spaces, Hilbert space, bases and representation of signals using orthogonal signals, Gram-Schmidt ortho-normalization, linear systems and eigenfunctions).

Then the Fourier series theory is presented (Fourier series expansion, properties, real signals and expansion in Fourier trigonometric series, LTI system response in periodic signals, Parseval theorem for periodic signals) as well as the Fourier transformation is examined (Fourier transform for real signals, properties, Fourier transform for periodic signals, energy & power spectral densities). Subsequently, students are introduced to the concept of filters and noise (types of ideal filters – characteristics, transmission without distortions and type of distortions, white noise and noise power spectral density). Then, an extended reference is made to the application of Fourier analysis in telecommunication systems. The concept of passband signals and systems is developed by means of the Hilbert transformation, the pre-envelope and the complex envelope. Sampling theorem and Nyquist rate is also extensively discussed. Analog modulation techniques (amplitude and frequency) are presented providing the modulation and demodulation procedures and systems in time and frequency domains.

In addition, extra content (in evdoxos.ds.unipi.gr) like articles, audiovisual lectures and Internet addresses, as well as exercises for student’s practice are posted electronically. Case studies, exemplary problems and methods for solving them are presented.

Recommended Readings

  • “Introduction to Telecommunications”, Book code in www.eudoxus.gr: 68373981, Edition: 2nd edition/2017, Author: Kanatas Athanasios, ISBN: 978-960-418-745-4, Publisher: A.Tziola & Sons S.A. (1st Suggested Book)
  • “Telecommunication systems”, Book code in www.eudoxus.gr: 68369851, Edition: 4th edition/2017, Authors: Karagiannidis Georgios, Pappi Koralia, ISBN: 978-960-418-675-4, Publisher: A.Tziola & Sons S.A. (2ndSuggested Book)

Associated scientific Journals

  • ΙΕΕΕ Transactions on Communications
  • IEEE Communications Magazine
  • IEEE Communications Letters

Data Structures

Learning Outcomes

In the context of this course, the fundamental data structures are presented and analyzed, along with their usage in programming and software development. The course’s aim is to familiarize the students with the concepts of organizing data in the computer’s main memory for efficient access, the role of data structures in designing and implementing algorithms, and with scaling end computational efficiency issues, for large sets of data.

Upon successful completion of the course, the students will be in position:

  • to know and understand basic data organization concepts and access efficiency in the computer’s main memory.
  • to choose the appropriate data structures to use, in the development of software applications.
  • to evaluate the complexity of algorithms using specific data structures, with respect to the execution time and space requirements that the underlying data incur.

Course Contents

  • Introduction, course overview, complexity analysis as an evaluation tool of the performance of operations on data structures
  • Arrays
  • Stacks and Queues
  • Linked Lists, Simply Linked Lists, Doubly Linked Lists, Circular Lists
  • Simple Sorting (bubblesort, selectionsort, insertionsort)
  • Binary Trees, Binary Search Trees
  • Balanced Binary Search Trees
  • Priority Queues, Introductory Elements of Advanced Sorting.
  • Red-Black Trees, 2-3-4 Trees
  • Multiway Search Trees, B-Trees
  • Hash Tables
  • Graphs as Data Structures, Representation (adjacency matrix and list), Basic Search Algorithms (Depth-First and Breadth-First Search)
  • Recapitulation

Recommended Readings

  • R. Lafore. Data Structures and Algorithms in Java, Sams, 2002.
  • M. T. Goodrich, R. Tamassia, M. H. Goldwasser. Data Structures & Algorithms in Java, John Wiley & Sons, 2014.
  • R. Sedgewick. Algorithms in Java, Parts 1-4. Addison Wesley, 2002.