• Home
  • Syllabus
  • Schedule
  • Slides

On this page

  • Computer Science 104 Fall 2025
    • Course Instructor
    • Instructor Appointments
    • Course Description
    • Learning Objectives
    • Course Policies
      • Assessment
  • Course Schedule
    • Module Overview
    • Schedule Details
      • Week-by-Week Highlights
      • Important Dates
    • Weekly Cadence
      • Assessment Policies
        • Assignment Submission
        • Assignment Evaluation
        • Document Engineering Tokens
        • Course Attendance
        • Class Preparation
      • Seeking Assistance
      • Using GitHub and Discord
      • Using Email
      • Honor Code
      • Effective Document Engineering
      • Disability Services
    • Welcome Message

Syllabus

Computer Science 104 Fall 2025

Course Instructor

  • Instructor Name: Dr. Gregory M. Kapfhammer
  • Office Location: Alden Hall 108

Please visit the instructor’s web site for more information!

Instructor Appointments

  • Monday: 11:00 AM – 12:00 noon
  • Tuesday: 4:00 PM – 5:00 PM
  • Wednesday: 4:00 PM – 5:00 PM
  • Thursday: 11:00 AM – 12:00 noon
  • Thursday: 2:30 AM – 4:00 PM
  • Friday: 11:00 AM – 12:00 noon
  • Friday: 3:00 PM – 4:00 PM

All instructor appointments are 15-minute time slots and take place in Alden Hall, Room 108.

Scheduling Appointments

To schedule a meeting with the course instructor during office hours, please visit the Instructor’s Appointment Scheduler. You can schedule an appointment by clicking a suitable box in Google Calendar’s Appointment Scheduler and then reserving an open time slot. The details about your chosen appointment will appear in both your Google Calendar and the instructor’s Google Calendar. Please arrive ten minutes in advance for your meeting with an agenda, a list of discussion topics, and a description of the steps that you have already taken to address the topics on the agenda. Please also be aware that, by necessity, the meeting before yours may run late.

Course Description

An introduction to creation of effective documents and documentation using industry-standard approaches to creating and treating “documentation as code.” Participating in project-based and hands-on activities, students create purpose-driven digital writing with special attention to forms, formats, and conventions expected of contemporary technical communication. Students also gain experience with creating collaborative and ethically-consistent content working in a team-based setting. During a weekly laboratory session students employ contemporary software tools to complete technical documentation projects, reporting on their results through both written reflections and oral presentations. Students are invited to use their own departmentally approved laptop in this course; a limited number of laptops are available for use during class and lab sessions.

  • Prerequisite: None
  • Distribution Requirements: HE, SP
Explaining the Distribution Requirements
  • Quantitative Reasoning (HE): The study of Human Experience explores human physical, mental, emotional, and/or spiritual experiences as conveyed in texts broadly defined. Through engagement with such texts, students develop an appreciation for human experiences and their representations.

  • Learning Outcome: Students who successfully complete this requirement will demonstrate an understanding of how to interpret human experiences as conveyed in texts (including works of visual and performance art, rituals, cultural artifacts and traditions, and/or the written and spoken word).

  • Scientific Process and Knowledge (SP): Courses involving Scientific Process and Knowledge aim to convey an understanding of what is known or can be known about the natural world; apply scientific reasoning towards the analysis and synthesis of scientific information; and create scientifically literate citizens who can engage productively in problem solving.

  • Learning Outcome: Students who successfully complete this requirement will demonstrate an understanding of the nature, approaches, and domain of scientific inquiry.

Please refer to the description of the learning outcomes for the distribution requirements to learn more about how they play a central role in the educational experience at Allegheny College.

Learning Objectives

Allegheny College’s educational program is designed so that its graduates are able to:

  • AC-1: Think critically and creatively.
  • AC-2: Communicate clearly and persuasively as speakers and writers.
  • AC-3: Invoke multiple ways of understanding to organize and evaluate evidence, and to interpret and make sense of their experiences and the experiences of others.
  • AC-4: Apply their knowledge and learning to engage in informed debate, and to analyze and solve problems.

Computer Science 104 is a course taken by all Software Engineering majors and often taken by many students who major or minor in Computer Science, Data Science, or Informatics. Graduates with the Software Engineering major — who all take the Computer Science 104 course — must demonstrate their attainment of these learning objectives:

  • SE-1: While working in a team, can effectively design, implement, evaluate, improve, and document a solution to a problem delivered as a maintainable software system.
  • SE-2: Demonstrates competency in the theories, models, and practices of project domains that require the engineering of software.
  • SE-3: Can effectively manage and predict the cost, scope, and deadline of a software engineering project.
  • SE-4: Uses effective oral and written communication methods to explain both the technical and product-use details of a software artifact.

