Open jmcrey opened 6 years ago
Thanks for your comments, this is my first attempt at programming so this has really increased my confidence! I appreciate the feedback and will take on board your comments. I wasn't aware that this needed to be backwards compatible with previous versions of python so I just used the super() command taught in the classes, I'll bear this in mind for future projects.
Thanks again!
Rubric Score
Criteria 1: Valid Python Code
Unfortunately, because the
super()
command only works with Python 3.0 and above (as discussed in this issue), the code did run with some errors. However, since the code ran without errors once the simple change was made, I am awarding this section a score of 2.Criteria 2: Implementation of Project Requirements
Code produces the suite of functions and classes required of it and calls them in an appropriate order. Moreover, the actual implementation of all the classes and functions was beautiful. It truly utilized many useful built-in functions, plus it expanded upon even the project requirements. Excellent job!
Criteria 3: Software Architecture
Code is separated into distinct classes and functions each which are invoked for their own purposes. Further, even the variable within the functions are named appropriately and descriptively, which made the code much easier to read and understand. Nice attention to detail!
Criteria 4: Uses Python Language Features
Code uses language features appropriately. If a task can be solved with a Python language feature, it is. Everything from the use of the
get
function to the validation of the types in the initiators used appropriate Python mechanisms. Again, great job!Overall Score: 14/16
Overall, this code base was elegantly implemented with descriptive variable names, distinct classes, and appropriate functions. Further, this project went beyond the project requirements and included aspects that truly highlighted the author's detail-oriented approach to coding. A few minor things to work on are discussed in the issues, along with some pro-tips for the future that are unrelated to the project. The biggest aspect of improvement was the
super()
function not being compliant across Python versions, which causes errors to be thrown. However, these are only minor issues - the overall effect of the project was superb.Excellent job!