This directory contains the extracted project management materials for the joint C++ and Project Development course for Master CSMI students.
This project is a collaborative effort between two courses:
- C++ for Scientific Computing - Technical implementation (see
project-cpp.pdfin parent directory) - Project Development and Management - Software engineering practices (this directory)
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 TOCreport-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 referencesNote: Students should rename this to report.tex in their project repository and fill in their content.
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.texreport-template-detailed.tex: Original detailed report template with examplespresentation-template-detailed.tex: Original detailed presentation with sample content
These are kept as backup/reference but students should use the simplified versions.
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.
The project has three main milestones:
- Repository setup via GitHub Classroom
- Project structure initialized
- Problem reformulation document
- Initial planning
- Complete C++ implementation
- CI/CD pipeline functional
- Docker image published
- Tests passing
- Documentation complete
- Final report submitted
- Oral presentation delivered
- All deliverables polished
This project uses GitHub Classroom. Students will:
- Accept assignment via GitHub Classroom link (provided by instructor)
- Repository automatically created from template
- Work in their repository following version control best practices
- Submit via GitHub releases for each version
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
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
-
Create a GitHub Classroom for the course
-
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
-
Set deadline for each version
-
Enable CI/CD workflows in template
-
Configure autograding (optional)
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
.texfiles - Detailed template versions (for reference)
- Grading rubrics
- Solutions and reference implementation (if applicable)
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
When you receive the functional analysis content from your colleague:
-
Add it to Section 2.1 of the report template
-
Ensure it includes:
- Mathematical preliminaries
- Weak formulation derivation
- Existence/uniqueness proofs (or references)
- Finite element theory foundations
-
Update the grading rubric if the analysis portion requires separate evaluation
To compile the LaTeX documents, you need:
texlive-full(Linux/WSL)- MacTeX (macOS)
- MiKTeX (Windows)
Required packages:
- geometry
- hyperref
- listings
- amsmath, amssymb
- booktabs
- graphicx
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
These course materials are for educational use in the Master CSMI program.
- 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