Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Matthew Fried

This course is a full course in understanding all the mathematics and structures required to successfully do computing. It is a course in discrete structures, data structures, and algorithms. That means that we go through logic and proofs alongside the structures such as trees and graphs. This is the basis for understanding algorithms, recursion and much more.   This course aims to give a clear and cogent understanding of the major parts to discrete structures.  Anyone interested in computers should be learning this material well.

Read more

This course is a full course in understanding all the mathematics and structures required to successfully do computing. It is a course in discrete structures, data structures, and algorithms. That means that we go through logic and proofs alongside the structures such as trees and graphs. This is the basis for understanding algorithms, recursion and much more.   This course aims to give a clear and cogent understanding of the major parts to discrete structures.  Anyone interested in computers should be learning this material well.

Data structures requires the understanding of certain mathematical concepts that are built here. It is imperative to understand computing from first principles.  As such, we build and analyze different data structures with our firm mathematical foundation.

This course also discusses an introduction to algorithms. It develops many ideas related to speed and efficiency in algorithms.  It has many deep ideas and approaches to be an effective, algorithmic computerista.

Enroll now

What's inside

Learning objectives

  • Discrete structures, data structures, and algorithms. the mathematics required for computing and the structures behind it all.
  • Students will learn the fundamentals of logic, proof, graph theory, number theory, data structures, and much more - all with application!

Syllabus

Sets
Quantifiers
Relations and Functions
Logic
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Helps learners with a background in logic and proofs, development of discrete structures, and understanding of algorithms and data structures
Features a structured outline with topics ranging from logic and proofs to data structures and algorithms
Covers essential topics in discrete mathematics, including sets, relations, functions, and graph theory
Suitable for learners with prior experience in computer science and programming who wish to enhance their foundation in theoretical computer science
Designed for intermediate to advanced learners who seek a comprehensive understanding of algorithms and data structures
Taught by an experienced instructor with a strong reputation in computer science education

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive cs fundamentals and algorithms

According to students, this course offers a largely positive and comprehensive foundation in critical computer science domains: discrete structures, data structures, and algorithms. Learners consistently highlight the instructor's clear explanations, especially for complex mathematical concepts and proofs, making the challenging material accessible. The course is praised for its theoretical depth, building understanding from first principles, which is essential for a strong computing background. While some appreciate the thorough mathematical approach, others suggest more hands-on coding exercises would further enhance practical application. Overall, it is regarded as an excellent preparatory course for further studies or career development in computing.
Pacing is solid for committed learners, but challenging.
"The course moves at a good pace, but you definitely need to dedicate time to truly grasp the complex ideas presented."
"For someone new to discrete math, it's intense but manageable if you review the material consistently."
"I felt the progression was logical, but intermediate learners might find some early sections slow, while beginners will find it demanding."
Strong theory, some desire more coding practice.
"While the theoretical explanations are phenomenal, I really wish there were more practical coding assignments to solidify the concepts."
"This course is definitely heavy on the 'why' and less on the 'how' for implementation, which is good for theory but not for immediate coding."
"I appreciated the strong mathematical grounding, but for me, more hands-on labs would make it perfect for practical application."
Helpful C++ refresher for various backgrounds.
"The C++ review sections were surprisingly helpful, especially for someone like me who hadn't touched C++ in a while."
"Even though the focus isn't C++, the brief but effective review on pointers and classes was a great refresher."
"It filled in some gaps in my understanding of C++ fundamentals before diving into data structures."
Instructor simplifies complex topics effectively.
"The instructor has a knack for explaining really difficult concepts in a way that just clicks for you."
"I found the lectures on proofs and recursion particularly clear, breaking down intimidating subjects step-by-step."
"Every topic, no matter how abstract, was presented with remarkable clarity and illustrative examples."
Provides a robust theoretical basis in computer science.
"This course lays an incredibly strong foundation in discrete math, data structures, and algorithms..."
"I needed a deep dive into the mathematical underpinnings of computing, and this course delivered exactly that."
"It's impressive how thoroughly it covers core concepts, from logic to Big-O notation, crucial for any serious developer."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Discrete Structures, Data Structures, and Algorithms with these activities:
Review Set Theory Basics
Refreshing your understanding of set theory will strengthen your foundation for the course's mathematical concepts.
Browse courses on Set Theory
Show steps
  • Review the concepts of sets, subsets, and operations on sets.
  • Practice solving problems involving set theory.