The specific learning objectives for Computer Science 104 are as follows:

  • CS-104-1: Describe and explain processes such as software installation or design for a variety of technical and non-technical audiences ranging from inexperienced to expert.
  • CS-104-2: Use professional-grade integrated development environments (IDEs), command-line tools, and version control systems to compose, edit, and deploy well-structured, web-ready documents and industry-standard documentation tools.
  • CS-104-3: Build automated publishing pipelines to format, check, and ensure both the uniformity and quality of digital documents.
  • CS-104-4: Identify and apply appropriate conventions of a variety of technical communities, tools, and computer languages to produce industry-consistent diagrams, summaries, and descriptions of technical topics or processes.

The learning objectives for Computer Science 104 enable the attainment of both the Software Engineering program learning objectives that in turn support the attainment of the College’s learning objectives. Throughout this course, the instructor will reference these learning objectives, connect them to the course activities, and invite students to reflect on their attainment of them. In addition to administering an assessment of learning objective attainment as a part of the final examination, the course instructor will ask students to complete a self assessment of their attainment of these learning objectives.

Course Policies

Assessment

The grade that a student receives in this class will be based on the following categories. All of these percentages are approximate and, if the need to do so presents itself, the course instructor may, for instance, change the assigned percentages during the academic semester.

Category Percentage
Class Participation 10%
Final Executable Examination 10%
Document Engineering Skill-Checks 10%
Document Engineering Knowledge-Checks 10%
Document Engineering Presentations 30%
Document Engineering Tool-Building Projects 30%

These assessment categories have the following definitions:

  • Class Participation: Students are expected to regularly attend and actively participate in all of the class and laboratory sessions, as outlined on the course schedule. After either an unexcused absence or a late attendance to either a class or a laboratory session, a student’s weekly class participation grade will be reduced. Students who need to miss class or attend class late for an excused reason should use email to communicate their situation to the course instructor in a timely fashion. A student’s weekly class participation grade will be reduced if they are frequently observed, during either class or laboratory sessions, undertaking non-course-related activities like viewing email, browsing social media, or other looking at any other content not about document engineering.

  • Final Executable Examination: The final examination is an online, executable, cumulative assessment covering all of the material during all of the course sessions, as outlined on the course schedule. Unless prior arrangements are made with the instructor, all students should use their computer to take the final examination on the scheduled date and to complete it in the stated location while taking no more than the required amount of time. The cumulative final is an executable examination that a student will complete through the use of GitHub, a text editor like VS Code, and the Python programming tools installed on their laptops. During the completion of the final examination, students may use external sources, including artificial intelligence coding assistants, provided that they cite these sources and explain how they used them to complete the final examination.

  • Document Engineering Skill-Checks: Completed during a Friday classroom session, these skill-checks are online, cumulative assessments covering all prior technical material from the prior course sessions, as outlined on the course schedule. Unless prior arrangements are made with the instructor, all students should use their computer to take these skill-checks on the scheduled date and to complete it in the stated location while taking no more than the required amount of time. Designed to prepare learners for the final executable examination, each skill-check is an executable assessment that students complete through the use of GitHub, a text editor like VS Code, and the Python programming tools on their laptops. During the completion of a skill-check, students may use external sources, including artificial intelligence coding assistants, provided that they cite these sources and explain how they used them to complete the examination.

  • Document Engineering Knowledge-Checks: Completed during a Friday classroom session, these knowledge-checks are in-person, cumulative assessments covering all prior technical material from the prior course sessions, as outlined on the course schedule. All students should be prepared to answer questions about the conceptual knowledge and technical skills in the field of document engineering, with a focus on both the material presented and discussed during class and investigated as a part of the document engineering tool building projects. Students may not use any external sources (e.g., artificial intelligence assistants, online sources, or written notes) or devices (e.g., laptop, tablet, or mobile phone) during an in-person knowledge check.

  • Document Engineering Presentations: Completed by assigned teams of students during a Wednesday classroom session, these in-person presentations are either Document Engineering Concept Overviews (DECO) or Document Engineering Project Critiques (DEPC). During a DECO presentation, a team of students will teach the entire class on a specific document engineering concept like Diataxis or README-driven development. During a DEPC presentation, a team of students will use all prior course material to critique the documentation of an assigned open-source software project. For each team assigned to give either a DECO or a DEPC presentation, there will be another assigned team of students that is responsible for posing questions to the presenting team and evaluating the presentation. For both DECO and DEPC presentations, both the presentation and evaluation teams will receive a grade for their submitted work. Although both the presentation and examination teams may use external sources, including artificial coding assistants, during the completion of their materials, they must cite their sources. Except for the slides published on the course website, the presenters may not use any external sources during either the presentation or the evaluation phases. All document engineering presentations must be completed through the use of Quarto, RevealJS, Markdown, Git, GitHub, and the GitHub Flow model. All work for a presentation must be available, in final form, as a pull request in the GitHub repository for the course web site, no later than 11:59 PM on the day before the team is scheduled to present. Each student member of a presentation team must use Git and their own GitHub account to commit their work through to the pull request that their team creates for the presentation. In addition to giving the presentation itself, every student on a presentation team must make a contribution to the presentation slides in the form of commits to the pull request.

  • Document Engineering Tool-Building Projects: Completed individually in three stages that span the entire academic semester, these projects enable students to build and evaluate a complete document engineering pipeline in the Python programming language. At the start of each of the three course modules, a student will receive a project description for one phase of the document engineering pipeline. During the remainder of the module, a student will complete four demonstrations during the laboratory sessions and then submit a complete, working, well-documented project and a final project report at the end of the module. During the completion of a tool-building project, students may use external sources, including artificial intelligence coding assistants, provided that they cite these sources and explain how they used them to complete the project.

