feat(learn): python certification projects (#38216)

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
Co-authored-by: Beau Carnes <beaucarnes@gmail.com>
This commit is contained in:
mrugesh
2020-02-25 00:10:32 +05:30
committed by Mrugesh Mohapatra
parent 3c3ceaa3f5
commit 22afc2a0ca
771 changed files with 1719 additions and 61 deletions

View File

@ -172,6 +172,21 @@
"description": "Camper is full stack certified (2018)",
"default": false
},
"isSciCompPyCert": {
"type": "boolean",
"description": "Camper is scientific computing with Python certified",
"default": false
},
"isDataAnalysisPyCert": {
"type": "boolean",
"description": "Camper is data analysis with Python certified",
"default": false
},
"isMachineLearningPyCert": {
"type": "boolean",
"description": "Camper is machine learning with Python certified",
"default": false
},
"completedChallenges": {
"type": [
{

View File

@ -19,7 +19,10 @@ import {
dataVis2018Id,
apisMicroservicesId,
infosecQaId,
fullStackId
fullStackId,
sciCompPyId,
dataAnalysisPyId,
machineLearningPyId
} from '../utils/constantStrings.json';
import { oldDataVizId } from '../../../config/misc';
import certTypes from '../utils/certTypes.json';
@ -104,7 +107,13 @@ function createCertTypeIds(app) {
Challenge
),
[certTypes.infosecQa]: getIdsForCert$(infosecQaId, Challenge),
[certTypes.fullStack]: getIdsForCert$(fullStackId, Challenge)
[certTypes.fullStack]: getIdsForCert$(fullStackId, Challenge),
[certTypes.sciCompPy]: getIdsForCert$(sciCompPyId, Challenge),
[certTypes.dataAnalysisPy]: getIdsForCert$(dataAnalysisPyId, Challenge),
[certTypes.machineLearningPy]: getIdsForCert$(
machineLearningPyId,
Challenge
)
};
}
@ -124,7 +133,10 @@ const certIds = {
[certTypes.dataVis2018]: dataVis2018Id,
[certTypes.apisMicroservices]: apisMicroservicesId,
[certTypes.infosecQa]: infosecQaId,
[certTypes.fullStack]: fullStackId
[certTypes.fullStack]: fullStackId,
[certTypes.sciCompPy]: sciCompPyId,
[certTypes.dataAnalysisPy]: dataAnalysisPyId,
[certTypes.machineLearningPy]: machineLearningPyId
};
const certText = {
@ -137,7 +149,10 @@ const certText = {
[certTypes.jsAlgoDataStruct]: 'JavaScript Algorithms and Data Structures',
[certTypes.dataVis2018]: 'Data Visualization',
[certTypes.apisMicroservices]: 'APIs and Microservices',
[certTypes.infosecQa]: 'Information Security and Quality Assurance'
[certTypes.infosecQa]: 'Information Security and Quality Assurance',
[certTypes.sciCompPy]: 'Scientific Computing with Python',
[certTypes.dataAnalysisPy]: 'Data Analysis with Python',
[certTypes.machineLearningPy]: 'Machine Learning with Python'
};
const completionHours = {
@ -150,7 +165,10 @@ const completionHours = {
[certTypes.jsAlgoDataStruct]: 300,
[certTypes.dataVis2018]: 300,
[certTypes.apisMicroservices]: 300,
[certTypes.infosecQa]: 300
[certTypes.infosecQa]: 300,
[certTypes.sciCompPy]: 400,
[certTypes.dataAnalysisPy]: 400,
[certTypes.machineLearningPy]: 400
};
function getIdsForCert$(id, Challenge) {
@ -174,7 +192,10 @@ function sendCertifiedEmail(
isJsAlgoDataStructCert,
isDataVisCert,
isApisMicroservicesCert,
isInfosecQaCert
isInfosecQaCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
},
send$
) {
@ -185,7 +206,10 @@ function sendCertifiedEmail(
!isJsAlgoDataStructCert ||
!isDataVisCert ||
!isApisMicroservicesCert ||
!isInfosecQaCert
!isInfosecQaCert ||
!isSciCompPyCert ||
!isDataAnalysisPyCert ||
!isMachineLearningPyCert
) {
return Observable.just(false);
}
@ -216,7 +240,10 @@ function getUserIsCertMap(user) {
isFrontEndCert = false,
isBackEndCert = false,
isDataVisCert = false,
isFullStackCert = false
isFullStackCert = false,
isSciCompPyCert = false,
isDataAnalysisPyCert = false,
isMachineLearningPyCert = false
} = user;
return {
@ -229,7 +256,10 @@ function getUserIsCertMap(user) {
isFrontEndCert,
isBackEndCert,
isDataVisCert,
isFullStackCert
isFullStackCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
};
}
@ -350,6 +380,9 @@ function createShowCert(app) {
is2018DataVisCert: true,
isApisMicroservicesCert: true,
isInfosecQaCert: true,
isSciCompPyCert: true,
isDataAnalysisPyCert: true,
isMachineLearningPyCert: true,
isHonest: true,
username: true,
name: true,

View File

@ -167,6 +167,9 @@ function postResetProgress(req, res, next) {
isBackEndCert: false,
isDataVisCert: false,
isFullStackCert: false,
isSciCompPyCert: false,
isDataAnalysisPyCert: false,
isMachineLearningPyCert: false,
completedChallenges: []
},
function(err) {

View File

@ -8,5 +8,8 @@
"jsAlgoDataStruct": "isJsAlgoDataStructCert",
"apisMicroservices": "isApisMicroservicesCert",
"infosecQa": "isInfosecQaCert",
"fullStack": "isFullStackCert"
"fullStack": "isFullStackCert",
"sciCompPy": "isSciCompPyCert",
"dataAnalysisPy": "isDataAnalysisPyCert",
"machineLearningPy": "isMachineLearningPyCert"
}

View File

@ -2,10 +2,13 @@
"frontEndCert": "Front End Development Certification",
"backEndCert": "Back End Development Certification",
"fullStackCert": "Full Stack Development Certification",
"respWebDesign": "Responsive Web Design Certification",
"frontEndLibs": "Front End Libraries Certification",
"jsAlgoDataStruct": "JavaScript Algorithms and Data Structures Certification",
"dataVis": "Data Visualisation Certification",
"apisMicroservices": "APIs and Microservices Certification",
"infosecQa": "Information Security and Quality Assurance Certification"
"respWebDesignCert": "Responsive Web Design Certification",
"frontEndLibsCert": "Front End Libraries Certification",
"jsAlgoDataStructCert": "JavaScript Algorithms and Data Structures Certification",
"dataVisCert": "Data Visualisation Certification",
"apisMicroservicesCert": "APIs and Microservices Certification",
"infosecQaCert": "Information Security and Quality Assurance Certification",
"sciCompPyCert": "Scientific Computing with Python Certification",
"dataAnalysisPyCert": "Data Analysis with Python Certification",
"machineLearningPyCert": "Machine Learning with Python Certification"
}

View File

@ -17,7 +17,10 @@ export function completeCommitment$(user) {
isJsAlgoDataStructCert,
isDataVisCert,
isApisMicroservicesCert,
isInfosecQaCert
isInfosecQaCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
} = user;
return Observable.fromNodeCallback(user.pledge, user)().flatMap(pledge => {
@ -36,7 +39,10 @@ export function completeCommitment$(user) {
(isJsAlgoDataStructCert && goal === commitGoals.jsAlgoDataStructCert) ||
(isDataVisCert && goal === commitGoals.dataVisCert) ||
(isApisMicroservicesCert && goal === commitGoals.apisMicroservicesCert) ||
(isInfosecQaCert && goal === commitGoals.infosecQaCert)
(isInfosecQaCert && goal === commitGoals.infosecQaCert) ||
(isSciCompPyCert && goal === commitGoals.sciCompPyCert) ||
(isDataAnalysisPyCert && goal === commitGoals.dataAnalysisPyCert) ||
(isMachineLearningPyCert && goal === commitGoals.machineLearningPyCert)
) {
debug('marking goal complete');
pledge.isCompleted = true;

View File

@ -11,5 +11,8 @@
"jsAlgoDataStructId": "561abd10cb81ac38a17513bc",
"apisMicroservicesId": "561add10cb82ac38a17523bc",
"infosecQaId": "561add10cb82ac38a17213bc",
"fullStackId": "561add10cb82ac38a17213bd"
"fullStackId": "561add10cb82ac38a17213bd",
"sciCompPyId": "5e44431b903586ffb414c951",
"dataAnalysisPyId": "5e46fc95ac417301a38fb934",
"machineLearningPyId": "5e46fc95ac417301a38fb935"
}

View File

@ -5,7 +5,10 @@ function getCompletedCertCount(user) {
'isFrontEndLibsCert',
'isInfosecQaCert',
'isJsAlgoDataStructCert',
'isRespWebDesignCert'
'isRespWebDesignCert',
'isSciCompPyCert',
'isDataAnalysisPyCert',
'isMachineLearningPyCert'
].reduce((sum, key) => (user[key] ? sum + 1 : sum), 0);
}

View File

@ -25,6 +25,9 @@ export const publicUserProps = [
'isInfosecQaCert',
'isJsAlgoDataStructCert',
'isRespWebDesignCert',
'isSciCompPyCert',
'isDataAnalysisPyCert',
'isMachineLearningPyCert',
'linkedin',
'location',
'name',

View File

@ -13,7 +13,10 @@ const superBlockCertTypeMap = {
'data-visualization': certTypes.dataVis2018,
'apis-and-microservices': certTypes.apisMicroservices,
'information-security-and-quality-assurance': certTypes.infosecQa,
'full-stack': certTypes.fullStack
'full-stack': certTypes.fullStack,
'scientific-computing-with-python': certTypes.sciCompPy,
'data-analysis-with-python': certTypes.dataAnalysisPy,
'machine-learning-with-python': certTypes.machineLearningPy
};
export default superBlockCertTypeMap;

View File

@ -144,7 +144,10 @@ function getCompletedCertCount(user) {
'isFrontEndLibsCert',
'isInfosecQaCert',
'isJsAlgoDataStructCert',
'isRespWebDesignCert'
'isRespWebDesignCert',
'isSciCompPyCert',
'isDataAnalysisPyCert',
'isMachineLearningPyCert'
].reduce((sum, key) => (user[key] ? sum + 1 : sum), 0);
}

View File

@ -62,6 +62,9 @@ const propTypes = {
isInfosecQaCert: PropTypes.bool,
isJsAlgoDataStructCert: PropTypes.bool,
isRespWebDesignCert: PropTypes.bool,
isSciCompPyCert: PropTypes.bool,
isDataAnalysisPyCert: PropTypes.bool,
isMachineLearningPyCert: PropTypes.bool,
linkedin: PropTypes.string,
location: PropTypes.string,
name: PropTypes.string,
@ -132,6 +135,9 @@ export function ShowSettings(props) {
isFrontEndLibsCert,
isFullStackCert,
isRespWebDesignCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert,
isEmailVerified,
isHonest,
sendQuincyEmail,
@ -233,6 +239,7 @@ export function ShowSettings(props) {
is2018DataVisCert={is2018DataVisCert}
isApisMicroservicesCert={isApisMicroservicesCert}
isBackEndCert={isBackEndCert}
isDataAnalysisPyCert={isDataAnalysisPyCert}
isDataVisCert={isDataVisCert}
isFrontEndCert={isFrontEndCert}
isFrontEndLibsCert={isFrontEndLibsCert}
@ -240,7 +247,9 @@ export function ShowSettings(props) {
isHonest={isHonest}
isInfosecQaCert={isInfosecQaCert}
isJsAlgoDataStructCert={isJsAlgoDataStructCert}
isMachineLearningPyCert={isMachineLearningPyCert}
isRespWebDesignCert={isRespWebDesignCert}
isSciCompPyCert={isSciCompPyCert}
username={username}
verifyCert={verifyCert}
/>

View File

@ -40,7 +40,7 @@ const AsFeaturedSection = () => (
export const Landing = ({ edges }) => {
const superBlocks = uniq(edges.map(element => element.node.superBlock));
const interviewPrep = superBlocks.splice(6, 1);
const interviewPrep = superBlocks.splice(9, 1);
return (
<Fragment>
<Helmet>

View File

@ -44,6 +44,7 @@ const propTypes = {
is2018DataVisCert: PropTypes.bool,
isApisMicroservicesCert: PropTypes.bool,
isBackEndCert: PropTypes.bool,
isDataAnalysisPyCert: PropTypes.bool,
isDataVisCert: PropTypes.bool,
isFrontEndCert: PropTypes.bool,
isFrontEndLibsCert: PropTypes.bool,
@ -51,7 +52,9 @@ const propTypes = {
isHonest: PropTypes.bool,
isInfosecQaCert: PropTypes.bool,
isJsAlgoDataStructCert: PropTypes.bool,
isMachineLearningPyCert: PropTypes.bool,
isRespWebDesignCert: PropTypes.bool,
isSciCompPyCert: PropTypes.bool,
updateLegacyCert: PropTypes.func.isRequired,
username: PropTypes.string,
verifyCert: PropTypes.func.isRequired
@ -69,7 +72,10 @@ const isCertSelector = ({
isInfosecQaCert,
isFrontEndLibsCert,
isFullStackCert,
isRespWebDesignCert
isRespWebDesignCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
}) => ({
is2018DataVisCert,
isApisMicroservicesCert,
@ -80,7 +86,10 @@ const isCertSelector = ({
isInfosecQaCert,
isFrontEndLibsCert,
isFullStackCert,
isRespWebDesignCert
isRespWebDesignCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
});
const isCertMapSelector = createSelector(
@ -94,7 +103,10 @@ const isCertMapSelector = createSelector(
isRespWebDesignCert,
isDataVisCert,
isFrontEndCert,
isBackEndCert
isBackEndCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
}) => ({
'Responsive Web Design': isRespWebDesignCert,
'JavaScript Algorithms and Data Structures': isJsAlgoDataStructCert,
@ -102,6 +114,9 @@ const isCertMapSelector = createSelector(
'Data Visualization': is2018DataVisCert,
"API's and Microservices": isApisMicroservicesCert,
'Information Security And Quality Assurance': isInfosecQaCert,
'Scientific Computing with Python': isSciCompPyCert,
'Data Analysis with Python': isDataAnalysisPyCert,
'Machine Learning with Python': isMachineLearningPyCert,
'Legacy Front End': isFrontEndCert,
'Legacy Data Visualization': isDataVisCert,
'Legacy Back End': isBackEndCert

View File

@ -133,6 +133,46 @@ const defaultTestProps = {
id: 'bd7158d8c443eddfaeb5bdee',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e444147903586ffb414c94c',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e444147903586ffb414c94d',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e444147903586ffb414c94e',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e444147903586ffb414c94f',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e44414f903586ffb414c950',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e46f7e5ac417301a38fb928',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e46f7e5ac417301a38fb929',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e46f7f8ac417301a38fb92a',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e46f802ac417301a38fb92b',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: '5e4f5c4b570f7e3a4949899f',
solution: 'https://github.com/freeCodeCamp/freeCodeCamp'
},
{
id: 'bd7157d8c242eddfaeb5bd13',
completedDate: 1554272923799,
@ -151,6 +191,9 @@ const defaultTestProps = {
isInfosecQaCert: false,
isJsAlgoDataStructCert: false,
isRespWebDesignCert: false,
isSciCompPyCert: false,
isDataAnalysisPyCert: false,
isMachineLearningPyCert: false,
updateLegacyCert: () => {},
username: 'developmentuser',
verifyCert: () => {},

View File

@ -0,0 +1,21 @@
---
title: Introduction to the Data Analysis with Python Projects
block: Data Analysis with Python Projects
superBlock: Data Analysis with Python
---
## Introduction to the Data Analysis with Python Projects
There are many ways to analyze data with Python! By completing these projects, you will demonstrate that you have a good foundational knowledge of data analysis with Python.
We are working to finish up the interactive Data Analysis instructional content. For now, here are some videos from freeCodeCamp that will help with the projects. You may also have to use other resources (just like you would have to do when learning new technologies in a job).
* [Python NumPy Video Course](https://www.youtube.com/watch?v=QUT1VHiLmmI) (1 hours)
* [Data Science Video Course](https://m.youtube.com/watch?v=ua-CiDNNj30) (6 hours)
In this section you will develop the following projects:
* Mean-Variance-Standard Deviation Calculator
* Demographic Data Analyzer
* Medical Data Visualizer
* Page View Time Series Visualizer
* Sea Level Predictor
Have fun and remember to use the [Read-Search-Ask](https://www.freecodecamp.org/forum/t/how-to-get-help-when-you-are-stuck-coding/19514) method if you get stuck.

View File

@ -0,0 +1,7 @@
---
title: Data Analysis with Python
superBlock: Data Analysis with Python
---
## Introduction to Data Analysis with Python
Learn the basics of data analysis with Python.

View File

@ -13,5 +13,7 @@ In this section you get the chance to:
* Build a Personal Library
* Build a Stock Price Checker
* Build an Anonymous Message Board
* Port Scanner
* Packet Capturer
When you are done, you will have plenty of Information Security & Quality Assurance projects under your belt along with a certification that you can show off to friends, family, and employers. Have fun and remember to use the [Read-Search-Ask](https://www.freecodecamp.org/forum/t/how-to-get-help-when-you-are-stuck/19514) method if you get stuck.

View File

@ -0,0 +1,7 @@
---
title: Machine Learning with Python
superBlock: Machine Learning with Python
---
## Introduction to Machine Learning with Python
Learn the basics of Machine Learning with Python.

View File

@ -0,0 +1,19 @@
---
title: Introduction to the Machine Learning Projects
block: Machine Learning with Python Projects
superBlock: Machine Learning with Python
---
## Introduction to the Machine Learning Projects
Machine learning has many practical applications. By completing these projects, you will demonstrate that you have a good foundational knowledge of machine learning.
We are still developing the interactive instructional content for the machine learning curriculum. For now, check out the videos in this [machine learning playlist on the freeCodeCamp YouTube channel](https://www.youtube.com/playlist?list=PLWKjhJtqVAblStefaz_YOVpDWqcRScc2s). You may also have to use other resources (just like you would have to do when learning new technologies in a job).
In this section you will develop the following projects:
* Rock Paper Scissors
* Cat and Dog Image Classifier
* Book Recommendation Engine using KNN
* Linear Regression Health Costs Calculator
* Neural Network SMS Text Classifier
Have fun and remember to use the [Read-Search-Ask](https://www.freecodecamp.org/forum/t/how-to-get-help-when-you-are-stuck-coding/19514) method if you get stuck.

View File

@ -0,0 +1,7 @@
---
title: Scientific Computing with Python
superBlock: Scientific Computing with Python
---
## Introduction to Scientific Computing with Python
Learn the basics of Python.

View File

@ -0,0 +1,21 @@
---
title: Introduction to the Scientific Computing with Python Projects
block: Scientific Computing with Python Projects
superBlock: Scientific Computing with Python
---
## Introduction to the Scientific Computing with Python Projects
Time to put your Python skills to the test! By completing these projects, you will demonstrate that you have a good foundational knowledge of Python.
We are working to finish up the interactive Python instructional content. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete these projects:
* [Python for Everybody Video Course](https://www.freecodecamp.org/news/python-for-everybody/) (14 hours)
* [Learn Python Video Course](https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/) (4 hours)
In this section you will develop the following projects:
* Arithmetic Formatter
* Time Calculator
* Budget App
* Polygon Area Calculator
* Probability Calculator
Have fun and remember to use the [Read-Search-Ask](https://www.freecodecamp.org/forum/t/how-to-get-help-when-you-are-stuck-coding/19514) method if you get stuck.

View File

@ -216,7 +216,10 @@ export const certificatesByNameSelector = username => state => {
isFrontEndCert,
isBackEndCert,
isDataVisCert,
isFullStackCert
isFullStackCert,
isSciCompPyCert,
isDataAnalysisPyCert,
isMachineLearningPyCert
} = userByNameSelector(username)(state);
return {
hasModernCert:
@ -226,7 +229,10 @@ export const certificatesByNameSelector = username => state => {
isJsAlgoDataStructCert ||
isApisMicroservicesCert ||
isInfosecQaCert ||
isFullStackCert,
isFullStackCert ||
isSciCompPyCert ||
isDataAnalysisPyCert ||
isMachineLearningPyCert,
hasLegacyCert: isFrontEndCert || isBackEndCert || isDataVisCert,
currentCerts: [
{
@ -263,6 +269,21 @@ export const certificatesByNameSelector = username => state => {
show: isInfosecQaCert,
title: 'Information Security and Quality Assurance Certification',
showURL: 'information-security-and-quality-assurance'
},
{
show: isSciCompPyCert,
title: 'Scientific Computing with Python Certification',
showURL: 'scientific-computing-with-python'
},
{
show: isDataAnalysisPyCert,
title: 'Data Analysis with Python Certification',
showURL: 'data-analysis-with-python'
},
{
show: isMachineLearningPyCert,
title: 'Machine Learning with Python Certification',
showURL: 'machine-learning-with-python'
}
],
legacyCerts: [

View File

@ -10,6 +10,13 @@ const apiMicroBase =
const infoSecBase =
'/learn/information-security-and-quality-assurance/' +
'information-security-and-quality-assurance-projects';
const sciCompPyBase =
'/learn/scientific-computing-with-python/' +
'scientific-computing-with-python-projects';
const dataAnalysisPyBase =
'/learn/data-analysis-with-python/data-analysis-with-python-projects';
const machineLearningPyBase =
'/learn/machine-learning-with-python/machine-learning-with-python-projects';
const legacyFrontEndBase = '';
const legacyBackEndBase = '';
const legacyDataVisBase = '';
@ -394,6 +401,114 @@ export const projectMap = {
title: 'Anonymous Message Board',
link: `${infoSecBase}/anonymous-message-board`,
superBlock: 'information-security-and-quality-assurance'
},
{
id: '5e46f979ac417301a38fb932',
title: 'Port Scanner',
link: `${infoSecBase}/port-scanner`,
superBlock: 'information-security-and-quality-assurance'
},
{
id: '5e46f983ac417301a38fb933',
title: 'SHA-1 Password Cracker',
link: `${infoSecBase}/sha-1-password-cracker`,
superBlock: 'information-security-and-quality-assurance'
}
],
'Scientific Computing with Python': [
{
id: '5e44412c903586ffb414c94c',
title: 'Arithmetic Formatter',
link: `${sciCompPyBase}/arithmetic-formatter`,
superBlock: 'scientific-computing-with-python'
},
{
id: '5e444136903586ffb414c94d',
title: 'Time Calculator',
link: `${sciCompPyBase}/time-calculator`,
superBlock: 'scientific-computing-with-python'
},
{
id: '5e44413e903586ffb414c94e',
title: 'Budget App',
link: `${sciCompPyBase}/budget-app`,
superBlock: 'scientific-computing-with-python'
},
{
id: '5e444147903586ffb414c94f',
title: 'Polygon Area Calculator',
link: `${sciCompPyBase}/polygon-area-calculator`,
superBlock: 'scientific-computing-with-python'
},
{
id: '5e44414f903586ffb414c950',
title: 'Probability Calculator',
link: `${sciCompPyBase}/probability-calculator`,
superBlock: 'scientific-computing-with-python'
}
],
'Data Analysis with Python': [
{
id: '5e46f7e5ac417301a38fb928',
title: 'Mean-Variance-Standard Deviation Calculator',
link: `${dataAnalysisPyBase}/mean-variance-standard-deviation-calculator`,
superBlock: 'data-analysis-with-python'
},
{
id: '5e46f7e5ac417301a38fb929',
title: 'Demographic Data Analyzer',
link: `${dataAnalysisPyBase}/demographic-data-analyzer`,
superBlock: 'data-analysis-with-python'
},
{
id: '5e46f7f8ac417301a38fb92a',
title: 'Medical Data Visualizer',
link: `${dataAnalysisPyBase}/medical-data-visualizer`,
superBlock: 'data-analysis-with-python'
},
{
id: '5e46f802ac417301a38fb92b',
title: 'Page View Time Series Visualizer',
link: `${dataAnalysisPyBase}/page-view-time-series-visualizer`,
superBlock: 'data-analysis-with-python'
},
{
id: '5e4f5c4b570f7e3a4949899f',
title: 'Sea Level Predictor',
link: `${dataAnalysisPyBase}/sea-level-predictor`,
superBlock: 'scientific-computing-with-python'
}
],
'Machine Learning with Python': [
{
id: '5e46f8d6ac417301a38fb92d',
title: 'Rock Paper Scissors',
link: `${machineLearningPyBase}/rock-paper-scissors`,
superBlock: 'machine-learning-with-python'
},
{
id: '5e46f8dcac417301a38fb92e',
title: 'Cat and Dog Image Classifier',
link: `${machineLearningPyBase}/cat-and-dog-image-classifier`,
superBlock: 'machine-learning-with-python'
},
{
id: '5e46f8e3ac417301a38fb92f',
title: 'Book Recommendation Engine using KNN',
link: `${machineLearningPyBase}/book-recommendation-engine-using-knn`,
superBlock: 'machine-learning-with-python'
},
{
id: '5e46f8edac417301a38fb930',
title: 'Linear Regression Health Costs Calculator',
link: `${machineLearningPyBase}/linear-regression-health-costs-calculator`,
superBlock: 'machine-learning-with-python'
},
{
id: '5e46f8edac417301a38fb931',
title: 'Neural Network SMS Text Classifier',
link: `${machineLearningPyBase}/neural-network-sms-text-classifier`,
superBlock: 'machine-learning-with-python'
}
]
};

View File

@ -212,7 +212,10 @@ export const challengeDataSelector = state => {
...challengeData,
url
};
} else if (challengeType === challengeTypes.backEndProject) {
} else if (
challengeType === challengeTypes.backEndProject ||
challengeType === challengeTypes.pythonProject
) {
const values = projectFormValuesSelector(state);
const { solution: url } = values;
challengeData = {

View File

@ -68,7 +68,8 @@ const buildFunctions = {
[challengeTypes.html]: buildDOMChallenge,
[challengeTypes.modern]: buildDOMChallenge,
[challengeTypes.backend]: buildBackendChallenge,
[challengeTypes.backEndProject]: buildBackendChallenge
[challengeTypes.backEndProject]: buildBackendChallenge,
[challengeTypes.pythonProject]: buildBackendChallenge
};
export function canBuildChallenge(challengeData) {
@ -88,7 +89,8 @@ export async function buildChallenge(challengeData, options) {
const testRunners = {
[challengeTypes.js]: getJSTestRunner,
[challengeTypes.html]: getDOMTestRunner,
[challengeTypes.backend]: getDOMTestRunner
[challengeTypes.backend]: getDOMTestRunner,
[challengeTypes.pythonProject]: getDOMTestRunner
};
export function getTestRunner(buildData, { proxyLogger }, document) {
const { challengeType } = buildData;

View File

@ -12,7 +12,15 @@ const preFormattedBlockNames = {
'mongodb-and-mongoose': 'MongoDB and Mongoose',
'the-dom': 'The DOM',
'apis-and-microservices': 'APIs and Microservices',
'apis-and-microservices-projects': 'APIs and Microservices Projects'
'apis-and-microservices-projects': 'APIs and Microservices Projects',
'scientific-computing-with-python': 'Scientific Computing with Python',
'scientific-computing-with-python-projects':
'Scientific Computing with Python Projects',
'data-analysis-with-python': 'Data Analysis with Python',
'data-analysis-with-python-projects': 'Data Analysis with Python Projects',
'machine-learning-with-python': 'Machine Learning with Python',
'machine-learning-with-python-projects':
'Machine Learning with Python Projects'
};
const noFormatting = ['and', 'for', 'of', 'the', 'up', 'with'];

View File

@ -9,11 +9,13 @@ const modern = 6;
const step = 7;
const quiz = 8;
const invalid = 9;
const pythonProject = 10;
// individual exports
exports.backend = backend;
exports.frontEndProject = frontEndProject;
exports.backEndProject = backEndProject;
exports.pythonProject = pythonProject;
exports.challengeTypes = {
html,
@ -22,6 +24,7 @@ exports.challengeTypes = {
zipline,
frontEndProject,
backEndProject,
pythonProject,
bonfire,
modern,
step,
@ -42,6 +45,7 @@ exports.viewTypes = {
[bonfire]: 'classic',
[frontEndProject]: 'frontend',
[backEndProject]: 'backend',
[pythonProject]: 'backend',
[modern]: 'modern',
[step]: 'step',
[quiz]: 'quiz',
@ -60,7 +64,7 @@ exports.submitTypes = {
// a hosted URL where the app is running live
// project code url like GitHub
[backEndProject]: 'project.backEnd',
[pythonProject]: 'project.backEnd',
[step]: 'step',
[quiz]: 'quiz',
[backend]: 'backend',
@ -111,5 +115,11 @@ exports.helpCategory = {
'data-structures': 'JavaScript',
'take-home-projects': 'Certification Projects',
'rosetta-code': 'JavaScript',
'project-euler': 'JavaScript'
'project-euler': 'JavaScript',
'scientific-computing-with-python': 'Certification Projects',
'scientific-computing-with-python-projects': 'Certification Projects',
'data-analysis-with-python': 'Certification Projects',
'data-analysis-with-python-projects': 'Certification Projects',
'machine-learning-with-python': 'Certification Projects',
'machine-learning-with-python-projects': 'Certification Projects'
};

View File

@ -6,6 +6,9 @@ export default [
'apis-and-microservices',
'information-security-and-quality-assurance',
'full-stack',
'scientific-computing-with-python',
'data-analysis-with-python',
'machine-learning-with-python',
'legacy-front-end',
'legacy-back-end',
'legacy-data-visualization'

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
"superOrder": 8,
"superOrder": 10,
"challengeOrder": [
[
"a3f503de51cf954ede28891d",

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561add10cb82ac38a17523bc",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/apis-and-microservices-certificate.json"
"fileName": "11-certificates/apis-and-microservices-certificate.json"
}

View File

@ -0,0 +1,18 @@
{
"name": "Data Analysis with Python Certificate",
"dashedName": "data-analysis-with-python-certificate",
"order": 8,
"time": "",
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 11,
"challengeOrder": [
[
"5e46fc95ac417301a38fb934",
"Data Analysis with Python Certificate"
]
],
"isPrivate": true,
"fileName": "11-certificates/data-analysis-with-python-certificate.json"
}

View File

@ -0,0 +1,30 @@
{
"name": "Data Analysis with Python Projects",
"dashedName": "data-analysis-with-python-projects",
"order": 1,
"time": "150 hours",
"superBlock": "data-analysis-with-python",
"superOrder": 8,
"challengeOrder": [
[
"5e46f7e5ac417301a38fb928",
"Mean-Variance-Standard Deviation Calculator"
],
[
"5e46f7e5ac417301a38fb929",
"Demographic Data Analyzer"
],
[
"5e46f7f8ac417301a38fb92a",
"Medical Data Visualizer"
],
[
"5e46f802ac417301a38fb92b",
"Page View Time Series Visualizer"
],
[
"5e4f5c4b570f7e3a4949899f",
"Sea Level Predictor"
]
]
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
"superOrder": 8,
"superOrder": 10,
"challengeOrder": [
[
"587d8253367417b2b2512c6a",

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 10,
"challengeOrder": [
[
"5a553ca864b52e1d8bceea14",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/data-visualization-certificate.json"
"fileName": "11-certificates/data-visualization-certificate.json"
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561acd10cb82ac38a17513bc",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/front-end-libraries-certificate.json"
"fileName": "11-certificates/front-end-libraries-certificate.json"
}

View File

@ -27,6 +27,14 @@
[
"587d824a367417b2b2512c45",
"Anonymous Message Board"
],
[
"5e46f979ac417301a38fb932",
"Port Scanner"
],
[
"5e46f983ac417301a38fb933",
"SHA-1 Password Cracker"
]
],
"helpRoom": "HelpBackend",

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561add10cb82ac38a17213bc",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/information-security-and-quality-assurance-certificate.json"
"fileName": "11-certificates/information-security-and-quality-assurance-certificate.json"
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561abd10cb81ac38a17513bc",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/javascript-algorithms-and-data-structures-certificate.json"
"fileName": "11-certificates/javascript-algorithms-and-data-structures-certificate.json"
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"660add10cb82ac38a17513be",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/legacy-back-end-certificate.json"
"fileName": "11-certificates/legacy-back-end-certificate.json"
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561add10cb82ac39a17513bc",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/legacy-data-visualization-certificate.json"
"fileName": "11-certificates/legacy-data-visualization-certificate.json"
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561add10cb82ac38a17513be",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/legacy-front-end-certificate.json"
"fileName": "11-certificates/legacy-front-end-certificate.json"
}

View File

@ -0,0 +1,18 @@
{
"name": "Machine Learning with Python Certificate",
"dashedName": "machine-learning-with-python-certificate",
"order": 9,
"time": "",
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 11,
"challengeOrder": [
[
"5e46fc95ac417301a38fb935",
"Machine Learning with Python Certificate"
]
],
"isPrivate": true,
"fileName": "11-certificates/machine-learning-with-python-certificate.json"
}

View File

@ -0,0 +1,30 @@
{
"name": "Machine Learning with Python Projects",
"dashedName": "machine-learning-with-python-projects",
"order": 1,
"time": "150 hours",
"superBlock": "machine-learning-with-python",
"superOrder": 9,
"challengeOrder": [
[
"5e46f8d6ac417301a38fb92d",
"Rock Paper Scissors"
],
[
"5e46f8dcac417301a38fb92e",
"Cat and Dog Image Classifier"
],
[
"5e46f8e3ac417301a38fb92f",
"Book Recommendation Engine using KNN"
],
[
"5e46f8edac417301a38fb930",
"Linear Regression Health Costs Calculator"
],
[
"5e46f8edac417301a38fb931",
"Neural Network SMS Text Classifier"
]
]
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
"superOrder": 8,
"superOrder": 10,
"challengeOrder": [
[
"5900f36e1000cf542c50fe80",

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 9,
"superOrder": 11,
"challengeOrder": [
[
"561add10cb82ac38a17513bc",
@ -14,5 +14,5 @@
]
],
"isPrivate": true,
"fileName": "09-certificates/responsive-web-design-certificate.json"
"fileName": "11-certificates/responsive-web-design-certificate.json"
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
"superOrder": 8,
"superOrder": 10,
"challengeOrder": [
[
"594810f028c0303b75339acb",

View File

@ -0,0 +1,18 @@
{
"name": "Scientific Computing with Python Certificate",
"dashedName": "scientific-computing-with-python-certificate",
"order": 7,
"time": "",
"template": "",
"required": [],
"superBlock": "certificates",
"superOrder": 11,
"challengeOrder": [
[
"5e44431b903586ffb414c951",
"Scientific Computing with Python Certificate"
]
],
"isPrivate": true,
"fileName": "11-certificates/scientific-computing-with-python-certificate.json"
}

View File

@ -0,0 +1,30 @@
{
"name": "Scientific Computing with Python Projects",
"dashedName": "scientific-computing-with-python-projects",
"order": 1,
"time": "150 hours",
"superBlock": "scientific-computing-with-python",
"superOrder": 7,
"challengeOrder": [
[
"5e44412c903586ffb414c94c",
"Arithmetic Formatter"
],
[
"5e444136903586ffb414c94d",
"Time Calculator"
],
[
"5e44413e903586ffb414c94e",
"Budget App"
],
[
"5e444147903586ffb414c94f",
"Polygon Area Calculator"
],
[
"5e44414f903586ffb414c950",
"Probability Calculator"
]
]
}

View File

@ -6,7 +6,7 @@
"template": "",
"required": [],
"superBlock": "coding-interview-prep",
"superOrder": 8,
"superOrder": 10,
"challengeOrder": [
[
"bd7158d8c442eddfaeb5bd10",

View File

@ -0,0 +1,59 @@
---
id: 5e46f979ac417301a38fb932
title: Port Scanner
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
Create a port scanner using Python.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-port-scanner' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you some of the Python skills required for this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,58 @@
---
id: 5e46f983ac417301a38fb933
title: SHA-1 Password Cracker
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
For this project you will learn about the importance of good security by creating a password cracker to figure out passwords that were hashed using SHA-1.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-brute-force-password-cracker' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you some of the Python skills required for this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,61 @@
---
id: 5e44412c903586ffb414c94c
title: Arithmetic Formatter
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
Create a function that receives a list of strings that are arithmetic problems and returns the problems arranged vertically and side-by-side.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-arithmetic-arranger' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should correctly format an arithmetic problem and pass all tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```
</section>

View File

@ -0,0 +1,61 @@
---
id: 5e44413e903586ffb414c94e
title: Budget App
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
Create a "Category" class that can be used to create different budget categories.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-budget-app' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should create a Category class and pass all tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```
</section>

View File

@ -0,0 +1,61 @@
---
id: 5e444147903586ffb414c94f
title: Polygon Area Calculator
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this project you will use object oriented programming to create a Rectangle class and a Square class. The Square class should be a subclass of Rectangle and inherit methods and attributes.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-shape-calculator' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should create a Rectangle class and Square class and pass all tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```
</section>

View File

@ -0,0 +1,59 @@
---
id: 5e44414f903586ffb414c950
title: Probability Calculator
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
Write a program to determine the approximate probability of drawing certain balls randomly from a hat.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-probability-calculator' target='_blank'>the full project description and starter code on repl.it</a>. After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should correctly calculate probabilities and pass all tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```
</section>

View File

@ -0,0 +1,59 @@
---
id: 5e444136903586ffb414c94d
title: Time Calculator
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
Write a function named "add_time" that can add a duration to a start time and return the result.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-time-calculator' target='_blank'>the full project description and starter code on repl.it</a>. After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you everything you need to know to complete this project:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/python-for-everybody/'>Python for Everybody Video Course</a> (14 hours)
</li>
<li>
<a href='https://www.freecodecamp.org/news/learn-python-basics-in-depth-video-course/'>Learn Python Video Course</a> (2 hours)
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should correctly add times and pass all tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```js
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/
```
</section>

View File

@ -0,0 +1,50 @@
---
id: 5e46f7e5ac417301a38fb929
title: Demographic Data Analyzer
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this challenge you must analyze demographic data using Pandas. You are given a dataset of demographic data that was extracted from the 1994 Census database.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-demographic-data-analyzer' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,50 @@
---
id: 5e46f7e5ac417301a38fb928
title: Mean-Variance-Standard Deviation Calculator
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
Create a function that uses Numpy to output the mean, variance, and standard deviation of the rows, columns, and elements in a 3 x 3 matrix.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-mean-var-std' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,50 @@
---
id: 5e46f7f8ac417301a38fb92a
title: Medical Data Visualizer
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this project, you will visualize and make calculations from medical examination data using matplotlib, seaborn, and pandas.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-medical-data-visualizer' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,50 @@
---
id: 5e46f802ac417301a38fb92b
title: Page View Time Series Visualizer
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
For this project you will visualize time series data using a line chart, bar chart, and box plots. You will use Pandas, matplotlib, and seaborn to visualize a dataset containing the number of page views each day on the freeCodeCamp.org forum from 2016-05-09 to 2019-12-03. The data visualizations will help you understand the patterns in visits and identify yearly and monthly growth.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-time-series-visualizer' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,50 @@
---
id: 5e4f5c4b570f7e3a4949899f
title: Sea Level Predictor
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this project, you will analyze a dataset of the global average sea level change since 1880. You will use the data to predict the sea level change through year 2050.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-sea-level-predictor' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,61 @@
---
id: 5e46f8e3ac417301a38fb92f
title: Book Recommendation Engine using KNN
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this challenge, you will create a book recommendation algorithm using K-Nearest Neighbors.
You will use the Book-Crossings dataset. This dataset contains 1.1 million ratings (scale of 1-10) of 270,000 books by 90,000 users.
You can access <a href='https://colab.research.google.com/drive/1TDgXyXqZwsiGlnuF-bmQ2Rh3x5NcrHEn' target='_blank'>the full project instructions and starter code on Google Colaboratory</a>.
After going to that link, create a copy of the notebook either in your own account or locally. Once you complete the project and it passes the test (included at that link), submit your project link below. If you are submitting a Google Colaboratory link, make sure to turn on link sharing for "anyone with the link."
We are still developing the interactive instructional content for the machine learning curriculum. For now, check out these learning resources on the freeCodeCamp.org YouTube channel:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/learn-to-develop-neural-networks-using-tensorflow-2-0-in-this-beginners-course/'>TensorFlow 2.0 Course</a> (2 hours)
</li>
<li>
<a href='https://www.youtube.com/playlist?list=PLWKjhJtqVAblStefaz_YOVpDWqcRScc2s'>Machine learning playlist</a>
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,59 @@
---
id: 5e46f8dcac417301a38fb92e
title: Cat and Dog Image Classifier
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
For this challenge, you will use Tensorflow 2.0 and Karas to create a convolutional neural network that correctly classifies images of cats and dogs with at least 63% accuracy.
You can access <a href='https://colab.research.google.com/drive/1UCHiRuBLxo0S3aMuiDXlaP54LsxzrXHz' target='_blank'>the full project instructions and starter code on Google Colaboratory</a>.
After going to that link, create a copy of the notebook either in your own account or locally. Once you complete the project and it passes the test (included at that link), submit your project link below. If you are submitting a Google Colaboratory link, make sure to turn on link sharing for "anyone with the link."
We are still developing the interactive instructional content for the machine learning curriculum. For now, check out these learning resources on the freeCodeCamp.org YouTube channel:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/learn-to-develop-neural-networks-using-tensorflow-2-0-in-this-beginners-course/'>TensorFlow 2.0 Course</a> (2 hours)
</li>
<li>
<a href='https://www.youtube.com/playlist?list=PLWKjhJtqVAblStefaz_YOVpDWqcRScc2s'>Machine learning playlist</a>
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,61 @@
---
id: 5e46f8edac417301a38fb930
title: Linear Regression Health Costs Calculator
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this challenge, you will predict healthcare costs using a regression algorithm.
You are given a dataset that contains information about different people including their healthcare costs. Use the data to predict healthcare costs based on new data.
You can access <a href='https://colab.research.google.com/drive/1h6SMDpC6o-6TFsgdizb3tk5zgE_DYWEo' target='_blank'>the full project instructions and starter code on Google Colaboratory</a>.
After going to that link, create a copy of the notebook either in your own account or locally. Once you complete the project and it passes the test (included at that link), submit your project link below. If you are submitting a Google Colaboratory link, make sure to turn on link sharing for "anyone with the link."
We are still developing the interactive instructional content for the machine learning curriculum. For now, check out these learning resources on the freeCodeCamp.org YouTube channel:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/learn-to-develop-neural-networks-using-tensorflow-2-0-in-this-beginners-course/'>TensorFlow 2.0 Course</a> (2 hours)
</li>
<li>
<a href='https://www.youtube.com/playlist?list=PLWKjhJtqVAblStefaz_YOVpDWqcRScc2s'>Machine learning playlist</a>
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,59 @@
---
id: 5e46f8edac417301a38fb931
title: Neural Network SMS Text Classifier
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
In this challenge, you need to create a machine learning model that will classify SMS messages as either "ham" or "spam". A "ham" message is a normal message sent by a friend. A "spam" message is an advertisement or a message sent by a company.
You can access <a href='https://colab.research.google.com/drive/1qfVQwSKAKU-NKPY4ByBhr93EqSqds4dJ' target='_blank'>the full project instructions and starter code on Google Colaboratory</a>.
After going to that link, create a copy of the notebook either in your own account or locally. Once you complete the project and it passes the test (included at that link), submit your project link below. If you are submitting a Google Colaboratory link, make sure to turn on link sharing for "anyone with the link."
We are still developing the interactive instructional content for the machine learning curriculum. For now, check out these learning resources on the freeCodeCamp.org YouTube channel:
<ul>
<li>
<a href='https://www.freecodecamp.org/news/learn-to-develop-neural-networks-using-tensorflow-2-0-in-this-beginners-course/'>TensorFlow 2.0 Course</a> (2 hours)
</li>
<li>
<a href='https://www.youtube.com/playlist?list=PLWKjhJtqVAblStefaz_YOVpDWqcRScc2s'>Machine learning playlist</a>
</li>
<ul>
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

View File

@ -0,0 +1,50 @@
---
id: 5e46f8d6ac417301a38fb92d
title: Rock Paper Scissors
challengeType: 10
isRequired: true
---
## Description
<section id='description'>
For this challenge, you will create a program to play Rock, Paper, Scissors. A program that picks at random will usually win 50% of the time. To pass this challenge your program must play matches against four different bots, winning at least 60% of the games in each match.
You can access <a href='https://repl.it/@freeCodeCamp/fcc-rock-paper-scissors' target='_blank'>the full project description and starter code on repl.it</a>.
After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below.
We are still developing the interactive instructional part of the machine learning curriculum. For now, you will have to use other resources to learn how to pass this challenge.
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: 'It should pass all Python tests.'
testString: ''
```
</section>
## Challenge Seed
<section id='challengeSeed'>
</section>
## Solution
<section id='solution'>
```py
# Python challenges don't need solutions,
# because they would need to be tested against a full working project.
# Please check our contributing guidelines to learn more.
```
</section>

Some files were not shown because too many files have changed in this diff Show More