Organize Course Notes and Materials
Organizing your notes and course materials will enhance your ability to review and retain key concepts.
Show steps
  • Gather all course notes, assignments, and materials.
  • Sort and categorize the materials based on topic or lecture.
  • Create a system for easy retrieval and review.
Join a Study Group
Participating in a study group will provide opportunities to discuss concepts, share perspectives, and reinforce your understanding.
Show steps
  • Find or create a study group with classmates.
  • Establish regular meeting times and a study schedule.
  • Collaborate to review course materials, solve problems, and prepare for assessments.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Build a Graph Data Structure
Implementing a Graph data structure in your preferred programming language will solidify your understanding of graph theory and its applications.
Browse courses on Graph Theory
Show steps
  • Choose a programming language and development environment.
  • Research different Graph data structures and their properties.
  • Implement the Graph data structure using the chosen programming language.
  • Test and debug your implementation using various test cases.
Solve Recurrence Relations Problems
Practice solving recurrence relations problems will strengthen your understanding of recursion and its applications in solving mathematical problems.
Show steps
  • Review the concept of recurrence relations.
  • Practice solving simple recurrence relations problems.
  • Learn techniques for solving more complex recurrence relations.
  • Attempt solving challenging recurrence relations problems.
Explore Graph Algorithms Using NetworkX
Working through tutorials on NetworkX will provide practical experience in applying graph algorithms to real-world problems.
Browse courses on Graph Algorithms
Show steps
  • Familiarize yourself with the NetworkX library.
  • Follow tutorials on implementing graph algorithms using NetworkX.
  • Experiment with different graph algorithms on various datasets.
Explore Data Structures Visualizations
Visualizations can enhance your understanding of how data structures work and their performance characteristics.
Browse courses on Data Structures
Show steps
  • Find resources that provide interactive visualizations of data structures.
  • Explore visualizations for different types of data structures.
  • Experiment with different operations on the data structures using the visualizations.
Develop a Decision Tree Algorithm
Creating a Decision Tree algorithm from scratch will enhance your understanding of supervised learning techniques and their practical implementation.
Browse courses on Decision Trees
Show steps
  • Study the theory behind Decision Trees and their algorithms.
  • Choose a programming language and development environment.
  • Implement the Decision Tree algorithm using the chosen programming language.
  • Evaluate the performance of your implementation using various datasets.
  • Optionally, create visualizations to illustrate the decision-making process.

Career center

