Software for Communication Systems

Course Description

Web programming languages (e.g., HTML5, Java Script, PHP, CSS). Asynchronous and real-time web, Web scalabity and quality of service, REST architectural style, RESTful API design, HTTP, AJAX, and websocket protocol, Semantic web, Microservices. Port and socket, Socket application programming interface (API). User Datagram Protocol (UDP) server and client. Transmission Control Protocol (TCP) server and client. Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (FTP). Case studies focused on Java network programming and network programming in Python. Design of core DBMS functions. Relational Database design. Application programming interfaces for relational databases, object-relational mappers. SQL (data definition, query formulation, constraints, integrity), selections, projections, select-project-join, aggregates and group-by.

Learning Outcomes

  1. explain the principles of how the asynchronous Web works in real time
  2. analyze the principles of building a RESTful API Web system
  3. analyze the applicability of UDP and TCP protocols to design particular types of applications
  4. explain the basic functions of the DMBS system and the principles of relational database design
  5. analyze application programming interfaces for relational database operations in different programming languages
  6. analyze the computer complexity and runtime of different queries in the SQL programming language

Forms of Teaching

Lectures

The classes are organized in two blocks: The first block comprises 7 classes and a midterm exam, while the second comprises 6 classes and a final exam. this makes in total 15 weeks with 2 hours per week.

Laboratory

Students need to resolve independently practical tasks for laboratory exercises.

Week by Week Schedule

  1. Web programming languages (e.g., HTML5, Java Script, PHP, CSS), Web platform constraints, Web architectures and protocols
  2. Web standards, Human and programmable web, Software as a service (SaaS)
  3. Asynchronous and real-time web, Web scalabity and quality of service, REST architectural style
  4. RESTful API design, HTTP, AJAX, and websocket protocol, Semantic web, Microservices
  5. Port and socket; Socket application programming interface (API); Name and address, User Datagram Protocol (UDP) server and client; Command line arguments parsing; Program testing; Application protocols based on UDP
  6. Transmission Control Protocol (TCP) server and client; Concurrency; Application protocols based on TCP; Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (FTP); Simple HTTP server, Socket options; Raw socket, Daemons and super-server "inetd", I/O multiplexing; Threading, Broadcast and multicast addressing and applications
  7. Application protocols based on Stream Control Transmission Protocol (SCTP), Security issues and programming guidelines, Case studies focused on Java network programming and network programming in Python
  8. Midterm exam
  9. Approaches to and evolution of database systems, Components of database systems, Design of core DBMS functions (e.g., query mechanisms, transaction management, buffer management, access methods), Database architecture and data independence, Systems supporting structured and/or stream content, Security in database systems
  10. Principles of data modeling, Conceptual models (e.g., entity-relationship, UML diagrams), Spreadsheet models, Relational data models, Dimensional model, Key value, graph, column family, document, Object-oriented models, Semi-structured data model (expressed using XML, XML Schema, JSON), Modelling spatial and temporal data, Data modeling for Semantic Web (RDF, OWL)
  11. Mapping conceptual schema to a relational schema, Entity and referential integrity, Relational algebra and relational calculus, Relational Database design, Functional dependency
  12. Decomposition of a schema; Lossless-join and dependency-preservation properties of a decomposition, Candidate keys, superkeys, Normal forms, Storage and retrieval of text in relational database, Application programming interfaces for relational databases, Object-relational mappers
  13. SQL (data definition, query formulation, update sublanguage, constraints, integrity), Selections, Projections, Select-project-join, Aggregates and group-by
  14. Subqueries, Triggers, Stored procedures, Window functions, recursion, pivoting
  15. Final exam

Study Programmes

University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses (2. semester)
[FER3-HR] Communication and Space Technologies - profile
Core-elective courses (2. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Computer Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Computer Science - profile
Elective Courses (2. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses (2. semester)
[FER3-HR] Data Science - profile
Elective Courses (2. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses (2. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Electronics - profile
Elective Courses (2. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses (2. semester)
[FER3-HR] Network Science - profile
Elective Courses (2. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses (2. semester)

Literature

(.), L. Richardson, S. Ruby (2007.), RESTful Web Services, O'Reilly Media,
(.), M. Masse (2011.), REST API Design Rulebook, O'Reilly Media,
(.), Elliotte Rusty Harold (2013), Java Network Programming, O'Reilly Media; Fourth Edition edition,
(.), Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom (2008), Database Systems: The Complete Book, Pearson,

Associate Lecturers

Laboratory exercises

For students

General

ID 222729
  Summer semester
5 ECTS
L2 English Level
L1 e-Learning
30 Lectures
0 Seminar
0 Exercises
26 Laboratory exercises
0 Project laboratory

Grading System

Excellent
Very Good
Good
Acceptable