This course comprehensively explores three fundamental subfields of artificial intelligence: optimization, machine learning, and natural language processing.
Credit Hours: 3 lecture hours, twice a week (1.5 hours)
Prerequisite(s): CS 4660
By the end of this course, the student should expect to be able to:
Identify fundamentals of Evolutionary Algorithms.
Apply popular evolutionary algorithm variants to solve complex optimization problems.
Understand the key theory of Machine learning.
Implement machine learning models using Python libraries such as scikit-learn
Implement and train supervised and unsupervised machine learning models
Integrate optimization solutions into ML workflows.
Determine test problems and assessment metrics for optimization
Develop a substantial AI project.
Read and discuss AI research papers.
The proliferation of several programming languages in today’s technological evolution reflects the complexity of solving computation problems effectively. For this reason, learning a programming language extends beyond writing code. It involves understanding the principles and paradigms by which a program can be organized and executed. This course explores programming paradigms such as functional, concurrent/reactive, rule-based, aspect-oriented, and domain-specific programming. Students can enhance their problem-solving abilities by understanding these programming paradigms.
In this course, students will gain practical experience using programming languages such as C, Python, Kotlin, and Java to become familiar with imperative, functional, object-oriented, and concurrent programming. CS 3035 extended the knowledge and programming skills acquired in CS2013 - Programming with Data Structures and CS 2148 - Discrete Structures
Credit Hours: 2 lecture hour(s) 3 laboratory hour(s)
Prerequisite(s): CS 2013
with a grade of C or better
By the end of this course, you should expect to be able to:
Apply software programming principles to Identify, formulate, and solve complex programming problems.
Analyze problems and identify and define the computing requirements appropriate to their solutions.
Demonstrate a strong foundation in the different programming paradigms.
Demonstrate fluency in at least one programming language (i.e., C, Python, Kotlin, and Java) and acquaintance with at least three more.
In this course, we will cover the foundation of information visualization and learn how to transform data into visual representation to communicate effectively.
Throughout this course, students will learn how to design and evaluate data visualization based on the context. Also, in this course, we will determine the appropriate type of graph and apply the principles of human visual perception. We will implement custom visualization using the Python libraries: matplotlib and seaborn.
This course will cover the following topics: the value of information visualization, choosing effective visual displays (i.e., plot and chart), understanding the audience, and telling a story with data. Also, you will have the opportunity to apply the fundamentals by creating custom plots. Therefore, some experience with coding assignments successfully the assignments.
By the end of this course, the student should expect to be able to:
Understand information visualization fundamentals.
Design and evaluate visualizations.
Implement custom visualization using matplotlib and seaborn
python's packages.
Tell a story with data.