Skip to content

Commit 22ac82b

Browse files
committed
Merge branch 'feat/complete-module-one'
2 parents 83c6eb4 + 8f47784 commit 22ac82b

File tree

17 files changed

+1736
-11
lines changed

17 files changed

+1736
-11
lines changed

PLAN.md

Lines changed: 215 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,24 @@ the `_quarto.yml` file.
1919

2020
### Create Slides for Week One in `slides/weekone/index.qmd`
2121

22-
- [ ] Review the content in the `GEMINI.md` file (or the `AGENTS.md` file) that
22+
- [X] Review the content in the `GEMINI.md` file (or the `AGENTS.md` file) that
2323
explains the theme of the course on document engineering.
24-
- [ ] Review the content in the `index.qmd` file in the root of the repository
24+
- [X] Review the content in the `index.qmd` file in the root of the repository
2525
that explains the idea of a "Prosegrammer" and the concept of document
2626
engineering.
27-
- [ ] Following the guidelines for creating slides, translate the content in the
27+
- [X] Following the guidelines for creating slides, translate the content in the
2828
`index.qmd` in the root of the repository to slides that introduce the course in
2929
the `slides/weekone/index.qmd` file.
30-
- [ ] Note that the existing content was from slides that Gregory M. Kapfhammer
30+
- [X] Note that the existing content was from slides that Gregory M. Kapfhammer
3131
previously created to introduce a course in the field of algorithm analysis. You
3232
should revise all the technical content in these slides to fit into a course
3333
about document engineering. However, you should also use this content in these
3434
slides as good examples for what your generated slides should look like. Make
3535
sure to use similar formatting, layout, and content as the provided slides.
36-
- [ ] The slides that introduce the course should contain Python source code
36+
- [X] The slides that introduce the course should contain Python source code
3737
like that which you found in the `index.qmd` file in the root of the repository.
3838
Make sure that students can run this source code and see the output.
39-
- [ ] After finishing the slides that introduce the course, create more slides
39+
- [X] After finishing the slides that introduce the course, create more slides
4040
that introduce the following technologies and explain how to install them:
4141
- Terminal window
4242
- Git, GitHub, and GitHub CLI (i.e., `gh`)
@@ -54,19 +54,108 @@ that introduce the following technologies and explain how to install them:
5454
- Npm and Node.js and all affiliated tools like `npx`
5555
- Google Gemini CLI (run through the use of `npx`)
5656
- OpenCode (run through the use of `npx`)
57-
- [ ] Ensure that the instructions in the slides from the previous step will
57+
- [X] Ensure that the instructions in the slides from the previous step will
5858
work correctly regardless of the operating system (Windows, MacOS, Linux).
59-
- [ ] Ensure that the instructions for installing each of the aforementioned
59+
- [X] Ensure that the instructions for installing each of the aforementioned
6060
tools clearly explain what the tool does, why it is important, and how it can
6161
help a prosegrammer to create, maintain, and analyze documents.
62-
- [ ] Ensure that the instructions for installing each of the aforementioned
62+
- [X] Ensure that the instructions for installing each of the aforementioned
6363
tools stress the importance of testing the setup to make sure that they are
6464
working. There should be links to online documentation that a learner can read
6565
if they have trouble installing or testing any of the tools.
66-
- [ ] Add content about the responsible use of artificial intelligence (AI)
66+
- [X] Add content about the responsible use of artificial intelligence (AI)
6767
coding and writing tools that use large language models (LLMs) like Claude
6868
Sonnet 4 or GPT-4. Make it clear that the prosegrammer who uses these tools is
6969
ultimately responsible for wielding them correctly and ethically.
70+
````
71+
72+
### Create Slides for Week Four in `slides/weekfour/index.qmd`
73+
74+
- [ ] Review the content in the `GEMINI.md` file (or the `AGENTS.md` file) that
75+
explains the theme of the course on document engineering.
76+
- [ ] Review the content in the `index.qmd` file in the root of the repository
77+
that explains the idea of a "Prosegrammer" and the concept of document
78+
engineering.
79+
- [ ] Review the content in the `index.qmd` file in the `syllabus` directory of
80+
the repository that explains rules and regulations for this course on document
81+
engineering. Note that these are the rules that students follow and not
82+
specifically the rules and regulations that you follow as a coding agent.
83+
- [ ] The new slides that I want you to create should be in the file
84+
`slides/weekfour/index.qmd`. The purpose of these slides is to introduce the
85+
basics of Markdown and Quarto. Here are some basic features of Markdown and
86+
Quarto that you should include in these slides:
87+
- Structure of a Markdown document
88+
- Headings and subheadings
89+
- Paragraphs and line breaks
90+
- Bold and italic text
91+
- Lists (ordered and unordered)
92+
- Links and images
93+
- Code blocks and inline code
94+
- Tables
95+
- Blockquotes
96+
- Horizontal rules
97+
- Mathematical expressions
98+
- You can look at the other slide decks that I have already prepared:
99+
- `slides/weekone/index.qmd`
100+
- `slides/weektwo/index.qmd`
101+
- `slides/weekthree/index.qmd` and see how I am currently using Markdown and
102+
Quarto in my slides! I want students to be able to understand all of these
103+
examples and know how to write them on their own for their own documentation.
104+
- [ ] When you create all of these examples, make sure that they connect to the
105+
concepts of document engineering and prosegramming, as I have already defined in
106+
the contents of this GitHub repository. For instance, you can connect the need
107+
to write Markdown to the Markdown files that they write to document their own
108+
document engineering projects, where they are building tools that input
109+
and process and analyze text documents in JSON, YAML, Markdown, and plaintext.
110+
You can add slides that make suggestions on how they could use the features of
111+
Markdown inside of the `README.md` file for the tool. You can also add slides
112+
that explain how they could create a website for their tool using Quarto.
113+
- [ ] You must show the actual source code of the basic feature (e.g., bold and
114+
italic text) and then show how that actually renders. This means that the
115+
student should be able to look at the slide and see both the source code and the
116+
rendered output.
117+
- [ ] Make sure that all the content is accessible to beginners who do not have
118+
extensive experience with programming or the documentation of a software tool.
119+
- [ ] Make sure that all the content has concrete examples that make points
120+
clear to beginners.
121+
122+
### Create Slides for Week Six in `slides/weeksix/index.qmd`
123+
124+
- [ ] Review the content in the `GEMINI.md` file (or the `AGENTS.md` file) that
125+
explains the theme of the course on document engineering.
126+
- [ ] Review the content in the `index.qmd` file in the root of the repository
127+
that explains the idea of a "Prosegrammer" and the concept of document
128+
engineering.
129+
- [ ] Review the content in the `index.qmd` file in the `syllabus` directory of
130+
the repository that explains rules and regulations for this course on document
131+
engineering. Note that these are the rules that students follow and not
132+
specifically the rules and regulations that you follow as a coding agent.
133+
- [ ] The new slides that I want you to create should be in the file
134+
`slides/weeksix/index.qmd`. The purpose of these slides is to introduce the
135+
basics of software testing. I previously created these slides for a course
136+
on Algorithm Analysis. However, I would like you to customize all of this
137+
content for document engineering.
138+
- You can look at the other slide decks that I have already prepared:
139+
- `slides/weekone/index.qmd`
140+
- `slides/weektwo/index.qmd`
141+
- `slides/weekthree/index.qmd`
142+
and see how I am currently using Markdown and Quarto in my slides!
143+
- Please note that I am currently working on the slides in
144+
`slides/weekfour/index.qmd` that introduce Markdown and Quarto. So, please
145+
don't use those as an example because they are not yet complete.
146+
- I want students to understand the basics of software testing so that when
147+
they are building their document engineering tools they can also test them.
148+
- Please customize all the examples in the slides so that they connect to
149+
document engineering and are accessible to beginners. However, you should
150+
keep the simple `DaysOfTheWeek` source code because that one is easy to
151+
understand and accessible to beginners.
152+
- If you check the `index.qmd` file in this GitHub repository, you can see a
153+
simple example of word frequency analysis. You should illustrate how to write
154+
test cases for a function like this one.
155+
- [ ] Make sure that all the content is accessible to beginners who do not have
156+
extensive experience with programming or the documentation of a software tool.
157+
- [ ] Make sure that all the content has concrete examples that make points
158+
clear to beginners.
70159
71160
## Support for Content
72161
@@ -323,3 +412,119 @@ text formatting capabilities for document standardization
323412
technologies in educational settings
324413
- Individual assessment format ensures authentic demonstration of student
325414
learning and skill development
415+
416+
### Support for Week Four Slides Content
417+
418+
#### Markdown as Lightweight Markup Language
419+
420+
- Markdown was created by John Gruber in 2004 as a lightweight markup language
421+
designed to be easy to read and write in plain text form
422+
- The CommonMark specification (2019) standardizes Markdown syntax to ensure
423+
consistency across different implementations and platforms
424+
- GitHub Flavored Markdown (GFM) extends standard Markdown with features like
425+
tables, task lists, and syntax highlighting, making it the de facto standard
426+
for technical documentation
427+
428+
#### Markdown for Technical Documentation
429+
430+
- Stack Overflow Developer Survey consistently shows Markdown as one of the most
431+
loved markup languages among developers for its simplicity and readability
432+
- Major platforms like GitHub, GitLab, Reddit, and Discord use Markdown for
433+
content creation, demonstrating its widespread adoption in technical communities
434+
- README files in Markdown format are industry standard for project documentation,
435+
with GitHub automatically rendering README.md files as project homepages
436+
437+
#### Quarto as Publishing Platform
438+
439+
- Quarto is developed by Posit (formerly RStudio) and represents the evolution
440+
of scientific publishing tools, combining the best features of R Markdown,
441+
Jupyter notebooks, and modern web technologies
442+
- The ability to execute code blocks in multiple languages (Python, R, Julia)
443+
makes Quarto suitable for reproducible research and technical documentation
444+
- Quarto's support for multiple output formats (HTML, PDF, Word, presentations)
445+
follows the principle of single-source publishing used in professional
446+
technical writing
447+
448+
#### Document Engineering Workflow Applications
449+
450+
- Version control of documentation with Git follows software engineering best
451+
practices, enabling collaborative editing and change tracking for technical
452+
documents
453+
- Automated documentation generation from code comments and Markdown source
454+
files is standard practice in software development, using tools like Sphinx,
455+
mkdocs, and Quarto
456+
- The concept of "docs-as-code" treats documentation with the same rigor as
457+
source code, applying version control, review processes, and automated testing
458+
459+
#### Accessibility and SEO Benefits
460+
461+
- Alt text for images is required by Web Content Accessibility Guidelines (WCAG)
462+
2.1 Level AA, making content accessible to users with visual impairments
463+
- Semantic HTML structure generated from Markdown headings improves search
464+
engine optimization (SEO) and document navigation
465+
- Proper heading hierarchy (H1, H2, H3, H4) creates logical document structure
466+
essential for screen readers and automated content analysis
467+
468+
#### Mathematical Expression Support
469+
470+
- MathJax and KaTeX provide browser-based rendering of LaTeX mathematical
471+
notation, enabling complex mathematical expressions in web documents
472+
- Mathematical markup in documentation is essential for technical fields like
473+
data science, engineering, and computer science algorithm documentation
474+
- The example document quality formula demonstrates how mathematical concepts
475+
can be applied to evaluate documentation effectiveness
476+
477+
#### Interactive Code Execution
478+
479+
- Pyodide enables client-side Python execution in web browsers, providing
480+
immediate feedback for educational content without requiring server resources
481+
- Interactive code examples improve learning outcomes by allowing students to
482+
experiment with code modifications and see immediate results
483+
- Live code execution in documentation serves as both tutorial and testing
484+
mechanism, ensuring code examples remain functional and up-to-date
485+
486+
### Support for Week Six Slides Content
487+
488+
#### Quarto and Markdown for Document Engineering and Prosegramming
489+
- Quarto is developed by Posit and is widely used for technical publishing, supporting reproducible research and professional documentation (see Quarto documentation).
490+
- Markdown is the de facto standard for readable, plain-text documentation in software projects, with widespread adoption on platforms like GitHub, Stack Overflow, and Discord.
491+
- Combining Quarto and Markdown enables prosegrammers to automate, analyze, and publish documentation that is clear, interactive, and professional (see Quarto and Markdown official docs).
492+
- The "docs-as-code" approach treats documentation with the same rigor as source code, applying version control, review, and automated testing (see Sphinx, mkdocs, Quarto docs-as-code philosophy).
493+
- Document engineering blends code and prose to create resources for both humans and machines, as supported by academic research in technical communication and computational linguistics.
494+
- Mastery of Quarto and Markdown transforms coders into document engineers—prosegrammers who craft content that informs, inspires, and endures (see ACM/IEEE guidelines on technical documentation).
495+
496+
#### Software Testing for Document Engineering Tools
497+
498+
- Software testing principles apply directly to document processing systems,
499+
ensuring reliability and correctness in text analysis, parsing, and generation
500+
- The IEEE Standard for Software Unit Testing (IEEE 829) provides established
501+
methodologies that adapt well to document processing validation
502+
- Test-driven development practices help create robust document analysis
503+
functions by defining expected behavior before implementation
504+
505+
#### Document Analysis Testing Best Practices
506+
507+
- Testing document processing functions requires validation of text parsing,
508+
content extraction, and format conversion accuracy
509+
- Edge cases in document processing include empty documents, malformed markup,
510+
encoding issues, and extremely large text files
511+
- Automated testing frameworks like pytest enable systematic validation of
512+
document engineering tools across diverse input scenarios
513+
514+
#### Python Testing Ecosystem for Document Tools
515+
516+
- `pytest` provides parameterized testing capabilities ideal for testing
517+
document processing functions with varied input formats and content types
518+
- `coverage.py` helps ensure comprehensive testing of document analysis code
519+
paths, critical for tools that process diverse document structures
520+
- Property-based testing with `hypothesis` generates diverse text inputs to
521+
discover edge cases in document processing algorithms
522+
523+
#### Testing Integration with Document Workflows
524+
525+
- Continuous integration testing ensures document processing tools remain
526+
reliable as codebases evolve and new document formats are supported
527+
- Mutation testing with tools like `mutmut` validates test suite quality by
528+
introducing controlled defects to verify test detection capabilities
529+
- Performance testing of document processing tools helps identify bottlenecks
530+
in text analysis and generation pipelines