Additional Assessment Details
  • Class Participation: One grade reported at the conclusion of each of the three course modules.

  • Final Executable Examination: Grade automatically reported at end of one examination period.

  • Document Engineering Skill-Checks: Grade automatically reported at end of a Friday classroom session. Since there are two skill-check assessments for each of the three course modules, a student will receive a total of six assessment reports for their skill-checks.

  • Document Engineering Knowledge-Checks: Grade reported at conclusion of a course module. Since there is one in-person knowledge-check assessment for each of the three course modules, a student will receive a total of three assessments for their knowledge-checks.

  • Document Engineering Presentations: There are two types of these team-based presentations: Document Engineering Concept Overviews (DECO) and Document Engineering Project Critiques (DEPC). A grade is reported one-week after the completion of the presentation for both the presenting team and the evaluation team. For their DECO and DEPC work, each student will receive three assessments for presentations and three assessments for their evaluations.

  • Document Engineering Tool-Building Projects: There are two types of grades reported for these projects: demonstration grades and module-level project grades. A grade is reported one-week after the completion of a demonstration or the final submission of their project at the end of a course module. For their work on the document engineering tools, a student will receive a total of twelve demonstration assessments and three detailed, module-level project assessments.

Course Schedule

Module Overview

  • Module One:
    • Topic: Document Engineering Foundations
    • Weeks: One through six
    • Subjects for Critique: uv and Quarto
    • Technical Topics:
      • Documentation: Diataxis, README-driven development
      • Engineering: Python fundamentals, Version control, Quarto
  • Module Two:
    • Topic: Document Engineering Building Blocks
    • Weeks: Seven through eleven
    • Subjects for Critique: ruff and Quarto
    • Technical Topics:
      • Documentation: Literate programming, Localization
      • Engineering: Intermediate Python programming, AI coding agents, Quarto
  • Module Three:
    • Topic: Advanced Document Engineering
    • Subjects for Critique: ty or Pyrefly and Quarto
    • Weeks: Twelve through sixteen
    • Topics:
      • Documentation: Zettelkasten, Digital gardens
      • Engineering: Advanced Python programming, Context engineering, Quarto

Schedule Details

Week-by-Week Highlights

  • Basics:
    • Start Semester: Week One
    • Fall Break: Week Seven
    • Mid-Term Grades Submission: Week Nine
    • All-College Programming: Week Eleven
    • Thanksgiving Break: Week Fourteen
    • End Semester: Week Sixteen
    • Final Examination: Week Sixteen
  • Document Engineering Skill-Checks:
    • Skill-Check One: Week Two
    • Skill-Check Two: Week Three
    • Skill-Check Three: Week Seven
    • Skill-Check Four: Week Eight
    • Skill-Check Five: Week Twelve
    • Skill-Check Six: Week Thirteen
  • Document Engineering Knowledge-Checks:
    • Knowledge-Check One:
      • First Half of Class: Week Four
      • Second Half of Class: Week Five
    • Knowledge-Check Two:
      • First Half of Class: Week Nine
      • Second Half of Class: Week Ten
    • Knowledge-Check Three:
      • First Half of Class: Week Fourteen
      • Second Half of Class: Week Fifteen

