This course serves as an introduction to the basic component of information systems, hardware, software, data, people and networks. Topics covered includes computer networks and communications, systems and application software, computer hardware and its operation, the internet and the world wide web, algorithms, pseudocodes and flowchart.  After the completion of the course, students will be able to differentiate between various operating systems and application programs. They will be able to identify computer tools that can be used to assist with various common computer applications. They will also gain the fundamental understanding of the history and operation of computers, programming, and web design.

This course covers the algorithmic techniques and approaches required to handle various types of structured, semi-structured and unstructured data. The goal of the course is to teach algorithmic methods that serve as the cornerstones for handling and analyzing large datasets in a variety of formats. The course specifically covers how to pre-process big datasets, store big datasets effectively, design quick algorithms for big datasets, and evaluate the performance of designed algorithms. Algorithms for sorting, searching and matching as well as graph and streaming algorithms will be introduced. Upon completion of this course, students will have a broad knowledge of different algorithms for pre-processing, organizing, manipulating and storing different data types. Students will also be able to carry out performance analysis of each algorithm.

The course will introduce basic and fundamental programming constructs and techniques through using the C++ programming language in order to generate algorithmic solutions to problems. Upon completion of the course, students will learn an introduction to algorithms, solving problems by flowcharts and pseudo codes, header files, data types, arithmetic & logic operators, control statements (if, if/else, switch-case) and use them as inner statements, loop statements (while, do/while, for),  functions,  standard functions of programming language, random number generation and their area of use, user-defined functions, global and local variables, recursion, arrays, searching algorithms on arrays, sorting algorithms on arrays, pointers, pointer operators, using pointers with arrays and functions. In the laboratory hours, students are writing full programs or modifying existing programs for other solutions.

Digital forensics is a branch of forensic science that focuses on identifying, acquiring, processing, analyzing, and reporting on data stored electronically. The main goal of digital forensics is to extract data from the electronic evidence, process it into actionable intelligence and present the findings for prosecution. All processes utilize sound forensic techniques to ensure the findings are admissible especially in court. The course will help learn how to recover, analyze, and preserve computer and related materials in such a manner that it helps the investigation agency to present them as evidence in a court of law.

Data mining has emerged as one of the most exciting fields
in Computer Science because of the growth of computerized data collections,
which become more and more available in our modern digitalized world. Data
mining have roots in the fields of artificial intelligence, machine learning (including
classification, prediction, and clustering), statistical data analysis, data
visualization and information retrieval. By completion of this course, students
learn about different data mining methods such as classification, rule-based
learning, decision trees and association rules. Students also learn about data
selection and cleaning, machine learning techniques to “learn” about the “hidden”
patterns in data, and the reporting and visualization of the resulting