Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Assessment Brief: Coursework 2023-24

Assessment Details

Course Title:

Fundamentals of Computer Science II

Course Code:

LCSCI4208

Level:

4

Assessment Title:

Project 2

Assessment Number:

AE3

Assessment Type:

Code & Documentation

Restrictions on Time/Length:

24-32h

Individual/Group:

Group of 2

Assessment Weighting:

30%

Issue Date:

20 March 2024

Hand in Deadline:

19 April 2024

Planned Feedback Deadline:

28 calendar days after hand in deadline

Mode of Submission:

Online (Gradescope)

Anonymous Marking:

Yes

Assessment Task

For your second project, you will continue work from Project 1 on image compression. You will extend the program to remove vertical seams instead of columns. Vertical seams are a sequence of Pixels that start from the top of the image to the bottom where every Pixel is either directly or diagonally above the next Pixel in the sequence. We want to remove the bluest seam (seam with the largest blue value sum) or the seam with the lowest energy in the image.

The seam with the lowest energy will be the least impactful seam to remove in terms of maintaining image recognizability.

We define energy using the following formula given br(Pixel) as the brightness of the Pixel. The brightness of a Pixel is the average of the RGB values of the color of a given pixel.

Consider pixel E below. E has 8 neighbors. A, B, C, D, F, G, H, and I.

We can then define the horizontal energy and the vertical energy as:

HorizEnergy(E) = (br(A) + 2br(D) + br(G))  (br(c) + 2br(F) + br(I))

vertEnergy(E) = (br(A) + 2br(B) + br(c))  (br(G) + 2br(H) + br(I))

Finally, we can define the Energy at E:

Seam Finding:

Consider the table of numbers below as the pixel energies of a 4x4 image that you have computed. Scanning through this one row at a time, we look for the cheapest total energy from the current row to the top of the image.

The first row, 5 6 3 8, has no neighbors above it, so it is the minimum for each location.

Now consider the 4 (bold, shaded) in the table below:

Assessment Brief: Coursework 2023-24

It has 5 and 6 as neighbors above. If we were to sum 4 and 5 we get 9, 4 and 6, 10. Since 9 is smaller that is the new value for the path and we record that it came from 5.

Now consider the pixel in the second row and second column, it is a 1. Its neighbors above are 5, 6, and 3:

The smallest sum is 3 and 1, so the value becomes 4 from 3 above and to the right.

Continuing the row becomes:

Repeating with the next row:

Finally, last row:

Now tracing it backward from 7, we see 3, 4, 5, 7 as the lowest energy seam. These values are the smallest within each row, that is, 3 is the smallest at row 1, 4 is the smallest at row 2, 5 the smallest at row 3 and 7 the smallest at row 4. The resulting seam, in the table below, is the path (top-bottom) following the cells with thick borders.

We are also implementing the ability to reinsert seams in the reverse order that they were removed, so an “undo” button. Therefore, you must keep track of the seams that you removed from the image efficiently and in order and the location to reinsert  the seam’s Pixels in the image grid.

Your program should take the following key inputs:

-    “b” show the bluest seam in the image (highlight blue)

-    “e” show the seam with the lowest energy in the image (highlight red)

-    “d” delete the seam from the image and show the resulting image

-    “u” undo by reinserting the previously deleted seam back into the image

Your program should include the methods: removeSeam, and insertSeam. The removeSeam and insertSeam methods must run in O(n) time where n is the height of the image in pixels. Therefore, we are notable to use a 2D array to store the Pixels in the grid, so choose a more natural way to represent the grid of Pixels.

In summary, this project asks:

1.  Change the program to compress by removing seams instead of columns.

Define seams as a string of pixels from a pixel in the top row and choosing the next pixel by finding the surrounding 3 pixels (down left, down, downright)

from the current pixel with the highest blue value all the way down to a pixel in the bottom row of the image.

2.  Remove bluest seams or the lowest energy based on choice. The bluest should be highlighted in blue, the lowest energy in red.

3.  Create a user interface that allows the user to select how deletion should

happen (lowest energy or bluest). The program then highlights the column and removes it upon user confirmation. The interface allows the user to undo any number of deletions.

Specification

You must submit your work as a ZIP file to Gradescope. This file should:

●   Preserve the directory structure covered during the course (i.e., main, test, package)

●   The pom.xml with updated dependencies, where applicable.

●   Include all of the corresponding Java files that perform the tasks requested above, that is, not just the class containing the main method.

