Welcome to our interactive online textbook for learning Discrete Mathematics with SageMath.
We are developing essential resources for students to use mathematical software effectively. Our goal is to streamline the learning process with SageMath. This approach helps students focus more on mathematics and reduces the friction of learning how to code. Our resources are designed for all math students, regardless of programming experience.
SageMath is a free, open-source mathematics software system, based on Python. It integrates well-known open-source packages that include NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R, and many others. SageMath is fulfilling the need for a robust and free alternative to proprietary software like Magma, Maple, Mathematica, and Matlab.
Our first textbook focuses on discrete mathematics. SageMath allows students to explore and visualize complex concepts, boosting their understanding and skills in this essential subject.
We invite you to you contribute to our project.
If you encounter any bugs, typos, have suggestions for improvements, or have any questions about the project, please submit an issue. Here's how:
- Navigate to the Issues tab in the GitHub repository.
- Click on the "New Issue" button.
- Fill in the title and describe the issue or suggestion in detail.
- Submit the issue.
To contribute to the codebase or content, you'll need to fork the repository. This creates your own copy of the project where you can make changes.
- Visit the GitHub repository.
- At the top right corner, click the "Fork" button.
GitHub Codespaces allows you to develop in a cloud-based development environment. To set up a Codespace in a development container for this project:
- Go to the "Code" tab of your forked repository.
- Click the green "Code" button, then select "Open with Codespaces" > "New codespace".
- GitHub will prepare your codespace with the project's development environment.
- Alternatively, you can clone the repository to your local machine and set up the development environment with a development container.
After setting up a Codespace or cloning the repository to your local machine, you can make changes to the project. PreTeXt uses XML to structure the content, and SageMath is used for interactive code cells. You can learn more about PreTeXt here.
You can refer to an overview of features and syntax in the PreTeXt documentation.
The quick reference is also helpful.
After making changes, open a terminal and run the following command to build the HTML for the project.
pretext build
The build command will inform you of any errors in the project and prompt you to run the next command to view the project in your browser.
pretext view
If you are happy with the changes you have made, you can commit them to your forked repository and submit a pull request.
After making your changes in the forked repository or in a codespace, you're ready to submit a pull request for review:
- Navigate to your fork on GitHub.
- Click on "Contribute" and then open a pull request.
- Ensure that the base repository and branch are correct.
- Fill in a clear title and description for your changes.
- Submit the pull request.
The project maintainers will review your pull request and may request changes or merge it into the main project. Your contributions are appreciated and crucial in making this resource more comprehensive and useful for math education.