CSC 121 – Programming and Problem Solving
An introduction to computer science and structured programming, including algorithmic thinking, using control structures, essential data structures, creating functions, recursion, and object-oriented programming. This course has recently been converted to a standards based course broken into modules. Students have repeated tries to complete assignments until they demonstrate competency on material before moving to the next topics.
Satisfies the Mathematical and Quantitative Thought requirement. Satisfies a requirement in the Data Science interdisciplinary minor.
CSC 220 – Discrete Structures
An introduction to proof techniques and discrete mathematics, with a focus on topics relevant to computer science, and an introduction to functional programming. Topics include logic, sets, functions, equivalence relations, algorithm analysis, methods of proof, essential combinatorics, recurrence relations, and discrete probability, as well as the essentials of functional programming. Additional topics may be selected from graph theory, number theory, or automata theory. This course prepares students for advanced work in both computer science and mathematics.
Satisfies the Mathematical and Quantitative Thought requirement. Counts towards the Mathematics major and minor. Counts towards the Computer Science major and minor.
CSC 221 – Data Structures
A study of abstract data types, including lists, stacks, queues, and search tables, and their supporting data structures, including arrays, linked lists, binary search trees, and hash tables. Implications of the choice of data structure on the efficiency of the implementation of an algorithm. Efficient methods of sorting and searching.
Counts towards the Mathematics major and minor. Counts towards the Computer Science major and minor. Counts as an elective in the Data Science interdisciplinary minor. Satisfies the Mathematical and Quantitative Thought requirement.
CSC 361 – Computer Graphics
Overview of 2D and 3D computer graphics techniques: line drawing routines, antialiasing, 3D object representation, culling, z-buffers, a-buffers, illumination and shading models, ray tracing, color models, the graphics pipeline, levels of detail, and image processing. Emphasis on understanding and implementing computer graphics algorithms and creating computer generated images using OpenGL and C++.
Counts towards the Computer Science major and minor.
CSC 362 – Data Visualization
An introduction to the theory and application of graphical representations of data. Topics include: the human visual system, low-level vision processing, attentive vs. preattentive processes, color vision and color map design, interaction, space perception, and visualization design.
As part of the Fostering Inclusivity and Respect in Science Together HHMI grant, I will redesign Data Visualization (CSC362) to satisfy the Justice, Equality, and Community (JEC) graduation requirement by developing assignments that empower students to connect data visualization skills to real-world issues of justice, equality, and community. Additionally, class activities will incorporate inclusive pedagogical practices to promote community, discussion, and understanding.
CSC 381 – Virtual Reality Seminar