●   Comprise the image(s), in PNG format, involved in the project:

   The original image

○   At least 1 image resulting from applying the bluest seam to the original image.

○   At least 1 image resulting from applying the lowest energy seam to the original image.

●   All Java files should be commented on by you.

Assessment Criteria

70  or higher There was evidence of the ability to perform all programming tasks correctly. The demonstration of the methods was excellent, coherent, well documented and clearly explained.

60-69

There was  evidence of ability to perform some programming tasks correctly. The demonstration of the methods is good, coherent and reasonably detailed and explained.

50-59

There was  evidence of ability to perform some programming tasks correctly,   but   the   demonstration   of   the   methods   was   limited, incoherent, not adequately documented and vaguely explained.

40-49

There was limited evidence of ability to perform programming tasks. The demonstration of the methods involved significant omissions and produced substantial inaccuracies.

39 or less

Failure to solve the programming task in assignment. Methods were completely incorrect or absent. General grading criteria for Level 4 are described in Appendix B of the course syllabus.

Marking

 

The   University   uses   two   common   assessment   marking   schemes  –  one  for undergraduate and one for postgraduate - to mark all taught programmes leading to an award of the University.

More  detailed  information  on  the  common  assessment  marking  scheme  and the criteria can be found in the Course Syllabus, available on the University’s VLE.

Information for students on pathway and mobility programmes about conversion to Northeastern University grades is available in the relevant programme handbook

Learning Outcomes

This assessment will enable students to demonstrate in full or in part the learning outcomes identified in the Course Descriptor.

On successful completion of this assessment, students should be able to: Knowledge and Understanding

K1a         Demonstrate knowledge and understanding of basic design principles,    programming practices, tools, and techniques for software development.

K3a         Choose among basic design patterns and practices to design and implement small to moderately sized programs.

Subject Specific Skills

S1a         Evaluate the impact of program design decisions and implementations on the technical, social and management dimensions of software..

S2a         Demonstrate practical use of object-oriented design concepts, including encapsulation and inheritance, in software.

Transferable and Employability Skills

T1a         Write clear, concise, and well-documented code.

T3a         Display a developing technical proficiency in written English and an ability to communicate clearly and accurately in structured and coherent pieces of writing.

Accessing Feedback

Students  can  expect to  receive feedback on all summative coursework within 28 working days of the submission deadline. The 28 calendar day deadline does not apply  to  work  submitted  late.  Feedback  can  be  accessed  through  the  Turnitin assessment   link   on  the   course   page.   Further   instructions   on   submitting  an assessment and accessing feedback can be found on the University’s VLE.

Late Submissions

Students are reminded to submit their assessment in the correct format and ahead of the published deadline. Deadlines are strict and Canvas uploads made remotely might not be immediate, we therefore strongly recommend that students upload

their work to Canvas in goodtime before the deadline. If assessments are

submitted late without approved Extenuating Circumstances, there are penalties:

●   For assessments submitted up to two days late: any mark of 40% or higher will be capped at 40% for undergraduate students. Any mark of 50% or

higher will be capped at 50% for postgraduate students. Any mark below

40% for undergraduate students and below 50% for postgraduate students, will stand.

●   Students who do not submit their assessment within two days, and have no   approved extenuating circumstances, are deemed not to have submitted and to have failed that assessment element. The mark recorded will be 0%.

●   Late penalties are calculated differently for some types of portfolios. Please read the Assessment Brief of your portfolio carefully.

For further information, please refer to AQF7 Part C in the Academic

Handbook.

Extenuating Circumstances

The University’s Extenuating Circumstances (ECs) procedure is in place if there are genuine circumstances that may prevent a student submitting an assessment. If the EC application is successful, there will be no academic penalty for missing the

published submission deadline.

Students are normally expected to apply for ECs in advance of the assessment    deadline. Students may apply for consideration of ECs retrospectively if they can  provide evidence that they could not have done so in advance of the deadline. All applications for ECs must be supported by independent evidence.

Students are reminded that the ECs procedure covers only short-term issues (within 21 days leading to the submission deadline) and that if they experience longer-term  matters that impact on learning then they must contact Student Support and

Development for advice.

Under the Extenuating Circumstances Policy, students may defer an assessed

element on only one occasion and may request an extension on a maximum of two occasions.

For further information, please refer to the Extenuating Circumstances Policy in the Academic Handbook.