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

Laboratory

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
Audio Technologies and Electroacoustics (profile)
Free Elective Courses (2. semester)
Communication and Space Technologies (profile)
Core-elective courses (2. semester)
Computational Modelling in Engineering (profile)
Free Elective Courses (2. semester)
Computer Engineering (profile)
Free Elective Courses (2. semester)
Computer Science (profile)
Free Elective Courses (2. semester)
Control Systems and Robotics (profile)
Free Elective Courses (2. semester)
Data Science (profile)
Free Elective Courses (2. semester)
Electrical Power Engineering (profile)
Free Elective Courses (2. semester)
Electric Machines, Drives and Automation (profile)
Free Elective Courses (2. semester)
Electronic and Computer Engineering (profile)
Free Elective Courses (2. semester)
Electronics (profile)
Free Elective Courses (2. semester)
Information and Communication Engineering (profile)
Free Elective Courses (2. semester)
Network Science (profile)
Free Elective Courses (2. semester)
Software Engineering and Information Systems (profile)
Free 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,

For students

General

ID 222729
  Summer semester
5 ECTS
L3 English Level
L1 e-Learning
30 Lectures
26 Laboratory exercises