![](./images/perspective_1.jpg)
![](./images/perspective_2.jpg)
TEACHING ASSISTANT
Xi Han
Computer Science PhD Student Email: xihan1@cs.stonybrook.edu Office: NCS 130 Office Hours:
If you are coming, please email your TA for at least 12 hours in advance regrading your issue. |
SPECIFICATIONS ON PROGRAMMING ASSIGNMENTS
-
Language, Library And Build System.
All assignments must be completed using C/C++,
utilizing
OpenGL
with
GLFW
as the designated window toolkit and
GLAD
as the loading library.
The use of alternative window toolkits or loading libraries is strictly prohibited.
The designated build system for your program is
CMake.
It is imperative that your
CMakeLists.txt
script modifies nothing outside your submission directory. All desired functionalities for submission should be integrated into a single program. The resulting executable must be namedpa<x>
, where<x>
represents the assignment number (e.g.,pa1
,pa2
, etc.). - Platform. Testing of your submission will be conducted on a VMWare guest OS (64-bit Ubuntu 20.04.1 desktop) with OpenGL 4.1 in core-profile mode (modern OpenGL). It is essential to refrain from using deprecated functions in immediate mode (legacy OpenGL). It is your responsibility to ensure that your code compiles and runs on the specified testing platform. To minimize compatibility issues, it is highly recommended that you set up your environment and complete your programming assignments within the VMWare VM. Comprehensive details regarding VM setup as well as a ready-to-use VM will be available on Brightspace.
-
Submission.
Please compress your assignment into a
zip
file<your_sbuid>_pa<x>.zip
, where<your_sbuid>
is your 9-digit SBU ID,<x>
is 1, 2, ..., and submit via Brightspace. Note: All names are case sensitive. Please include:-
A README file:
- Format requirements: Please follow the program templates;
- You are responsible for resolving any discrepancies between your README and your program. Please ensure that all implemented features are checked with "x"s in your README. Only those features that have been checked will be considered for grading.
- Your source code.
- Dependencies. Note that libraries (e.g., GLFW, GLM, etc.) are dependencies and they should not be included directly in your project. As an exception, GLAD should be included in your project as it is designed to be used this way;
-
Temporary files
(e.g.,
CLion's
cmake-build-debug
directory, etc.); -
IDE-specific project files
(e.g.,
CLion's
.idea
directory, Visual Studio Code's.vscode
directory, etc.); -
Git track files
(e.g.,
.gitignore
file and.git
directory, etc.)
-
A README file:
-
Structure Requirements.
After extracting the contents of the
zip
package, your submission directory should adhere precisely to the specified structure below. (Please note that all names are case-sensitive, with exceptions to be detailed later.) Following the extraction, all your files must be consolidated within a single root directory named<your_sbuid>_pa<x>
. It is crucial to avoid unzipping them into the parent directory (i.e., the directory which contains yourzip
package).
foo
andbar
is just for example and is not enforced. At the root level, you have the option to create anetc
directory for configuration files and avar
directory for input/output files and temporary files. Additionally, you are permitted to create subdirectories to organize your source files, such as placing your shader files insrc/shader/
. -
Testing.
Your TA may compile and run the release build of your program
in the root of your submission directory, i.e.,
<your_sbuid>_pa<x>
, with command "mkdir build; cd build; cmake -DCMAKE_BUILD_TYPE=Release ..; make; cd ..; ./build/pa<x>
". You will be responsible for any incompatibility with the aforementioned commands, e.g., shader file not exist error due to improperly-coded shader path. -
Penalties. Penalties are given as follows:
- For infractions against the general requirements outlined above, penalties will be imposed based on the specific circumstances;
- Penalties for violations of the same requirement will be doubled for subsequent instances. For example, a deduction of 10% will apply for the first occurrence, increasing to 20% for the second violation, and so forth;
- Late penalties will be administered in accordance with the guidelines established on the main course website;
- This policy is equally applicable to homework (non-programming).
SPECIFICATIONS ON HOMEWORK (NON-PROGRAMMING)
-
Please submit a single
pdf
file to Brightspace. -
Naming convention:
<your_sbuid>_hw<x>.pdf
. Note: All names are case sensitive. For homework (non-programming), the submission file ends withhw
, notpa
! - The submission file should be formatted by LaTeX, or converted from Microsoft Word or other document editors. Handwritten submissions (or formatted submissions containing any handwritten stuff like photos or scans of math formulas, figures, tables, graphs, etc.) are not permitted.