Sprint Challenge: Intro to Python

In this week's Sprint you explored the Python programming language as well as object-oriented design principles. This Sprint Challenge aims to assess your comfort in both of these areas through exercises similar to the ones you worked on at the beginning of this week in Intro to Python.

Instructions

Read these instructions carefully. Understand exactly what is expected before starting this Sprint Challenge.

This is an individual assessment. All work must be your own. Your challenge score is a measure of your ability to work independently using the material covered through this sprint. You need to demonstrate proficiency in the concepts and objectives introduced and practiced in the preceding days.

You are not allowed to collaborate during the Sprint Challenge. However, you are encouraged to follow the twenty-minute rule and seek support from your PM and Instructor in your cohort help channel on Slack. Your submitted work reflects your proficiency in the concepts and topics that were covered this week.

You have three hours to complete this Sprint Challenge. Plan your time accordingly.

Commits

Commit your code regularly and meaningfully. This helps both you (in case you ever need to return to old code for any number of reasons) and it also helps your project manager to more thoroughly assess your work.

Description

Complete the programs in the src/ directory in any order.

  • oop/
    • oop1.py: class hierarchies
    • oop2.py: subclassing and method overriding
  • comp/
    • comp.py: list comprehensions
  • cityreader/
    • cityreader.py: modules and CSV file reading

Testing

Each file has its own associated test file. To test your code, run python [name_of_test_file.py] or python3 [name_of_test_file.py] if your Python 3 command is mapped to python3. Note: cityreader needs to be run from the same directory as the files or it will not be able to find the associated CSV file.

The cityreader stretch goal has its own test file, test_stretch.py, if you want to take a stab at implementing the stretch problem.

It's never a bad idea to take a look at the test files in order to see what each test is expecting.

Minimum Viable Product

In order to meet MVP requirements for this Sprint Challenge, complete all of the exercises posed in each directory by getting the tests for each exercise to pass.

In your solution, it is essential that you follow best practices and produce clean and professional results. Schedule time to review, refine, and assess your work and perform basic professional polishing including spell-checking and grammar-checking on your work. It is better to submit a challenge that meets the MVP requirements than one that attempts too much and does not.

Stretch Problems

The cityreader directory poses an stretch problem that builds upon the functionality you are to implement as part of the non-stretch requirements in the cityreader directory.

There's a separate test file test_stretch.py for the stretch problem that you can run in order to test your implementation of the stretch problem.

Rubric

OBJECTIVE TASK 1 - DOES NOT MEET Expectations 2 - MEETS Expectations 3 - EXCEEDS Expectations SCORE
Student can demonstrate applied knowledge of Python basics by producing list comprehensions in comp.py List Comprehensions: (1 point per problem, 8 max) 0-5 points 6-7 points 8 points
Student can demonstrate applied knowledge of Object-Oriented Programming by completing oop1.py and oop2.py OOP: (2 points per file, 4 max) 0 points 2 points 4 points
Student can demonstrate applied research and language learning by completing cityreader.py CSV: 6 points for cityreader(), 1 point for cityreader_stretch() 0 points 6 points 7 points
FINAL SCORE 0-13 14-18 19