CIS*2430 Assigment One
The Big Picture
This assignment consists of two separate tasks.
1. Refactor or rewrite a given procedural Tic Tac Toe game so that the code base demonstrates good object
oriented software practices. Starter files have been pushed to your course A1 git repository. Your solution
must be submitted using that A1 git repository.
2. Write a code review for an object oriented java program. The code review must be submitted via the course
website on moodle. Your assignment submission is considered to be complete only when the code review has
een submitted. Ensure that your code review is submitted well before the deadline for your target grading
period.
You can clone your assignment repo in one of two ways using a terminal or command prompt:
• git clone https:
gitlab.socs.uoguelph.ca/2430f22/≪your username here≫/A1.git
• If you have set up ssh keys and have the campus vpn running:
git clone XXXXXXXXXX:2430f22/≪your username here≫/A1.git
This assignment is intended to be independent work. Your submissions will be programatically inspected
to identify possible plagiarism.
Learning Outcomes
Completion of this assignment will help you master the learning outcomes noted below.
• Identify the major characteristics of different programming paradigms(procedural, functional, logical, and
object-oriented).
• Differentiate between procedural and object-oriented paradigms.
• Design and implement classes for an object-oriented program demonstrating co
ect use of encapsulation,
constructors, method overloading, class invariants, accessors, mutators, instance variables and class variables.
Grading
Assignment Grade Calculation: (TTT + CR)*PI
Component Symbol Grade Range Marking Process
Tic Tac Toe TTT XXXXXXXXXXInstructional team member marks submission on their own
schedule during grading period
Code Review CR XXXXXXXXXXInstructional team member marks submission on their own
schedule during grading period
Personal Interview PI XXXXXXXXXXStudents must schedule the interview with an instructional team
member using the scheduler on the course website. Failure to at-
tend an interview will result in a grade of 0.0 for this component.
1
Task Descriptions
Part 1: Tic Tac Toe
A working, but possibly buggy, java program called TicTacToeP has been added to your A1 repository. It allows two
people to play tic tac toe by sharing the computer. While the program works, it is not written as an object oriented
program. Your task is to refactor or rewrite this program to be object oriented.
You may use some or all of the code in TicTacToeP or you may completely start over. You should design you
solution to have suitable classes and to use public and private methods to accomplish the goals of the program.
During your personal interview you may be asked to explain why you made the design choices that you made.
The class that has the main method for your game must be called Runner. You may write as many additional
classes as you feel are needed. All of your classes must be in the a1 package. You can use the TicTacToeP source
code as an example of adding a package to a class. Your game must provide a similar game-play experience as
provided by the TicTacToeP game, but you should fix any existing bugs. Feel free to make improvements to the
messages and overall experience but don’t change the interaction style completely.
During your personal interview you may be asked to explain your UX choices or how you could add a specific
new feature. These types of questions are looking for design-level detail, not code. You might also be asked to
explain how a different implementation of one of your features would impact the overall program.
This portion of the assignment is graded out of 70 marks. Your submission must compile without e
ors o
warnings and must pass checkstyle to be awarded a grade other than zero.
35 of the marks are for demonstrating good object oriented design. Elements examined may include:
• naming conventions, layout and organization of code
• comments (javadoc and inline)
• member variable declaration and use
• accessors and mutators
• names of classes and methods
• allocation of responsibility and purpose for classes and methods
• encapsulation
35 of the marks are for the functionality. Elements examined may include:
• game play
• win and tie conditions
• clear, informative messages to use
• user interface is predictable and easy to operate
Part 2: Code Review
Use the ”A1 Code Review” files from the course website for this portion of the assignment. Submit your code
eview as a pdf file or a plain text file that uses markdown for formatting. During your personal interview you may
e asked to explain or justify the observations you make in your code review. The code review must follow the
outline shown.
1. Functionality Does the code work as outlined in the purpose stated at the top of the program file? If not, what
ugs were found? How could those bugs be addressed?
2. Encapsulation Has this code been designed to adhere to the OO principle of encapsulation? Give specific
examples from the code that could improve the encapsulation.
3. Coding Conventions and Formatting Does this code follow good coding conventions? Does the layout pro-
mote readability? Give specific suggestions for improvements.
4. Readability Is it easy to read this code and understand what it is doing? Are there comments where needed?
Is the code self-documenting? Give specific suggestions for improving the readability.
5. Responsibility Does each class in the code base have an obvious purpose? Is that purpose necessary to the
operation of the overall program? Does each method have an obvious purpose? Give recommendations
for improving the code base to ensure that every part of the code is doing one essential part of the overall
computation.
2
This portion of the assignment is graded out of 30 marks. Each of the code review sections is allocated 6 of the 30
marks. Marks are given for thoroughness, thoughtfulness and for demonstrating a solid understanding of the OO
principles involved. Up to 10 marks will be deducted from the total for poor grammar or spelling.
Personal Interview
Your personal interview will be conducted virtually by a member of the instructional team During the interview you
will be asked questions about your assignment submission. Some of those questions may involve you imagining a
different solution than the one you submitted. Your response to each question will be graded using a 5 point scale
and an interview grade calculated from those responses. The interviewer is not responsible for the final calculation
of the interview grade.
3