Your table is too wide, and you must introduce line breaks using p-columns. It is better to reduce the font size for the whole table, avoid \adjustbox
because it distorts the font. See example 2.
A better solution is to use tabulary and combine ordinary LR-column and tabulary's C
column. tabulary is able to calculate the column space correctly, as you will see from example 1.
Of cause, if you have multiple similar tabulars, you may be better of using fixed width columns so all tabulars look similar.
Example 1 - tabulary
\documentclass[12pt]{article}
\usepackage{tabulary, ragged2e}
\setlength{\extrarowheight}{2pt}
\begin{document}
\begin{table}[!ht]
\centering
\footnotesize
\begin{tabulary}{\linewidth}{|*{2}{l|}c|*{2}{C|}} \hline
\textbf{Course Title}
& \textbf{Instructor}
& \textbf{Credit}
& \textbf{Teaching hours}
& \textbf{Pass grade} \\ \hline
Programming Methodologies &
Prof. Alan Turing &
9 &
72 &
28/30 \\ \hline
\multicolumn{5}{|l|}{\textbf{Course~Content} } \\ \hline
\multicolumn{5}{|>{\RaggedRight\arraybackslash}p{\dimexpr \linewidth - 2\tabcolsep - 2\arrayrulewidth}|}{\emph{Object-oriented techniques for software construction}: design principles and language features in order to achieve extendibility, reusability and compatibility. Classes, Encapsulation and Information Hiding. \newline
\emph{UML (Unified Modeling Language)}: the class diagram for analysis, design and documentation.~Inheritance. Object composition and delegation. Abstract classes. Classes as Types. Polymorphism by subtyping and Genericity.\newline
\emph{Object-oriented Programming in Java}: Using JUnit for automated tests. Design principles and clean code. Design Patterns.} \\ \hline
\end{tabulary}
\end{table}
\end{document}
Example 2
\documentclass[12pt]{article}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{adjustbox}
\begin{document}
\begin{table}[ht]
\centering
\footnotesize
\begin{tabular}{|p{3cm}|l|l|p{1.5cm}|l|} \hline
\textbf{Course Title}
& \textbf{Instructor}
& \textbf{Credit}
& \textbf{Teaching hours}
& \textbf{Pass grade} \\ \hline
Programming Methodologies &
Prof. Alan Turing &
9 &
72 &
28/30 \\ \hline
\multicolumn{5}{|l|}{\textbf{Course~Content} } \\ \hline
\multicolumn{5}{|p{\dimexpr \linewidth - 2\tabcolsep - 2\arrayrulewidth}|}{Object-oriented techniques for software construction: design principles and language features in order to achieve extendibility, reusability and compatibility. Classes, Encapsulation and Information Hiding. UML (Unified Modeling Language): the class diagram for analysis, design and documentation.~Inheritance. Object composition and delegation. Abstract classes. Classes as Types. Polymorphism by subtyping and Genericity.\\Object-oriented Programming in Java. Using JUnit for automated tests. Design principles and clean code. Design Patterns.\end{tabular}} \\ \hline
\end{tabular}
\end{table}
\end{document}