Important Dates

  • Final Executable Examination
    • Examination Code: G
    • Date: Wednesday, December 10, 2025
    • Time: 9:00 AM – 12:00 Noon
    • Location: Alden 109

Weekly Cadence

  • Monday:
    • Document engineering deep-dive presentations by the course instructor
    • Technical and engineering knowledge and skills in the field of document engineering
  • Tuesday:
    • Presentation teams finalize GitHub pull request for presentation by 11:59 PM
    • Excepting documented, extenuating circumstances, no content allowed after deadline
  • Wednesday:
    • Document engineering presentations and evaluations by student teams
    • As outlined on the course schedule, teams give two types of presentations:
      • Document Engineering Concept Overviews (DECO)
      • Document Engineering Project Critiques (DEPC)
    • Teams and presentation topics assigned at the start of a course module
  • Wednesday Laboratory:
    • Across five weeks, complete tasks for document engineering tool-building projects
    • Individual project completion, with instructor and student technical leader support
    • Give demonstrations to and receive feedback from the course instructor
    • Demonstration order is randomly generated and announced incrementally
  • Friday:
    • Use GitHub, VS Code, and Python to complete document engineering skill-checks
    • Complete in-person document engineering knowledge-checks in instructor’s office

Assessment Policies

Unless exempted by the instructor, students must abide by the following assessment policies:

Assignment Submission

All assignments will have a stated due date shared through GitHub, GitHub Classroom, and/or the Document Engineering Discord. No credit will be awarded for any course work that you submit to the incorrect GitHub repository or website. Unless special advance arrangements are made with the instructor to address extenuating circumstances or a student pays a document engineering token, no work will be accepted after the deadline.

Assignment Evaluation

Using a report that the instructor shares with you through your GitHub repositories devoted to work in the field of document engineering, you will privately receive a grade for and feedback on your projects. Your grade will be a function of whether or not you (a) completed work that fulfills the project’s specification and (b) submitted it by the deadline to the stated platform.

Document Engineering Tokens

Students may “spend” up to four “tokens” that they may use to secure seven days of additional time to complete a project. After using a provided GitHub repository to request their use of a token, students may use a token to re-take either a document engineering skill-check or knowledge-check. Students cannot use a token for the final executable examination, a DECO presentation or evaluation, a DEPC presentation or evaluation, or any part of any phase of a document engineering tool-building project. Outside of using these four tokens — or severe, extenuating, and unexpected circumstances that are well documented — the instructor will not grant any requests for extensions or assignment re-reassessments.

Course Attendance

It is mandatory for all students to attend every one of the course sessions with all the equipment needed for this course, including a charged laptop, a laptop power supply, and a web-enabled device that can scan a QR code (e.g., a mobile phone or a tablet). If, due to extenuating circumstances beyond your reasonable control, you will not be able to attend a session, then, whenever possible, please communicate with the instructor at least one week in advance to describe your situation. After a student misses more than two weeks of class and laboratory sessions (i.e., misses more than a total of six classes and two laboratory sessions), their final grade in the course will be reduced by one letter grade. Students who have any signs of illness should not attend any of the in-person course or laboratory sessions. With that said, missing class for any reason — including illness or attendance at any College-approved event — will still be recorded by the instructor as a course absence.

Class Preparation

In order to minimize confusion and maximize learning, students must invest time to prepare for the class sessions that focus on the concepts, tasks, and tools of document engineering. Although the course instructor and the student technical leaders will always be available to serve as guide for individual students, teams of students, and the entire class, it is expected that students will volunteer to lead and actively contribute to all class sessions. Only those students who have prepared for class by reading and running the assigned material and completing the assigned projects will be able to effectively participate in these class discussions. To help students remain organized and to effectively prepare for classes, the instructor will maintain a list of course slides and a course schedule with reading assignments, programming suggestions, and other important information about the course.

Seeking Assistance

Students who are struggling to understand the knowledge and skills developed in this course’s exploration of document engineering are encouraged to seek assistance from the instructor and/or the student technical leaders. Students should, within the bounds of the Honor Code, ask and answer questions on the Document Engineering Discord Server; please request assistance from the instructor and student technical leaders first through public Discord channels before sending an email or a direct message. Students who need more assistance are invited to schedule a meeting through the instructor’s appointment scheduler and come to the meeting with details about their question. Students can see the office hour schedule for student technical leaders by viewing the list of student technical leaders and by monitoring announcements in the Allegheny College Computer Science Discord Server.

