Computer Science Track
CSCI 122 – Introduction to Discrete Structures
This course introduces the fundamentals of discrete structures that are essential for computer science and related disciplines such as data science. It follows the curriculum guidelines on discrete structures developed by the governing professional organizations ACM and IEEE. It serves students who have taken college-level introductory courses in computing and mathematics. Following the principles in our adopted textbook, we aim to achieve breadth rather than depth, to teach mathematical reasoning as well as concepts and skills, and to help students learn to think and prove formally and precisely.
Prerequisites: CSCI 120 and MATH 119 or MATH 120 or MATH 124
Course Designation/Attribute: FA
Anticipated Terms Offered: varies.
CSCI 160 – Algorithms
Emphasizes how the design of algorithms is supported by advanced data structures such as sets, trees, and graphs. Applications to searching and sorting are discussed. Topics include: design and analysis of algorithms, general trees, balanced trees, priority queues, hash tables, merge-sort, quick-sort, radix sorting and searching, and elementary graph algorithms. Programming projects are assigned for the laboratory component.
Prerequisites: Prerequisites for this course require a grade of C- or better in (CSCI 121 or CSCI 124 ) and (MATH 114 or CSCI 122)
Anticipated Terms Offered: Offered every year
CSCI 210 – Artificial Intelligence
Focuses on the fundamental ideas of artificial intelligence. Topics include knowledge representation schemes, problem representation through explicit models, search techniques, analogy and pattern recognition, natural language parsing, planning, and machine learning. Students implement the above ideas through computer programs written in Python. Language instruction is provided in Python (and/or Prolog), although no prior knowledge of these programming languages is assumed.
Prerequisites: Prerequisites for this course require a grade of C- or better in CSCI 160.
Anticipated Terms Offered: Offered Periodically
CSCI 220 – Database Management And Systems Design
An advanced course on the realities of database technology. Emphasizes the goals of database management: performance, data integrity, future compatibility and versatility. The concept of the data model is examined and a specific database is discussed. Concentrates on database design and specification.
Prerequisites: CSCI 160(min grade of C- required for prereq)
Anticipated Terms Offered: Offered Periodically
CSCI 250 – Software Engineering
Students consider the life cycle of large software projects, beginning with the elicitation and definition of users’ requirements and continuing through software design, documentation, coding, testing and maintenance. Topics include: modularity, coupling, cohesion, transformational and transactional structures and testing strategies. Working in teams, students gain practical experience developing software to solve concrete problems. Prerequisites for this course require a grade of C- or better.
Prerequisites: Prerequisites for this course require a grade of C- or better in CSCI 160 or CSCI 170.
Course Designation/Attribute: POP
Anticipated Terms Offered: Offered Periodically
CSCI 255 – Design and Analysis of Algorithms
This course will provide a rigorous introduction to the design and analysis of algorithms. It covers advanced data structures and algorithms, design techniques such as divide-and-conquer, dynamic programming, greedy algorithms, complete search and reduction, algorithm analysis including correctness proof, running time and memory space analysis, as well as tractability issues such as NP-Completeness. Additional topics may include randomized algorithms and approximation algorithms.
Prerequisites: CSCI 160, CSCI 180 and MATH 125 a grade of C- or better
Anticipated Terms Offered: Offered periodically
CSCI 262 – Computer Vision
This course studies the fundamentals of computer vision and its application to interdisciplinary problems. Students learn about computer vision techniques to create computer systems that analyze images automatically and determine what the computer “sees”. The computer vision is then applied to problems in Human-Computer Interaction, for example, to create new interfaces for human users, or in biology or remote sensing for geographic information systems. Students investigate research methods and apply them to creating video-based interactive systems. Students gain practical experience designing, implementing, and testing a project.
Prerequisites: C- or better in CSCI 160 Algorithms
Course Designation/Attribute: POP
Anticipated Terms Offered: Offered Periodically
CSCI 265 – Robotics and Intelligent Systems
Embodied Situated Agents interact continuously with their environment through a Sense-Think-Act cycle.Advancements in electronics,embedded computing, and access to networks engender increasingly sophisticated processes and computations endowing them with the ability to sense, interpret, and act upon the content of their environment.From traditional robots to Internet of Things,growth in the volume of data and computational power has enabled increasingly data-driven approaches facilitating algorithms for autonomous operation.Beginning with an introduction to considerations for robot mechanism, sensor, actuator, hardware, and software, this course covers computational approaches, tools, models and methods that untimately employ data for the enablement of autonomous decisionmaking.Course concepts will be reinforced on a robot platform through an increasingly sophisticated series of laboratory experiments.Students should be comfortable with experimentation,interested in reduction-to-practice of theoretical concepts, and have good programming and general problem solving skills.
Prerequisites: Prerequisites for this course require a grade of C- or better. Algorithms (CSCI 160) and familiarity with matrix algebra (MATH 130), or instructor’s permission.
Anticipated Terms Offered: Offered Periodically
CSCI 268 – Internet of Things
Internet of things (IoT) concerns the integration of people, processes, and technology with
connectable devices and sensors to enable impactful applications including remote monitoring,
status, manipulation, and evaluation of trends. Advancements in miniaturization and the
proliferation of low-cost network connected devices, sensors, and machines has seen the
expansion of impactful Internet of Things (IoT) applications that have transformed a variety of
domain areas from inventory control and manufacturing to transportation. Consumer and
business driven applications lead IoT applications due to the monetization of efficiencies afforded
by the agility of data-driven business decisions. IoT presents significant opportunity for positive
impact on quality of life and social good.
Prerequisites: CSCI 140
Anticipated Terms Offered: varies
CSCI 270 – Theory of Computation
Studies the nature and formal models of computation (by computers), its power and limitation (computability versus uncomputability), the computational complexity of various problems and the applications in logic and computer science. Turing machines, general recursive functions and other standard models of computation are introduced. Other aspects of recursion theory, such as unsolvable problems and recursively enumerable languages, are introduced. We also address the more practical question, “What is an efficient program?” in an introduction to modern complexity theory.
Prerequisites: Prerequisites for this course require a grade of C- or better. CSCI 180.
Anticipated Terms Offered: Offered Periodically

