Gennaro Vessio
Teaching
Courses, thoughts for students, and a few recurring questions.
📚 Current courses
🧠 Deep Learning
M.Sc. in Data Science
Deep learning is still closer to alchemy than to chemistry—a blend of intuition, experimentation and a touch of magic. Yet it is precisely this “alchemy” that has made AI one of the most transformative technologies of our time. The course covers both theoretical foundations and practical applications of modern neural networks.
🤖 Computational Intelligence
B.Sc. in Computer Science · co-taught with Prof. Corrado Mencar
The course focuses on intelligent systems capable of adapting, learning from experience and solving complex problems. My part concentrates on the fundamentals of neural networks and the building blocks of modern machine learning.
💻 Computer Science Laboratory
B.Sc. programmes in Computer Science · Bari and Taranto
This course bridges programming theory and practical software development. It emphasises core programming skills, computational thinking and problem solving, helping students turn abstract concepts into concrete implementations.
Other teaching
Over the years I have also taught or co-taught Big Data Management and Analysis, Computational Intelligence at M.Sc. level, Formal Methods for Security, courses in Computer Science / Information Processing Systems at the School of Medicine, and Java Programming Basics at ITS Apulia Digital Maker.
I also taught a doctoral course in Deep Learning for the Ph.D. programme in Computer Science and Mathematics, and gave the doctoral seminar “Learn the art (of getting published) and put it aside” within the Scientific Research Writing series.
What Computer Science is — and is not
Where I live, there is often limited awareness of what Computer Science really is. It is frequently perceived as simply the “science of computers”, which can create misconceptions among prospective students and their families. In reality, Computer Science is fundamentally computing science.
If you enjoy programming but have little interest in theoretical foundations, computational models or experimental evaluation, a degree in Computer Science may not be the right choice for you. On the other hand, if you are eager to develop a scientific mindset, thrive in a stimulating academic environment and let curiosity guide you toward new ideas, then Computer Science might be exactly what you are looking for!
Although it is a relatively young discipline, Computer Science has reached a remarkable level of maturity. Its achievements are embedded in everyday life, and its methods increasingly intersect with those of other sciences.
Tip for first-year students. University life is very different from high school. Classes are larger, you are expected to work more independently, and the familiar rhythm of frequent assessments largely disappears. Do not fall into the “there is always time to catch up” trap. Attend lectures, keep your notes organised, study consistently rather than cramming, and actually do the exercises.
🤔 Computer Science or Computer Engineering?
Short answer: in the long run, they are essentially equivalent, and your professional trajectory depends largely on you.
Long answer: the distinction is primarily historical. The two programmes originate from different academic communities, each with its own traditions and academic culture. Their curricula largely overlap and their career opportunities are very similar, but there are differences worth highlighting.
Computer Science programmes tend to place greater emphasis on programming, programming languages and related topics. Students typically engage with programming as a subject of study in its own right, moving between theory and implementation while developing a scientific mindset centred on abstraction, formalisation and computational thinking.
Computer Engineering programmes are generally broader and often include subjects beyond programming. Programming is more often viewed as a means to an end: a tool for designing and building systems within real-world constraints. The emphasis is therefore more strongly engineering-oriented, with greater attention to integration, performance, resources and practical trade-offs.
Both paths provide a solid foundation. Success ultimately depends on curiosity, commitment and the willingness to go beyond the basics. There is still a widespread misconception outside academia that computer engineers are somehow “better” than computer scientists. This is simply not true.
🤔 Data Science or Artificial Intelligence?
Short answer: they are distinct disciplines, but Data Scientists and AI specialists can work together in highly complementary ways.
Long answer: Data Science lies at the intersection of several disciplines and focuses on extracting knowledge from data. It attracts students from Mathematics, Statistics, Economics, Computer Science and other backgrounds. Artificial Intelligence is broader: beyond machine and deep learning, it includes knowledge representation, reasoning, planning and decision-making.
Data Scientists often view algorithms as tools within the broader data lifecycle, including data quality, privacy and regulation. AI specialists more often place algorithms and models at the centre of their work, engaging more deeply with the theoretical, ethical and sometimes philosophical aspects of intelligence.
The boundaries are increasingly blurred. In practice, their greatest strength lies in complementarity.