Support for NPGR003 (Introduction to Computer Graphics) lecture. Year 2023/24.
See NPGR003 lecture - current info.
Every NN-*
directory refers to an item in the lab plan
(usually you will find a programming task there). You don't have
to do all of them to pass the lab, 1/2 to 2/3 is enough (see the
points in task definitions and in the shared table).
This global README.md
defines general rules and conditions,
see individual directories for task-specific information.
See this shared table for current points. Please check the due dates of each task. The primary source of organizational information is the shared table, not the GIT repository.
Contact me pepca@cgg.mff.cuni.cz with any suggestions, comments or complaints. If you are in a different lab group, please contact your lab supervisor first.
Some directories contain support files from the teachers. We are using the .NET 6
(select .NET 6.0 (Long Term Support)
while creating a new project),
it works well on Windows, Linux and macOS.
We use Visual Studio 2022
, the Community
(free) version is good enough for all tasks.
The Silk3D directory contains examples and support files for 3D graphics using the library Silk.NET (web page link).
Go to the Silk3D directory for more information.
Please place all your solutions in separate solutions directory in the repository. One subdirectory per task. You'll find short instructions there.
The naming conventions in the standard Visual Studio project creation procedures
allow you to simply copy a pilot task project to the solutions
directory.
So if you want to extend a pilot project, just copy everything in a task directory
to the solutions
directory, rewrite the README.md
and you are ready
to work on your copy. To be safe, remove the .vs
,
obj
and bin
subdirectories first.
Example of files and directories that should be copied to the solutions
directory:
/01-AllTheColors/
/01-AllTheColors/01-AllTheColors.csproj
/01-AllTheColors/01-AllTheColors.sln
/01-AllTheColors/Program.cs
/01-AllTheColors/README.md (should be overwritten later by README-TEMPLATE.md)
/01-AllTheColors/Properties/
/01-AllTheColors/Properties/launchSettings.json
Template for your documentation of the finished task is here. Copy
the file to every directory with your solution (over the original README.md
) and
edit all the sections.
The use of AI assistants (based on Large Language Models) is not prohibited, on the contrary! We welcome you to use them under two conditions:
- you must acknowledge for each task that the AI assistant significantly helped you.
- you must document your use of the assistant. For example, if you use ChatGPT, record the entire conversation and post a link to it. For more "built-in" assistants, you should write a verbal report of what the help looked like, how often (and how hard) you had to correct the machine-generated code - and if you used comments in the code, leave them in!
Credit bonuses/maluses for using an AI assistant are still undecided.
Over the course of the semester, some of you will have the opportunity to write short reports and present your experiences to the rest of the group (and you'll get extra credit for doing so).
You will work in your own private repositories. You will start from our shared repository and add your own code and documentation as you solve individual tasks.
We recommend using one of the following platforms - there are more detailed instructions for each of them. The only bigger difference is in the 3rd step (granting permissions to us = lab supervisors).
- You have to set up a new private repository yourself.
- Connect it to
our shared GIT using
git remote
. The command might look like this
$ git remote add origin https://github.com/pepcape/NPGR003-23.git
- Finally, you have to give us permissions to access your private repository, this is done using the "Collaborator" role. Depending on who your lab supervisor is, you invite either https://github.com/pepcape or https://github.com/tomasiser.
- If your GitHub username is a nickname, please email us with your real name.
- You have to set up a new private repository yourself.
- Connect it to
our shared GIT using
git remote
. The command might look like this
$ git remote add origin https://github.com/pepcape/NPGR003-23.git
- Finally, you have to give us permissions to access your private repository, this is done using the "Reporter" role. Depending on who your lab supervisor is, you invite either https://gitlab.mff.cuni.cz/pelikan or https://gitlab.mff.cuni.cz/isert.
- If anything doesn't work well in your Linux/macOS environment, you should write me (pepca@cgg.mff.cuni.cz) as soon as possible. Of course you could report positive experience in Linux/macOS as well.
- You can work in your repositories without major restrictions. A recommended place for your solutions is the solutions directory. You'll find short instructions there.
- We suggest that you add a tag with the name of the task to the repository
at the time of submission (for example,
01-solution
). See the git tag documentation. - Of course, it wouldn't hurt to send us an email to let us know that you've solved the task. In time, we will see if the "tag" system is sufficient.
- Don't forget to point out the extra work you have done (for bonus points). Use the "Extra work / Bonuses" section in the documentation.
- If you want use any third party library, do it correctly and use the NuGet system. Many pilot projects are using libraries already (e.g. SixLabors.ImageSharp), so learn by example.
- For all your documentation please use the MarkDown (.md) syntax (another MarkDown page)
- Use the usual
README.md
in each solutions' directory (see the solutions/README.md for instructions)! - Visual Studio 2022 supports direct MarkDown editing (with live result preview) starting from the 17.5 update