Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A couple of tips from the teaching team for our previous milestones on Gradescope #89

Open
9 tasks
Arc-Celt opened this issue Jan 21, 2025 · 0 comments
Open
9 tasks
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers project management dashboard

Comments

@Arc-Celt
Copy link
Collaborator

Arc-Celt commented Jan 21, 2025

  • 1. Add imports in __init__.py:

    from sharpedge.reposition_image import reposition_image
    from sharpedge.frame_image import frame_image
    from sharpedge.modulate_image import modulate_image
    from sharpedge.pooling_image import pooling_image
    from sharpedge.pca_compression import pca_compression
    from sharpedge.seam_carving import seam_carve
    

    So that when someone imports them later, they can do so by using, e.g.:

    from sharpedge import reposition_image
    from sharpedge import frame_image
    
  • 2. Once you have your functions implemented, I'd also add some example images under each function on the README file to better illustrate what they do.

  • 3. Function "reposition_image" could be broken into the smaller tasks (rotate, flip, shift), otherwise it tries to accomplish too much, writing tests would quickly become too complex. Note that you can still have a high-level function that can call other functions that do just one job (to maintain a high level API like you currently do).

  • 4. Same with "modulate_image", break it down into the different tasks (channel extraction, image conversion, channel swap)

    [Note from Archer] Since we've already done writing all the complex test cases... Can we leave the function as they are now?

  • 5. Add whether we use sklearn's PCA or implement our own in the docstring.

  • 6. [For future branches] Define a branch prefix or naming convention, e.g. feature/, fix/, docs/, so it's more consistent and you can clearly see what the work being done is about.

  • 7. There are unnecessary files in the release packages (pycache).

  • 8. Some functions are quite large (like modulate_image and frame_image). I recommend breaking them down (keep the high level API) to make testing easier.

  • 9. There are some tests that tackle a lot of different errors (e.g. test_error_cases()), it might be a good idea to break it down further so you know precisely what's causing issues.

@Arc-Celt Arc-Celt added documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers project management dashboard labels Jan 21, 2025
@Arc-Celt Arc-Celt changed the title A couple of tips from the teaching team for our milestone 1 on Gradescope A couple of tips from the teaching team for our previous milestones on Gradescope Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request good first issue Good for newcomers project management dashboard
Projects
None yet
Development

No branches or pull requests

4 participants