Using GitHub and Discord

This course will primarily use GitHub and Discord for all course communication. We will use GitHub for the sharing of both source code and documentation for course projects and for reporting issues in those materials. We will use two distinct Discord servers for all course discussions. The Document Engineering Discord Server provides a way for members of the document engineering community to use text and video to chat with each other and will be the main forum for discussing the professional and technical content in the field of this course. The Allegheny College Computer Science Discord Server will be the main forum for Department of Computer and Information Science announcements. Finally, any content that a student wants the instructor to assess (e.g., the work for a document engineering tool building project) must be in a GitHub repository created by a GitHub Classroom-affiliated link.

Using Email

Although we will primarily use the Document Engineering Discord Server for class communication, the course instructor will sometimes use email to send announcements about important matters such as changes in the schedule. It is your responsibility to check your email at least once a day and to ensure that you can reliably send and receive emails. This class policy is based on the statement about the use of email that appears in The Compass, the College’s student handbook; please see the instructor if you do not have this handbook.

Honor Code

The Allegheny College Academic bulletin describes The Academic Honor Program that governs the entire academic program at Allegheny College. The Honor Program applies to all work that is submitted for academic credit or to meet non-credit requirements for graduation at Allegheny College. This includes all work assigned for this class (e.g., presentation slides, skill checks, knowledge checks, executable examinations, and course projects). All students who have enrolled in the College will work under the Honor Program. Each student who matriculates at the College acknowledges this Honor Code pledge:

I hereby recognize and pledge to fulfill my responsibilities, as defined in the Honor Code, and to maintain the integrity of both myself and the College community as a whole.

Effective Document Engineering

Students who create the source code and documentation for their document engineering projects should ensure the implementation of a high-quality final product. While students are permitted to use a wide variety of document engineering tools, such as integrated development environments, testing frameworks, automated debuggers, and code generators (e.g., systems that leverage large language models through GitHub Copilot) and documentation sites such as StackOverflow, they must take final responsibility for all the source code and documentation that they submit for this course, including artifacts that are automatically generated by a tool like an AI coding assistant such as Gemini or OpenCode.

This policy means that every student must work as an effective documentation engineer by documenting the sources for their work and verifying the correctness, maintainability, and long-term reliability of all source code and documentation that they submit. As such, students who use software tools to create or revise content are responsible for citing their sources and demonstrating their understanding of it as a part of any follow-on written or oral assessment. Moreover, all students in the class are responsible for all of the source code and documentation submitted to the GitHub repository that hosts the course projects, including any tool-generated software artifacts. This means that every student should be able to answer questions, during either an in-person or online discussion, about any document engineering content, including that which was automatically generated by a software tool.

Students who are effective documentation engineers also pledge to always abide by the ACM Code of Ethics and Professional Conduct and the ACM Technology Policy Council’s Principles for the Development, Deployment, and Use of Generative AI Technologies. Unless the students in this course furnish a different governing contract, they also pledge to follow, in addition to these two ACM documents, the principles espoused by exemplary technical organizations, such as Oxide Computer and its public statement of mission and principles.

Disability Services

Students with disabilities who believe they may need accommodations in this class are encouraged to contact Student Accessibility and Support Services (SASS) at 814-332-2898 or studentaccessibility@allegheny.edu. SASS is located in the Center for Student Success in Pelletier Library. Please contact SASS as soon as possible to ensure that approved accommodations are implemented in a timely fashion.

Welcome Message

In reference to software, Frederick P. Brooks, Jr. wrote in chapter one of The Mythical Man Month that “the magic of myth and legend has come true in our time.” Software is a pervasive aspect of our society that changes how we think and act. High quality and well-documented software also has the potential to positively influence the lives of many people. Let’s embark on this journey of discovery and innovation, as we learn how to become “prosegrammers” who can harness the power of software and its top-notch documentation. At the start of this class, I invite you to join together in an adventure in document engineering!

External Learners

This syllabus is for learners who enrolled in a for-credit Document Engineering course in the Department of Computer and information Science at Allegheny College. Even though external learners are not bound by this syllabus, they can rely on the Prosegrammers team and the members of the Document Engineering Discord Server

Back to top

Prosegrammers