In communication networks, cognitive networks are a new type of data networks that make use of cutting edge technology from several research areas (i.e., machine learning, knowledge representation, computer network, network management) to solve some problems current networks are faced with.

Indeed, networks with a cognitive process can perceive current network conditions, plan, decide, act on those conditions, learn from the consequences of its actions, all while following end-to-end goals. The cognitive process consists in a series of cognition loops, where a cognition loop consists of sensing the environment, planning actions according to input from sensors and network policies, deciding which scenario fits best its end-to-end purpose using a reasoning engine, and finally acting on the chosen scenario(s). The system learns from the past (situations, plans, decisions, actions) and uses this knowledge to improve the decisions in the future.

The goal of this course is to provide an introduction and a broad overview of the area of cognitive networks \cite{cha18}. 
Students will conduct a project combining
cognitive network concepts with machine learning algorithms.
As part of the
course, relevant topics related to: 
(i) self-organizing and self managed networks, 
(ii) software-defined networks, 
(iii) 5G and B5G networks, 
(iv) network virtualization,
and  (v)  cloud, fog, and Internet of Things (IoT)
will be covered.
The main focus of the course is on the interconnection of
networking and machine learning and how these topics apply for design and
the management of cognitive networks.