Permalink
Browse files

Release tasks for Project-1

  • Loading branch information...
Vlada committed Feb 9, 2019
1 parent 74edc31 commit 6e4131bd52769821486ea3ba87234e3557f58136
Showing with 196 additions and 0 deletions.
  1. +62 −0 README.md
  2. +134 −0 project-code-challenge.ipynb
@@ -0,0 +1,62 @@
# ![](https://ga-dash.s3.amazonaws.com/production/assets/logo-9f88ae6c9c3871690e33280fcf557f33.png) Python Code Challenges

> Unit Project
---

## Materials We Provide

| Topic | Description | Link |
| --- | --- | --- |
| Starter Code | Required questions and Bonus prompts | [Here](./project-code-challenge.ipynb) |
| Solution Code | Sample solutions for all required sections | [Here](https://git.generalassemb.ly/data-part-time/instructor-materials/tree/master/04-project-solutions/project-code-challenge-solutions) |

> Note: Instructors should withhold providing project solutions until students have submitted their drafts.

---

## Project Objective

We've provided a Jupyter notebook Project-1-CC.ipynb that contains the kinds of coding challenges that often come up in data science job interviews. In addition to preparing you for interviews, completing challenges like these is a fun way to develop your Python skills.

Some of these problems are well known, so it may be possible to find complete solutions online. Students should see these questions as an opportunity to challenge themselves; looking up answers limits the potential growth that comes from practice and repetition of these skills.

---

## Project Requirements

In a Jupyter Notebook, create working solutions for all of the **required** questions. Your notebook should include:

1. Text for each question, copy and pasted from the starter code provided.
2. A working solution to each problem.
- Do not include test, practice, or broken code (*unless you were unable to create a working solution*).
3. Comments for all of your code.
- In your comments, describe any assumptions you made in order to solve these problems.

4. **Optional**: After completing the required portions, try your hand at the **bonus** sections for some additional challenges!

---

## Rubric

For all projects, requirements will be evaluated on a simple point scale of 0, 1, or 2. Additionally, instructors will provide you with feedback on required portions of your project.

Score | Expectations
:--- | :---
**0** | _Incomplete._
**1** | _Does not meet expectations._
**2** | _Meets expectations, good job!_
**3** | _Surpasses our wildest expectations!_

> Note: Scores of `2` mean that a requirement has been completely fulfilled, while `3` is typically reserved for bonus objectives.
---

## Submission

Your instructor will explain how to submit your assignment. Typically, this is done either by:

- Creating a repository in your github profile, hosting your materials, and sharing a link with your instructor.
[or]
- Forking the project repository, adding your solutions, and submitting a pull request back to the relevant repo.
@@ -0,0 +1,134 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"http://imgur.com/1ZcRyrc.png\" style=\"float: left; margin: 20px; height: 55px\">\n",
"\n",
"# Project 1: Python Coding Exercises\n",
"\n",
"_Authors: Joseph Nelson (DC) _\n",
"\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following code challenges are drawn from common exercises used in technical interviews.\n",
"\n",
"Please note that there may be several ways to approach each challenge. If you get stuck, try mapping out your approach in pseudocode first. Finally, while solutions to problems like these may be found online, remember that if you copy/paste code that you can't explain, you'll be missing out on the point of the project. The only way to truly learn a new skill is through practice, trial, and error - we can only help you improve by understanding where you are having trouble."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Challenge 1: Largest Palindrome\n",
"A palindromic number reads the same both ways. For example, 1234321 is a palindrome. The largest palindrome made from the product of two two-digit numbers is 9009 = 91 × 99. Find the largest palindrome made from the product of two three-digit numbers. Afterward, write a brief explanation walking through your code's logic in markdown."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"### Challenge 2: Summation of Primes\n",
"The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below 2,000. Afterward, write a brief explanation walking through your code's logic in markdown."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Challenge 3: Multiples of 3 and 5\n",
"If we list all of the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6, and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 and 5 below 1,000. Afterward, write a brief explanation walking through your code's logic in markdown."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Challenge 4: String Compressor\n",
"Implement a method to perform basic string compression using the counts of repeated characters. (This is called run-length encoding.) For example, the string \"aabcccccaaa\" would become a2b1c5a3. If the “compressed” string would not become smaller than the original string, your method should return the original string. You can assume the string has only uppercase and lowercase letters (a–z). Specify whether your solution is case sensitive or case insensitive and what you would need to change to make it the other. Afterward, write a brief explanation walking through your code's logic in markdown."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### *BONUS* Challenge: FizzBuzz\n",
"Write a program that prints all of the numbers from 1 to 100. For multiples of 3, instead of the number, print \"Fizz;\" for multiples of 5, print \"Buzz.\" For numbers that are multiples of both 3 and 5, print \"FizzBuzz.\" Afterward, write a brief explanation walking through your code's logic in markdown."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

0 comments on commit 6e4131b

Please sign in to comment.