Throughout this semester, the course instructor will use GitHub to deliver to you all of the starting source code and documentation for the technical challenges, practical assignments, and laboratory assignments. In addition to using GitHub to submit all of your assignments to the course instructor, you can use GitHub to engage with the instructor and the student technical leaders to ask questions about your work. The GitHub repositories that you create for your assignments will also serve as an archive of the material that you can review for the quizzes and examinations that you will take. To learn more about GitHub, you can visit the following web sites:
Since the 2019 Stack Overflow Technology Survey reports that Visual Studio Code (or VSCode) is the most popular development environment, you will exclusively use it to complete Python programming and technical writing projects in the field of discrete structures. In addition to providing a wide variety of program analysis, debugging, linting, and testing tools, VSCode supports live share programming where two programmers can work together in the same development environment! VSCode also features an extremely popular and powerful Python programming extensions that will make your assignments significantly easier. To learn more about VSCode, you can visit the following web sites:
- VSCode Code Editor
- VSCode Python Extension
- VSCode Live Share Overview
- VSCode Live Share Extension
- VSCode Live Share Extension Pack
Since a Docker container provides a wide variety of programming tools that support the implementation and assessment of a Python program, it makes it easier for you to start programming right away! You are invited to use Docker Desktop to run programs that the course instructor provides to you through a Docker container. To learn more about Docker, you can visit the following web sites:
- Can I Run Docker?
- Docker Desktop
- Docker Desktop Overview
- Install Docker Desktop on Mac
- Install Docker Desktop on Windows
The Python programming language is simple and powerful! Since there are a wide variety of development tools and packages that support programming in Python, we will use this language as our main vehicle for exploring discrete structures. Since the version of Python delivered by your operating system may be out of date (or Python may not be readily available on your operating system), you are invited to install version 3.8 of the Python programming language by using either the Pyenv or Pyenv-win tools that are available for download from GitHub. You can learn more about Python by visiting these web sites:
The Python programming language features a wide variety of popular and powerful packages that enable you to more effectively write efficient and correct programs. Although we will only explore a limited number of Python packages this semester, we will use the Poetry packaging and dependency management tool support the installation of the packages that you will use to complete the course assignments. We will also use the Pytest testing framework to write and run test cases that help us to know whether or not our Python program is correct. Finally, we will use the Streamlit system to create web-based interfaces for our Python applications that explore the field of discrete structures. Of course, there are many other Python packages that you can explore through the Python Package Index. You can learn more about these Python packages by visiting these web sites:
In addition to implementing and testing programs in Python, you will write technical documentation using Markdown, a formatting language that enables you to use rules to control the display of plain text in your GitHub repository. For instance, Markdown has features that enable it to display source code, itemized lists, and graphics. Importantly, you can edit Markdown files inside of your VSCode text editor and store them in your GitHub repository. Students will write in Markdown as part of the laboratory and practical assignments and the course examinations. You can learn more about the Markdown language for technical writing by visiting these web sites: