CSCI 317A: Data IntelligenceImad Rahal
The interdisciplinary field of data mining emerged in the early 1990s as a response to the profusion of digital data emerging from numerous applications areas such as biology, chemistry, astronomy, advertising, banking and finance, retail market, stock market, and the WWW, just to name a few. The nature of this field is entirely interdisciplinary attracting experts, researchers and interested audiences from computer science, database systems, artificial intelligence, biology, agriculture, business, mathematics, statistics, and what have you, with the ultimate aim of extracting useful hidden nuggets of knowledge that could aid in decision-making processes and which would have remained unknown otherwise. Operating over huge volumes of data is an intrinsic idiosyncrasy of this young vibrant field. This course focuses on the four pillars of the field, namely, association rule mining, classification, clustering and outlier analysis. Students will learn state -of-the-art algorithms in these areas, understand the theory behind them, and observe their applications on real-life data sets drawn from numerous application areas. Students will also be exposed to related ideas from artificial intelligence/machine learning as well as useful high-performace computing tools to aid in data processing. As a field still in its infancy, new topics in data-driven intelligence emerge almost daily. Consequently, students will acquire familiarity with reading and understanding new and advanced topics in data-driven intelligence and attempt to analyze and cope with their idiosyncrasies. Students will culminate their work in this course by completing a group research project.
PREREQUISITES: CSCI 200 & 230
CSCI 317F: Parallel Computing
This course will introduce the student to the concepts of parallel computing,
including parallel architectures, runtime environments and programming models.
Students will learn about multi-core processors, attached processors
such as graphics units and networked parallel machines. They will also learn
a variety of programming models and languages, in both theory and in practice.
Programming assignments will include use of OpenMP, TBB, CUDA,
OpenCL, MPI and MapReduce.
CSCI 317D: Bioinformatics
This course provides an introduction to the field of bioinformatics. Topics will include sequences of DNA, RNA and proteins, comparing sequences, predicting sequences, predicting species; computational techniques such as substitution matrices, sequence databases, dynamic programming and bioinformatics tools. The course will have a seminar format.
CSCI 317: Systems Programming
Systems programming is the process of writing the software tools that allow applications programmers to do their work and requires an understanding of how things work under the covers. In this class, students will write programs in C on a Linux platform to explore such concepts as dynamic memory management,file I/O, parallel processes and network communication in order to gain an understanding of how to use systems concepts to solve new problems.
PREREQUISITE: CSCI 162; CSCI 310 recommended but not required.
CSCI 281: Problem Solving
Cross-listed with PHYS 281 & MATH 281
An introduction to solving complex problems in interdisciplinary topics which will be drawn from mathematics, computer science, and physics. Students will work in groups and present their results. PREREQUISITE: MATH 120 and admission to MAPCORES program or consent of instructor.