Back to Courses

Math And Logic Courses

Showing results 1-10 of 148
Create a Boggle Word Solver using recursion in Python
In this 1-hour long project-based course, you will have created a Boggle Word Solver in Python by defining various functions that load a 4x4 game board based on input, recursively searches in all allowed directions for plausible words using Depth First Traversal, and then prints out the valid words based on length constraints and by cross-checking whether the word exists in the stored dictionary. You will also learn to store the dictionary in a trie data structure which makes for more efficient lookups. This guided project is aimed at learners who are wanting to learn or practice recursion and graph traversal concepts in Python by developing a fun game. Understanding DFS and recursion is essential and will greatly expand your programming potential as they are used at the base of various algorithms. Implementing a prefix tree will also help you understand a new efficient data structure. Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.
Asymmetric Cryptography and Key Management
Welcome to Asymmetric Cryptography and Key Management! In asymmetric cryptography or public-key cryptography, the sender and the receiver use a pair of public-private keys, as opposed to the same symmetric key, and therefore their cryptographic operations are asymmetric. This course will first review the principles of asymmetric cryptography and describe how the use of the pair of keys can provide different security properties. Then, we will study the popular asymmetric schemes in the RSA cipher algorithm and the Diffie-Hellman Key Exchange protocol and learn how and why they work to secure communications/access. Lastly, we will discuss the key distribution and management for both symmetric keys and public keys and describe the important concepts in public-key distribution such as public-key authority, digital certificate, and public-key infrastructure. This course also describes some mathematical concepts, e.g., prime factorization and discrete logarithm, which become the bases for the security of asymmetric primitives, and working knowledge of discrete mathematics will be helpful for taking this course; the Symmetric Cryptography course (recommended to be taken before this course) also discusses modulo arithmetic. This course is cross-listed and is a part of the two specializations, the Applied Cryptography specialization and the Introduction to Applied Cryptography specialization.
Integral Calculus and Numerical Analysis for Data Science
Are you interested in Data Science but lack the math background for it? Has math always been a tough subject that you tend to avoid? This course will provide an intuitive understanding of foundational integral calculus, including integration by parts, area under a curve, and integral computation. It will also cover root-finding methods, matrix decomposition, and partial derivatives. This course is designed to prepare learners to successfully complete Statistical Modeling for Data Science Application, which is part of CU Boulder's Master of Science in Data Science (MS-DS) program. Logo courtesy of ThisisEngineering RAEng on Unsplash.com
Mathematics for Computer Science
“Welcome to Introduction to Numerical Mathematics. This is designed to give you part of the mathematical foundations needed to work in computer science in any of its strands, from business to visual digital arts, music, games. At any stage of the problem solving and modelling stage you will require numerical and computational tools. We get you started in binary and other number bases, some tools to make sense of sequences of numbers, how to represent space numerical using coordinates, how to study variations of quantities via functions and their graphs. For this we prepared computing and everyday life problems for you to solve using these tools, from sending secret messages to designing computer graphics. If you wish to take it further you can join the BSc Computer Science degree and complete the full module ‘Numerical Mathematics’. Enjoy!”
Introduction to Complex Analysis
This course provides an introduction to complex analysis which is the theory of complex functions of a complex variable. We will start by introducing the complex plane, along with the algebra and geometry of complex numbers, and then we will make our way via differentiation, integration, complex dynamics, power series representation and Laurent series into territories at the edge of what is known today. Each module consists of five video lectures with embedded quizzes, followed by an electronically graded homework assignment. Additionally, modules 1, 3, and 5 also contain a peer assessment. The homework assignments will require time to think through and practice the concepts discussed in the lectures. In fact, a significant amount of your learning will happen while completing the homework assignments. These assignments are not meant to be completed quickly; rather you'll need paper and pen with you to work through the questions. In total, we expect that the course will take 6-12 hours of work per module, depending on your background.
Automated Reasoning: Symbolic Model Checking
This course presents how properties of acting systems and programs can be verified automatically. The basic notion is a transition system: any system that can be described by states and steps. We present how in CTL (computation tree logic) properties like reachability can be described. Typically, a state space may be very large. One way to deal with this is symbolic model checking: a way in which sets of states are represented symbolically. A fruitful way to do so is by representing sets of states by BDDs (binary decision diagrams). Definitions and basic properties of BDDs are presented in this course, and also algorithms to compute them, as they are needed for doing CTL model checking.
Interest Rate Models
This course gives you an easy introduction to interest rates and related contracts. These include the LIBOR, bonds, forward rate agreements, swaps, interest rate futures, caps, floors, and swaptions. We will learn how to apply the basic tools duration and convexity for managing the interest rate risk of a bond portfolio. We will gain practice in estimating the term structure from market data. We will learn the basic facts from stochastic calculus that will enable you to engineer a large variety of stochastic interest rate models. In this context, we will also review the arbitrage pricing theorem that provides the foundation for pricing financial derivatives. We will also cover the industry standard Black and Bachelier formulas for pricing caps, floors, and swaptions. At the end of this course you will know how to calibrate an interest rate model to market data and how to price interest rate derivatives.
Discrete Optimization
Tired of solving Sudokus by hand? This class teaches you how to solve complex search problems with discrete optimization concepts and algorithms, including constraint programming, local search, and mixed-integer programming. Optimization technology is ubiquitous in our society. It schedules planes and their crews, coordinates the production of steel, and organizes the transportation of iron ore from the mines to the ports. Optimization clears the day-ahead and real-time markets to deliver electricity to millions of people. It organizes kidney exchanges and cancer treatments and helps scientists understand the fundamental fabric of life, control complex chemical reactions, and design drugs that may benefit billions of individuals. This class is an introduction to discrete optimization and exposes students to some of the most fundamental concepts and algorithms in the field. It covers constraint programming, local search, and mixed-integer programming from their foundations to their applications for complex practical problems in areas such as scheduling, vehicle routing, supply-chain optimization, and resource allocation.
Operations Research (3): Theory
Operations Research (OR) is a field in which people use mathematical and engineering methods to study optimization problems in Business and Management, Economics, Computer Science, Civil Engineering, Electrical Engineering, etc. The series of courses consists of three parts, we focus on deterministic optimization techniques, which is a major part of the field of OR. As the third part of the series, we study mathematical properties of linear programs, integer programs, and nonlinear programs. We also introduce applications of these theoretical properties: How they help us develop better ways to solve mathematical programs.
Precalculus: Mathematical Modeling
This course helps to build the foundational material to use mathematics as a tool to model, understand, and interpret the world around us. This is done through studying functions, their properties, and applications to data analysis. Concepts of precalculus provide the set of tools for the beginning student to begin their scientific career, preparing them for future science and calculus courses. This course is designed for all students, not just those interested in further mathematics courses. Students interested in the natural sciences, computer sciences, psychology, sociology, or similar will genuinely benefit from this introductory course, applying the skills learned to their discipline to analyze and interpret their subject material. Students will be presented with not only new ideas, but also new applications of an old subject. Real-life data, exercise sets, and regular assessments help to motivate and reinforce the content in this course, leading to learning and mastery.