TWiki
>
CS342 Web
>
Spring2014
>
AssignmentsS14
>
Critique
(2014-04-04, Main.troy)
(raw view)
E
dit
A
ttach
---+ CS 342 - Software Design ---+++ Program Critique Your write up must have the following information clearly expressed at the top of your critique. This information is needed to help get the proper information to the correct student. 1 The number of the project you are critiqueing. 1 The name of the students in the group whose code you are critiqueing. 1 Your name. <span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; display: inline ! important; float: none">An example of the this information is as follows:</span><pre style="color: #000000; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px"> Critique of Programming Project 1 for Hong Cao, hcao1@cs.uic.edu</pre><pre style="color: #000000; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; word-spacing: 0px"> Written by Amit Bhadoria, abhadori@cs.uic.edu </pre><span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; display: inline ! important; float: none">In the above information, Amit Bhadoria wrote the critique and Hong Cao wrote the program. Your name and user ID is to replace those of Amit Bhadoria.</span> *Parts of each Critique Sections* For each section of the critiqueyou are to write comments about your opinion of the code you are to critique. You are to give supporting comments of your opinion with specific examples from the code you are critiqueing. Simply giving yes/no answers will not be excepted as correctly doing the critique. Also you are to rate each area with a score from 1 to 5. Where 1 means the area was poorly addressed in the program and 5 means the area was addressed very well in the program. Thus, each section of the crititque is to contain: * a score from 1 to 5 * an explanation for the given score * specific examples from the original code or design document that highlight the points made in the explanation ---+++ The 5 Critique Sections Your critique is to address the following 5 areas. Each area must have its own section in your write-up. The questions listed are to give you an idea of what types of things you are to look for (and write about) in your critique. *Supporting Documents* How well do the supporting documents introduce you to what is going on in the program? Are they understandable (use well written sentences and proper grammatical form)? *Program Style* How well is the program commented? Does it have a file header comment at the beginning of every file? Does every function have a function header? Does it make good use of in-line comments? Are identifiers given meaning names? Does the program use indentation and blank lines in a uniform manner to help make the program easier to read? Use the Oracle Programming Style handout or the Google Code Style Guide as a base for good programming style: * http://www.oracle.com/technetwork/java/codeconv-138413.html * http://google-styleguide.googlecode.com/svn/trunk/javaguide.html *Use of Objects, Data Structures and Algorithms* Do the objects and/or data structures use memory efficiently? Do the algorithms use machine cycles (time) efficiently? Do the objects/data structures properly model their "real world" entity? How do the data structures and algorithms used compare to the data structures and algorithms used by your program? Are decision statements (if, while, etc.) easy to understand? *Code/Object Decomposition* Does the code make proper use of *cohesion* and *coupling*? * * The best use of <strong>cohesion </strong>is when each function performs one well defined operation. Are the functions of small enough size to be easily understood (or are there a few huge functions that do everything)? * The best use of <strong>coupling </strong>is when each function does not depend directly on the operations performed by other function. This is reached by maximizing the use of parameters and minimizing the use of global variables. Does the program make use of modern programming practices? Such items include typedefs, classes, constructors, destructors (for dynamic deallocation), multiple source code files, makefiles, etc. *Overall View of the Project* Was the code easy or hard to understand? If you had to make a change to this program, do you think it would be easy or hard to modify?
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r4
<
r3
<
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r4 - 2014-04-04 - 15:55:34 - Main.troy
CS342
Syllabus
Main Page: Fall 2017
Lecture Notes
Assignments
[edit this menu
]
Log In
CS342 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
ABOUT US
Our Department
Recent News
Contact Us
ACADEMICS
Prospective Students
Undergraduate
CS Minor
Graduate
Courses
RESEARCH
Overview
By Faculty
Labs
PEOPLE
Faculty
Adjuncts
Staff
Students
Alumni
Copyright 2016 The Board of Trustees
of the University of Illinois.
webmaster@cs.uic.edu
WISEST
Helping Women Faculty Advance
Funded by NSF