Skip to content

feelpp/course.project-fin

Repository files navigation

CSMI Project Documentation - Project Management Course

This directory contains the extracted project management materials for the joint C++ and Project Development course for Master CSMI students.

Overview

This project is a collaborative effort between two courses:

  • C++ for Scientific Computing - Technical implementation (see project-cpp.pdf in parent directory)
  • Project Development and Management - Software engineering practices (this directory)

Files in This Directory

1. project-management.tex (Instructor Document)

Complete project management guide covering:

  • Project overview and learning objectives
  • GitHub Classroom setup and version control requirements
  • CI/CD with GitHub Actions specifications
  • Docker containerization requirements
  • Testing strategy and requirements
  • Documentation standards
  • Timeline with 3 versions (milestones)
  • Report and presentation requirements
  • Grading rubrics
  • FAQ section

Audience: Course instructors and teaching assistants

Compile with:

pdflatex project-management.tex
pdflatex project-management.tex  # Run twice for TOC
  1. report-template.tex: A simplified LaTeX template for the student report with guidelines only. This includes:
    • All required sections with clear guidelines
    • No pre-filled mathematical derivations or code examples
    • Placeholder for functional analysis content (to be added by colleague)
    • Students fill in their own content following the guidelines
    • Bibliography setup and appendices structure Audience: Students working on the project

Compile with:

pdflatex report-template.tex
pdflatex report-template.tex  # Run twice for TOC and references

Note: Students should rename this to report.tex in their project repository and fill in their content.

3. presentation-template.tex (Student Template)

A simplified Beamer presentation template with:

  • Professional Madrid theme
  • Slide structure with guidelines only (no pre-filled content)
  • Recommended sections for 15-20 minute presentations
  • Students create their own content following the outline

Compile with:

pdflatex presentation-template.tex

4. Detailed Templates (Reference Only)

  • report-template-detailed.tex: Original detailed report template with examples
  • presentation-template-detailed.tex: Original detailed presentation with sample content

These are kept as backup/reference but students should use the simplified versions.

5. project-cpp.pdf (from parent directory)

Technical specifications for the C++ implementation, including:

  • Mathematical formulation of the FEM problem
  • Mesh file format description
  • Implementation requirements
  • Numerical methods
  • Expected results

Note: This file is referenced but not included in this directory. It should be distributed separately as it contains the C++ technical requirements.

Project Timeline

The project has three main milestones:

Version 0 (Due: November 24, 2025)

  • Repository setup via GitHub Classroom
  • Project structure initialized
  • Problem reformulation document
  • Initial planning

Version 1 (Due: December 11, 2025)

  • Complete C++ implementation
  • CI/CD pipeline functional
  • Docker image published
  • Tests passing
  • Documentation complete

Version 2 (Due: January 13, 2026)

  • Final report submitted
  • Oral presentation delivered
  • All deliverables polished

GitHub Classroom Integration

This project uses GitHub Classroom. Students will:

  1. Accept assignment via GitHub Classroom link (provided by instructor)
  2. Repository automatically created from template
  3. Work in their repository following version control best practices
  4. Submit via GitHub releases for each version

Key Technologies

Students will use:

  • C++17 for implementation
  • CMake for build system
  • Eigen for linear algebra
  • GitHub Actions for CI/CD
  • Docker for containerization
  • LaTeX for documentation
  • Google Test/Catch2 for unit testing

Functional Analysis Component

Note: A functional analysis section will be provided by a colleague and should be integrated into:

  • The mathematical formulation section of the report template
  • Additional theoretical background if needed

Location in report: Section 2 (Mathematical Formulation)

What to add:

  • Weak formulation derivation
  • Function spaces (Sobolev spaces)
  • Existence and uniqueness theorems
  • Regularity results
  • Theoretical convergence rates

Instructions for Instructors

Setting Up GitHub Classroom

  1. Create a GitHub Classroom for the course

  2. Create assignment based on template repository containing:

    • Basic project structure (src/, include/, tests/, docs/)
    • CMakeLists.txt skeleton
    • .gitignore for C++ and LaTeX
    • README.md with project description
    • Example mesh files
    • This report template
  3. Set deadline for each version

  4. Enable CI/CD workflows in template

  5. Configure autograding (optional)

Distribution

To students, provide:

  • project-management.pdf (compiled from project-management.tex)
  • project-cpp.pdf (C++ technical requirements)
  • report-template.tex (simplified with guidelines only)
  • presentation-template.tex (simplified with guidelines only)
  • GitHub Classroom invitation link
  • Functional analysis material (when available)

Keep for instructors:

  • Source .tex files
  • Detailed template versions (for reference)
  • Grading rubrics
  • Solutions and reference implementation (if applicable)

Customization

For Current Academic Year

Update the following in both documents:

  • Academic year (currently 2025-2026)
  • Deadlines (currently Nov 13, Dec 20, Jan 13)
  • GitHub organization name
  • Course instructor names
  • Office hours schedule

For Functional Analysis Integration

When you receive the functional analysis content from your colleague:

  1. Add it to Section 2.1 of the report template

  2. Ensure it includes:

    • Mathematical preliminaries
    • Weak formulation derivation
    • Existence/uniqueness proofs (or references)
    • Finite element theory foundations
  3. Update the grading rubric if the analysis portion requires separate evaluation

Compilation Requirements

To compile the LaTeX documents, you need:

  • texlive-full (Linux/WSL)
  • MacTeX (macOS)
  • MiKTeX (Windows)

Required packages:

  • geometry
  • hyperref
  • listings
  • amsmath, amssymb
  • booktabs
  • graphicx

Questions or Issues

If you have questions about:

  • Project management aspects: Contact project management course instructor
  • C++ technical aspects: Contact C++ course instructor
  • Functional analysis theory: Contact functional analysis colleague
  • GitHub Classroom setup: Refer to GitHub Classroom documentation

License

These course materials are for educational use in the Master CSMI program.

Version History

  • v1.0 (November 2025): Initial extraction from combined project.tex
    • Separated project management from C++ technical content
    • Created comprehensive student report template
    • Added detailed timeline and grading rubrics
    • Prepared for functional analysis integration

Last Updated: November 9, 2025

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages