2018/9/23 Assignment 1.1 – CS 242 – Illinois Wiki
https://wiki.illinois.edu/wiki/display/cs242/Assignment+1.1 1/7
页面 / Home / Assignments
由 Triphol “Pao” Nilkuha (admin)创建, 最终由 Kim, Yongjin修改于 九月 21, 2018
Assignment 1.1
Assignment 1.1 Extending Your Chess Library
d documentation, and also extending your library by adding two custom
ing good documentation now and throughout the assignment 1.X will
the week, you should have a clean, easytounderstand, and extensible
oth are free and have powerful refactoring tools available.
hing is still unclear.
r moderator, the TAs, or your peers from discussion section suggest
your tests before implementing your functionality last week, but if for
g your test suite before you begin refactoring. Doing so will help you
gs.
mma for Eclipse, or the integrated code coverage features in IntelliJ
e naming, decompose larger methods into smaller separate methods,
epackaged binaries here, or run the following command on the EWS
s is run from the root directory of your project (i.e. from
xf doxygen1.8.2.linux.bin.tar.gz && cp doxygen1.8.2/bin/doxygen ./
ly run the following:
tain autogenerated HTML & latex found under html and latex. Take a
Summary
Table of Contents
Reading
The Joel Test: 12 Steps to Better Code
Optional: Code Complete chapter 24: Refactoring
Submission
This assignment is due at the beginning of your discussion section
the week of September 24th, 2018. Please be sure to submit in
Gitlab, and ask your moderator or TA before the deadline if you have
any questions.
Objectives
Clean up any problems in your code for Assignment 1.0, expand
your test suite if necessary, and fix any algorithmic shortcomings
Autogenerate documentation for your library
Two custom chess pieces and static user interface using
Observer Pattern.
Resources
Design Patterns
Design patterns
ModelViewController architecture
ModelViewController (MVC) Explained Through
Ordering Drinks At The Bar
Observer Pattern
Refactoring
Refactoring
Refactoring in Eclipse
Refactoring in InteliJ
Grading
We will bias clarity over cleverness in evaluating your code. You
should adopt a “teaching” mindset, always asking yourself, “How would
I change what I have written to make it as easy as possible for
someone else to understand my code without my direct assistance?”
Refer to the standard Grading rubric if any portion of this rubric is
unclear. _ Note that the standard rubric assumes a scale of 02 for
each category_.
Category Weight Scoring Notes
Basic
Preparation
2 01 Ready to go at the start
of section
here at UIUC. A few staff prefer IntelliJ. If you’ve never tried it out,
typically reuse your code from the previous week for each
ainability.
Questions that appear in lecture quizzes may come from the
assigned reading, so it is in your best interest to complete it.
https://wiki.illinois.edu/wiki/collector/pages.action?key=cs242&src=breadcrumbs-collector
https://wiki.illinois.edu/wiki/display/cs242/Home?src=breadcrumbs
https://wiki.illinois.edu/wiki/display/cs242/Assignments?src=breadcrumbs-parent
https://wiki.illinois.edu/wiki/display/~a_tnilkuha
https://wiki.illinois.edu/wiki/display/~ykim164
https://wiki.illinois.edu/wiki/pages/diffpagesbyversion.action?pageId=528356499&selectedPageVersions=22&selectedPageVersions=23
https://wiki.illinois.edu/wiki/display/cs242/Assignment+1.1
http://www.eclemma.org/
http://www.jetbrains.com/idea/features/code_coverage.html
http://www.stack.nl/~dimitri/doxygen/helpers.html
http://www.joelonsoftware.com/articles/fog0000000043.html
http://www.javaworld.com/columns/jw-java-design-patterns-index.html
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
https://medium.freecodecamp.org/model-view-controller-mvc-explained-through-ordering-drinks-at-the-bar-efcba6255053
http://en.wikipedia.org/wiki/Observer_pattern
http://sourcemaking.com/refactoring
http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fref-menu-refactor.htm
http://www.jetbrains.com/idea/features/refactoring.html
https://wiki.illinois.edu/wiki/display/cs242/Grading
2018/9/23 Assignment 1.1 – CS 242 – Illinois Wiki
https://wiki.illinois.edu/wiki/display/cs242/Assignment+1.1 2/7
pand on the documentation of your public methods and classes.
L generated by Doxygen will be this programmer’s first contact with your
us using Doxygen which areas could use further explanation. If you do
rate your documentation.
the _latex, html, or doxygen files). This uses up a tremendous amount of
n on the rubric. However, please ensure that Doxyfile, or whatever
itlab. Without it, we cannot give you credit for the Doxygenrelated
te two custom chess pieces. All the usual chess rules apply to your
mplicity, your custom pieces do not have to implement special moves,
ia useful, but you are free to create your own movement.
Bar
GUI should have ZERO USER INTERACTION. The only thing required
our time implementing chess moves, you may even lose points if
VC architecture, by strictly separating the Model, View, and Control
view. Simply display a chess board with the normal set of chess pieces
display a static image in your JFrame.
y careful.
at will not meet the requirements for this assignment without modification.
ng of the autogenerated code will be required. In the staff’s opinion, it is
rom scratch.
Category Weight Scoring Notes
Cleverness 2 02 The hardest points on
the rubric
Code
Submission
4 02 Submitted correct
content on time and to
the correct location in
the repository
Decomposition 4 02 Project is adequately
decomposed into
different classes and
methods
Documentation 4 02 Comments for each
class and each function
are clear and are
following style guides
Effort 2 02 Perform considerable
amount of work
Naming 2 02 Variable names and
method names are
readable and are
following Java
conventions
Overall Design 4 02 Have nice approaches
and structures in
overall
Participation 5 02.5 Interact with the group
2 times (ask a question,
make a comment, help
answer a question,
etc.)
Presentation 4 02 Present the code
clearly
Requirements
Custom
Chess Pieces
5 02.5 2 points
Custom Chess
Pieces are a simple
combination of two
standard chess
pieces. Any piece
which is in this link
would constitute 2
points.
2.5 points
Custom Chess
Pieces are unique
(not in this link) and
the algorithm used
to describe its
movement is
complex and
different from the
movements of
standard chess
pieces.
http://en.wikipedia.org/wiki/Fairy_piece
https://medium.freecodecamp.org/model-view-controller-mvc-explained-through-ordering-drinks-at-the-bar-efcba6255053
https://en.wikipedia.org/wiki/Fairy_chess_piece
https://en.wikipedia.org/wiki/Fairy_chess_piece
2018/9/23 Assignment 1.1 – CS 242 – Illinois Wiki
https://wiki.illinois.edu/wiki/display/cs242/Assignment+1.1 3/7
Category Weight Scoring Notes
Requirements
Static User
Interface
5 02.5 2 points
The UI consists of a
neat layout which
accurately
represents a chess
board. The UI
consists of pictures
for each of the
chess pieces.
2.5 points
The UI is extremely
appealing and
shows that the
student has put in
considerable effort
in the design of the
layout. The UI
consists of clickable
buttons for each tile
and basic
interactions are
enabled in the UI.
Requirements
Doxygen
Generation
4 02 2 points
Generate and
submit a Doxygen
file
Requirements
Refactoring
5 02.5 2 points
There is not much
duplicate/redundant
code and the
student has put
effort to refactor
code from last
week. There is
minor but not
significant scope for
improvement.
2.5 points
Every piece of code
is functional and
overall design of
the project is so
well designed that it
cannot be
refactored/improved
any further.
Testing 5 02.5 Unit tests written for all
new code & expanded
last week’s tests if
necessary
2 points
80% of the new
code is tested and
the tests cover
edge cases for
each function.
2.5 points
95% of the new
code has been
tested and every
possible edge
cases have been
tested for.
Testing (Script) 4 02 2 points
Make a complete
manual test plan for
GUI
Total 61
mLookAndFeelClassName());
xample”);
CLOSE);
);