schedule/weekfive/index.qmd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,12 @@ toc-expand: 3
3737
- {{< iconify fa6-solid gears size=18px >}} **Friday**:
3838
- Randomly selected second-half of class completes document engineering
3939
knowledge-check one as an in-person assessment
40+
41+
## Slides
42+
43+
```{=html}
44+
<iframe class="slide-deck" src="../../slides/weekfive/"></iframe>
45+
```
46+
47+
{{< iconify majesticons presentation-play size=18px >}} Full Screen: [Week
48+
Five: Advanced Quarto for Documentation](../../slides/weekfive/)

schedule/weekfour/index.qmd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,12 @@ toc-expand: 3
3737
- {{< iconify fa6-solid gears size=18px >}} **Friday**:
3838
- Randomly selected first-half of class completes document engineering
3939
knowledge-check one as an in-person assessment
40+
41+
## Slides
42+
43+
```{=html}
44+
<iframe class="slide-deck" src="../../slides/weekfour/"></iframe>
45+
```
46+
47+
{{< iconify majesticons presentation-play size=18px >}} Full Screen: [Week
48+
Four: Quarto for Documentation](../../slides/weekfour/)

schedule/weeksix/index.qmd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,12 @@ toc-expand: 3
3838
- Students give final in-person demonstration to course instructor
3939
- {{< iconify fa6-solid gears size=18px >}} **Friday**:
4040
- Submit completed first document engineering tool-building project
41+
42+
## Slides
43+
44+
```{=html}
45+
<iframe class="slide-deck" src="../../slides/weeksix/"></iframe>
46+
```
47+
48+
{{< iconify majesticons presentation-play size=18px >}} Full Screen: [Week
49+
Six: Software Testing](../../slides/weeksix/)

0 commit comments

Comments
 (0)