Learners who complete Discrete Structures, Data Structures, and Algorithms will develop knowledge and skills that may be useful to these careers:
Computer Scientist
A Computer Scientist conducts research in the field of computer science, including the development of new programming languages, algorithms, and software systems. Discrete Structures, Data Structures, and Algorithms can be very useful for a Computer Scientist as it provides a comprehensive understanding of the logic and structures used in computer science.
Data Scientist
A Data Scientist uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. Discrete Structures, Data Structures, and Algorithms can be very useful for a Data Scientist as it provides a strong foundation in the mathematical and logical principles used in data analysis.
Computer Programmer
A Computer Programmer designs, develops, tests, and maintains software applications and systems. Discrete Structures, Data Structures, and Algorithms can be very useful for a Computer Programmer as it teaches the fundamentals of logic, proof, graph theory, and data structures, all of which are essential for software development.
Operations Research Analyst
An Operations Research Analyst uses mathematical and analytical techniques to solve complex problems in business and industry. Discrete Structures, Data Structures, and Algorithms can be very useful for an Operations Research Analyst as it provides a strong foundation in the mathematical and logical principles used in operations research.
Software Engineer
A Software Engineer applies the principles of computer science and software design to the creation of computer software and applications. Common responsibilities include developing, maintaining, and improving software, as well as designing and implementing new features or systems. Discrete Structures, Data Structures, and Algorithms can be very useful for a Software Engineer as it teaches the fundamentals of logic, proof, graph theory, and data structures.
Information Security Analyst
An Information Security Analyst designs and implements security measures to protect an organization's computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. Discrete Structures, Data Structures, and Algorithms can be very useful for an Information Security Analyst as it provides a good foundation in the mathematical and logical principles commonly used to secure computer systems and networks.
Data Analyst
A Data Analyst collects, processes, and analyzes data to identify trends and patterns, and to make recommendations for改进ments. Discrete Structures, Data Structures, and Algorithms can be useful for a Data Analyst as it provides a good foundation in the mathematical and logical principles frequently used in data analysis.
Database Administrator
A Database Administrator manages and maintains database systems, ensuring the efficient and reliable operation of the database. Discrete Structures, Data Structures, and Algorithms can be useful for a Database Administrator as it provides a comprehensive understanding of the logic and structures used in database systems.
Actuary
An Actuary uses mathematical and statistical techniques to assess risk and uncertainty. Discrete Structures, Data Structures, and Algorithms can be useful for an Actuary as it provides a good foundation in the mathematical and logical principles frequently used in actuarial science.
Risk Analyst
A Risk Analyst uses mathematical and analytical techniques to assess and manage risk. Discrete Structures, Data Structures, and Algorithms can be useful for a Risk Analyst as it provides a good foundation in the mathematical and logical principles frequently used in risk analysis.
Financial Analyst
A Financial Analyst provides advice to businesses and individuals on financial matters. Discrete Structures, Data Structures, and Algorithms may be useful for a Financial Analyst as it provides a good foundation in the mathematical and logical principles frequently used in financial analysis.
Investment Analyst
An Investment Analyst provides advice to businesses and individuals on investment opportunities. Discrete Structures, Data Structures, and Algorithms may be useful for an Investment Analyst as it provides a good foundation in the mathematical and logical principles frequently used in investment analysis.
Web Developer
A Web Developer designs, develops, and maintains websites and web applications. Discrete Structures, Data Structures, and Algorithms can be useful for a Web Developer as it provides a good foundation in the mathematical and logical principles frequently used in web development.
Computer Systems Analyst
A Computer Systems Analyst examines how computer systems are used and apply their understanding to address business problems. The work of a Computer Systems Analyst is to bridge the gap between business and IT, they identify opportunities to improve systems and processes, and then design and implement those improvements. Discrete Structures, Data Structures, and Algorithms may be useful for a Computer Systems Analyst as it provides a comprehensive understanding of the logic and structures used in computer systems.
Systems Administrator
A Systems Administrator installs, configures, and maintains computer systems, networks, and applications. Discrete Structures, Data Structures, and Algorithms may be useful for a Systems Administrator as it provides a comprehensive understanding of the logic and structures used in computer systems.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Discrete Structures, Data Structures, and Algorithms.
“Concrete Mathematics” classic textbook on discrete mathematics that is written in a clear and engaging style. It covers a wide range of topics, including set theory, logic, combinatorics, graph theory, and number theory.
“Discrete Structures, Logic, and Computability” textbook on discrete structures, logic, and computability that is written in a clear and concise style. It covers a wide range of topics, including set theory, logic, combinatorics, and graph theory.
“Discrete Mathematics and Its Applications” standard textbook for undergraduate courses on discrete mathematics. It covers a wide range of topics that are essential for understanding the mathematical foundations of computer science, including set theory, logic, combinatorics, graph theory, and number theory.
“Mathematical Structures for Computer Science” textbook on mathematical structures that is written in a clear and concise style. It covers a wide range of topics, including set theory, logic, combinatorics, and graph theory.
“Introduction to Algorithms” classic textbook on algorithms. It provides a comprehensive introduction to the design and analysis of efficient algorithms, covering topics such as sorting, searching, graph algorithms, and dynamic programming.
“Set Theory and Logic” textbook on set theory and logic that is written in a clear and concise style. It covers a wide range of topics, including set theory, predicate logic, and model theory.
“Proofs and Algorithms” textbook on mathematical thinking that is written in a clear and concise style. It covers a wide range of topics, including logic, proofs, and algorithms.
“Algorithms” textbook on algorithms that is written in a clear and concise style. It covers a wide range of topics, including sorting, searching, graph algorithms, and dynamic programming.
“Graph Algorithms” textbook on graph algorithms that is written in a clear and concise style. It covers a wide range of topics, including graph traversal, shortest paths, and maximum flows.
“Number Theory and Cryptography” textbook on number theory and cryptography that is written in a clear and concise style. It covers a wide range of topics, including prime numbers, modular arithmetic, and elliptic curves.
“Data Structures and Algorithms in C++” textbook on data structures and algorithms that is specifically designed for students who are learning C++. It covers a wide range of topics, including arrays, linked lists, stacks, queues, trees, and graphs.
“Data Structures and Algorithms in Java” textbook on data structures and algorithms that is specifically designed for students who are learning Java. It covers a wide range of topics, including arrays, linked lists, stacks, queues, trees, and graphs.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser