2022-2023 Catalog [ARCHIVED CATALOG]
Courses
|
|
Browse the entire list of course offerings below, or use the course filter search to view a course or selection of courses.
|
|
Computer Science |
|
-
CSCI005 HM - Introduction to Computer ScienceSee Harvey Mudd College Catalog for course description.
Offered: Every fall
Credit: 1
Course Number: CSCI005 HM |
|
|
|
-
CSCI036 CM - Foundations of Data ScienceData science is the interdisciplinary study of the tools and theory behind using data to extract knowledge. It combines ideas from statistics, computer science, and particular domains in the hard and social sciences in order to make predictions and optimal decisions. This course covers the foundations of data science including the basics of how to structure, visualize, transform, and model data. Not open to students who have completed CSCI036 PZ, ECON 122 CM , or ECON 160 CM .
Prerequisite: Introductory course in programming such as CSCI 005 HM or CSCI 040 CM
Offered: Every year
Credit: 1
Course Number: CSCI036 CM |
|
-
CSCI040 CM - Computing for the WebPractical computational problem solving by programming the Web and writing data analysis programs. Web programming covers languages (HTML, CSS, JavaScript, Python), tools, and techniques for developing interactive and dynamic web pages. In data programming students learn to write Python programs to analyze real world data found for example in science, business, and the humanities. Throughout the course, students learn many fundamental concepts vital in the study of computer science. Societal and ethical issues related to computing are also discussed. No previous programming experience assumed. Not open to students who have completed CSCI 005 HM or equivalent. Students may not earn credit for both this course and any other introductory computer science course.
Offered: Occasionally
Credit: 1
Course Number: CSCI040 CM |
|
-
CSCI046 CM - Data Structures and AlgorithmsAn introduction to abstract data types and fundamentals of algorithm analysis in Python. Topics may include: stacks, queues, trees, priority queues, graphs, recursion, sorting, searching, Big-O notation, and complexity classes. The course is a part of Computer Science sequence, but it does not count towards Computer Science major.
Prerequisite: One python-based programming course, including CSCI 005 HM , CSCI 040 CM , and CSCI 051P PO .
Offered: Every year
Credit: 1
Course Number: CSCI046 CM |
|
-
CSCI048 CM - Numerical Linear AlgebraNumerical linear algebra covers techniques of linear algebra over the real numbers including vector scaling, addition, matrix scaling, addition, multiplication, inversion, factoring, eigenvalues, eigenvectors, and singular value decompositions. Both direct methods such as Gaussian Elimination and iterative methods such as Gauss-Seidel will be introduced, with an emphasis on the computational complexity and numerical errors incurred by these operations. The course or MATH 060 CM will serve as a linear algebra prerequisite for CMC CS courses. Those planning to take higher level mathematics courses should take MATH 060 CM . Credit will not be given for both MATH 060 CM and CSCI 048.
Prerequisites: CSCI 040 CM , CSCI 005 HM , or CSCI051 (any language).
Offered: Every year
Credit: 1
Course Number: CSCI048 CM |
|
-
CSCI051 CM - Introduction to Computer ScienceFirst computer science course intended for students planning to complete a sequence or major in computer science or a related field. Students will learn principles of developing object-oriented programs using a modern programming language such as Java. Fundamental concepts covered will include abstraction using classes, control structures, elementary data structures (arrays and linked lists), object-oriented design (using inheritance), elementary algorithms (sorting and searching), recursion, exceptions, debugging, and files. No previous programming experience assumed.
Offered: Occasionally
Credit: 1
Course Number: CSCI051 CM |
|
-
CSCI051G PO - Introduction to Computer Science in Grace with LabSee Pomona College Catalog for course description.
Credit: 1
Course Number: CSCI051G PO |
|
-
CSCI051J PO - Introduction to Computer Science in Java with LabSee Pomona College Catalog for course description.
Credit: 1
Course Number: CSCI051J PO |
|
-
CSCI051P PO - Introduction to Computer Science in Python with LabSee Pomona College Catalog for course description.
Credit: 1
Course Number: CSCI051P PO |
|
-
CSCI052 CM - Fundamentals of Computer ScienceA solid foundation in functional programming, procedural and data abstraction, recursion, and problem solving. Applications to key areas of computer science including algorithms and complexity, computer architecture and organization, programming languages, finite automata, and computability. Offered jointly by CMC and Pomona College. This course serves the same role as CSCI 60 at Harvey Mudd College as a prerequisite for upper division computer science courses at any of the Claremont Colleges.
Prerequisite: CSCI 051 CM
Offered: Occasionally
Credit: 1
Course Number: CSCI052 CM |
|
-
CSCI055 CM - Discrete StructuresIntroduction to the study of finite mathematical structures and the ways to build them, count them, and analyze them. Topics and examples are chosen to relate to concepts of interest in the design and analysis of computer algorithms, including permutations and combinations, graphs and trees, and codes. Emphasis on creative problem solving and learning to read and write proofs.
Offered: Every fall
Credit: 1
Course Number: CSCI055 CM |
|
|
|
-
CSCI062 CM - Data Structures and Advanced ProgrammingThis course builds on the computing concepts and programming skills acquired in CSCI 051 CM . Key topics include abstract data types (including stacks, queues, trees, priority queues, dynamic dictionaries, disjoint sets), classical algorithms (including sorting and searching), analysis of algorithms (including worst-case, average-case, and amortized analysis), and storage management. Extensive practice in implementing these data structures in Java. Includes an introduction to manual memory management in C++. This course serves the same role as CSCI 70 at Harvey Mudd College as a prerequisite for upper division computer science courses at any of the Claremont Colleges. Offered jointly by CMC and Pomona College.
Prerequisite: CSCI 051 CM
Offered: Occasionally
Credit: 1
Course Number: CSCI062 CM |
|
-
CSCI070 HM - Data Structures/Program DevelopmentSee Harvey Mudd College Catalog for course description.
Credit: 1
Course Number: CSCI070 HM |
|
-
CSCI135 CM - Distributed Software ArchitectureSoftware architectures, programming models, and programming environments pertinent to developing Internet applications. Topics include communication protocols, client-server model, multi-tier software architecture, client-side scripting, server-side programming, component reuse, database connectivity, web servers, and developing web applications. New trends in distributed systems.
Prerequisite: CSCI 062 CM
Offered: Occasionally
Credit: 1
Course Number: CSCI135 CM |
|
-
CSCI143 CM - Big DataAnalyze large-scale datasets (between 10GB-100TB) that cannot fit in the memory of a single computer.Topics include the relational and non-relational databases, advanced SQL programming, and advanced data structures like b-trees, GIN indexes, HyperLogLog, and BloomFilters.
Example applications include web analytics, multilingual text analysis, and GIS problems.
Prerequisites: CSCI 036 CM , CSCI 046 CM , and CSCI 055 CM
Offered: Every spring
Credit: 1
Course Number: CSCI143 CM |
|
-
CSCI145 CM - Introduction to Data MiningData mining is the process of discovering patterns in large data sets using techniques from mathematics, computer science and statistics with applications ranging from biology and neuroscience to history and economics. The goal of the course is to teach students fundamental data mining techniques that are commonly used in practice. Students will learn advanced data mining techniques (including linear classifiers, clustering, dimension reduction, transductive learning and topic modeling). Also listed as MATH 166 CM .
Prerequisites: MATH 060 CM ; CSCI 062 CM or proof-based math course above 100; or instructor consent.
Offered: Every year
Credit: 1
Course Number: CSCI145 CM |
|
-
CSCI148 CM - Graph AlgorithmsDesign and analysis of algorithms for graphs and for problems with graph-like structure. Topics may include minimum spanning trees, shortest paths, network flow, divide and conquer algorithms, greedy algorithms, dynamic programming, and complexity. Skills may include representing real-world problems as graphs, analyzing recurrences, developing new algorithms, proving algorithm correctness, analyzing time and space complexity, and reductions. This course does not count towards the computer science major.
Prerequisites: CSCI 046 CM and MATH 055 CM
Offered: Occasionally
Credit: 1
Course Number: CSCI148 CM |
|
-
CSCI181 CM - Special Topics in Computer ScienceSelected topics in computer science. May be repeated for credit.
Prerequisite: Instructor permission
Offered: Occasionally
Credit: 1
Course Number: CSCI181 CM |
|
|
|
|
|
|
|
|