diff --git a/public/css/iconfont.css b/public/css/iconfont.css index 880afc22..90707f1f 100644 --- a/public/css/iconfont.css +++ b/public/css/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 2340181 */ - src: url('iconfont.woff2?t=1637544235157') format('woff2'), - url('iconfont.woff?t=1637544235157') format('woff'), - url('iconfont.ttf?t=1637544235157') format('truetype'); + src: url('iconfont.woff2?t=1639038498486') format('woff2'), + url('iconfont.woff?t=1639038498486') format('woff'), + url('iconfont.ttf?t=1639038498486') format('truetype'); } .iconfont { @@ -13,6 +13,46 @@ -moz-osx-font-smoothing: grayscale; } +.icon-jiantou1:before { + content: "\e905"; +} + +.icon-zhangjieicon:before { + content: "\e8fe"; +} + +.icon-chengyuan1:before { + content: "\e903"; +} + +.icon-a-shangchuan2x:before { + content: "\e8f9"; +} + +.icon-shanchu7:before { + content: "\e8fa"; +} + +.icon-zuohuabeifen:before { + content: "\e8fb"; +} + +.icon-a-bianji11:before { + content: "\e8f4"; +} + +.icon-a-bitian2x:before { + content: "\e8f5"; +} + +.icon-a-zuohua2x:before { + content: "\e8f7"; +} + +.icon-lianjie3:before { + content: "\e8f8"; +} + .icon-zhishitupu:before { content: "\e8fc"; } diff --git a/public/css/iconfont.js b/public/css/iconfont.js index e89ab836..d43e3c92 100644 --- a/public/css/iconfont.js +++ b/public/css/iconfont.js @@ -1 +1 @@ -!function(a){var c,l,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,c){c.parentNode.insertBefore(a,c)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}c=function(){var a,c;(c=document.createElement("div")).innerHTML=z,z=null,(a=c.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",c=a,(a=document.body).firstChild?p(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=c,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file +!function(a){var c,l,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,c){c.parentNode.insertBefore(a,c)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}c=function(){var a,c;(c=document.createElement("div")).innerHTML=z,z=null,(a=c.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",c=a,(a=document.body).firstChild?p(c,a.firstChild):a.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(l=function(){document.removeEventListener("DOMContentLoaded",l,!1),c()},document.addEventListener("DOMContentLoaded",l,!1)):document.attachEvent&&(h=c,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index 41b97b77..a3b52d79 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,76 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "26363219", + "name": "箭头", + "font_class": "jiantou1", + "unicode": "e905", + "unicode_decimal": 59653 + }, + { + "icon_id": "26359564", + "name": "章节icon ", + "font_class": "zhangjieicon", + "unicode": "e8fe", + "unicode_decimal": 59646 + }, + { + "icon_id": "26359565", + "name": "成员", + "font_class": "chengyuan1", + "unicode": "e903", + "unicode_decimal": 59651 + }, + { + "icon_id": "26325702", + "name": "上传@2x", + "font_class": "a-shangchuan2x", + "unicode": "e8f9", + "unicode_decimal": 59641 + }, + { + "icon_id": "26325703", + "name": "删除 ", + "font_class": "shanchu7", + "unicode": "e8fa", + "unicode_decimal": 59642 + }, + { + "icon_id": "26325704", + "name": "左滑备份", + "font_class": "zuohuabeifen", + "unicode": "e8fb", + "unicode_decimal": 59643 + }, + { + "icon_id": "26325698", + "name": "编辑 (1)", + "font_class": "a-bianji11", + "unicode": "e8f4", + "unicode_decimal": 59636 + }, + { + "icon_id": "26325699", + "name": "必填@2x", + "font_class": "a-bitian2x", + "unicode": "e8f5", + "unicode_decimal": 59637 + }, + { + "icon_id": "26325700", + "name": "左滑@2x", + "font_class": "a-zuohua2x", + "unicode": "e8f7", + "unicode_decimal": 59639 + }, + { + "icon_id": "26325701", + "name": "链接", + "font_class": "lianjie3", + "unicode": "e8f8", + "unicode_decimal": 59640 + }, { "icon_id": "25748537", "name": "知识图谱", diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index 34e1c551..4d5afdc5 100644 Binary files a/public/css/iconfont.ttf and b/public/css/iconfont.ttf differ diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff index 110dab01..24bbe3db 100644 Binary files a/public/css/iconfont.woff and b/public/css/iconfont.woff differ diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2 index a20e8d6e..8c4cf0fe 100644 Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ diff --git a/src/App.js b/src/App.js index ed1db564..0bebf090 100644 --- a/src/App.js +++ b/src/App.js @@ -111,13 +111,18 @@ const AboutUs = Loadable({ loader: () => import("./forge/AboutUs/AboutUs"), loading: Loading, }) + +const Teaching = Loadable({ + loader : () => import("./forge/TeachingPractice/Teaching"), + loading: Loading, +}) // const CreateMerge = Loadable({ // loader: () => import('./forge/Merge/NewMerge'), // loading: Loading, // }) // 此处仅维护前端可能的一级路由,不用进行项目或者组织判断的字段。 -const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize","login","register","resetPassword","aboutus"]; +const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder"]; class App extends Component { constructor(props) { @@ -370,6 +375,12 @@ class App extends Component { render = {(props)=>} > + {/* 教学实践 */} + } + > + {/* 组织 */} -1)) { new_link = new_link.replace(/homes/g, user_login + "/user_activities") } - //【关于我们】页面 - if(item.name === "关于我们"){ - new_link = `/aboutus`; - } var waiLian = (new_link && str.filter(item=>new_link.indexOf(item)>-1) ); var wl = waiLian && waiLian.length>0; return ( diff --git a/src/forge/TeachingPractice/Teaching.jsx b/src/forge/TeachingPractice/Teaching.jsx new file mode 100644 index 00000000..7a77a0c2 --- /dev/null +++ b/src/forge/TeachingPractice/Teaching.jsx @@ -0,0 +1,244 @@ +import React from 'react'; +import { TPMIndexHOC } from '../../modules/tpm/TPMIndexHOC'; +import head from './image/head.png'; +import img1 from './image/img1.png'; +import img2 from './image/img2.png'; +import img3 from './image/img3.png'; +import img4 from './image/img4.png'; +import img5 from './image/img5.png'; +import img6 from './image/img6.png'; +import img7 from './image/img7.png'; +import img8 from './image/img8.png'; +import img9 from './image/img9.png'; +import img10 from './image/img10.png'; +import img15 from './image/img15.png'; +import img16 from './image/img16.png'; +import img17 from './image/img17.png'; +import img18 from './image/img18.png'; +import img19 from './image/49.png'; + +import './Teaching.scss'; + +function Teaching(){ + return( +
+
+
+
大规模实训课程体系
+
集成化班级协同空间
+
多联盟共建开源竞赛
+
+ +
+ + {/* 大规模实训课程体系 */} +
+

大规模实训课程体系

+

谢绝纸上谈兵,精心打造教学、标注、练平一体化的实战环境

+
+ 实践课程 + 查看更多 +
+
+
window.location.href ='https://www.educoder.net/paths/54'}> + +

Java项目开发实战入门

+
+ 10 + 121992 +
+

+
+
window.location.href = 'https://www.educoder.net/paths/3702'}> + +

基于TRUSTIE的软件工程实践教…

+
+ 11 + 2250 +
+

+
+
window.location.href = 'https://www.educoder.net/paths/85'}> + +

Python零基础到精通

+
+ 11 + 114131 +
+

+
+
window.location.href = 'https://www.educoder.net/paths/936'}> + +

计算机实验教学中心开放实验

+
+ 5 + 135381 +
+

+
+
+
+ 实践项目 + 查看更多 +
+
+
+
+
+
+
+
+
+
+
+
+ + {/* 集成化班级协同空间 */} +
+
+

集成化班级协同空间

+

支持实验、作业、视频、考试、毕设等十余种线上线下管理工具

+
+ 教学课堂 + 查看更多 +
+
+
window.location.href = 'https://www.educoder.net/classrooms/7ckfx39w/announcement'}> +

第四届中国软件开源创新大赛培训

+ +

喻银凤

+

+
+
+ 7241 +

成员数

+
+
+ 18 +

作业数

+
+
+

+
+
window.location.href = 'https://www.educoder.net/classrooms/fwcka9or/announcement'}> +

第三届全国高校绿色计算创新大赛培训

+ +

实践教学

+

+
+
+ 68824 +

成员数

+
+
+ 9 +

作业数

+
+
+

+
+
window.location.href = 'https://www.educoder.net/classrooms/owftcsph/shixun_homework'}> +

基于TRUSTIE的软件工程教学

+ +

朱郑州

+

+
+
+ 61 +

成员数

+
+
+ 34 +

作业数

+
+
+

+
+
window.location.href = 'https://www.educoder.net/classrooms/2029/announcement'}> +

计算机程序设计(C语言)

+ +

拓明福

+

+
+
+ 79753 +

成员数

+
+
+ 105 +

作业数

+
+
+

+
+
+
+
+ + {/* 多联盟共建开源竞赛 */} +
+
+

多联盟共建开源竞赛

+

聚焦开源定期开展有奖大型竞赛,让您的作品伴随您成长

+
+ 在线竞赛 + 查看更多 +
+
window.location.href = 'https://www.educoder.net/competitions/index/gcc_2021_projects_type1'}> + +
+

第四届中国软件开源创新大赛——开源项目创新赛命题组

+

开源项目创新赛聚焦发起或参与开源项目创新开发,设计了命题组和自由组两个组别,其中命题组为参赛团队参与指定开源项目进行贡献。

+

竞赛时间:2021-03-31 — 2021-11-30

+

报名截至时间:2021/11/30 00:00:00

+
+
+

奖金

+

¥ 335,000

+
+
+
window.location.href = 'https://www.educoder.net/competitions/index/gcc_2021_projects_type2'}> + +
+

第四届中国软件开源创新大赛——开源项目创新赛自由组

+

开源项目创新赛聚焦发起或参与开源项目创新开发,设计了命题和自由组两个组别,其中自由组为参赛团队将科研成果/论文算法开源到竞赛平台并进行持续创新。

+

竞赛时间:2021/03/31 — 2021-11-30

+

报名时间:2021/11/30 00:00:00

+
+
+

奖金

+

¥ 235,000

+
+
+
window.location.href = 'https://www.educoder.net/competitions/index/gcc-courses-2021_type1'}> + +
+

第四届中国软件开源创新大赛——开源实践教学赛命题组

+

开源实践教学赛聚焦基于开源技术构建在线实践教学资源开展实践教学,设计了命题组和自由组两个组别,其中命题组要求围绕指定开源技术/平台构建符合MOOP规范的实践教学资源并开展实践教学。

+

竞赛时间:2021/03/31 — 2021/11/30

+

报名时间:2021/11/30 00:00:00

+
+
+

奖金

+

¥ 335,000

+
+
+
window.location.href = 'https://www.educoder.net/competitions/index/gcc-courses-2021_type2'}> + +
+

第四届中国软件开源创新大赛——开源实践教学赛自由组

+

开源实践教学赛聚焦基于开源技术构建在线实践教学资源开展实践教学,设计了命题组和自由组两个组别,其中自由组不限技术/平台、基于实际教学需求构建符合MOOP规范的实践教学资源并开展实践教学。

+

竞赛时间:2021/03/31 — 2021/11/30

+

报名时间:2021/11/30 00:00:00

+
+
+

奖金

+

¥ 335,000

+
+
+
+
+
+ ) +} +export default TPMIndexHOC(Teaching); \ No newline at end of file diff --git a/src/forge/TeachingPractice/Teaching.scss b/src/forge/TeachingPractice/Teaching.scss new file mode 100644 index 00000000..b4322494 --- /dev/null +++ b/src/forge/TeachingPractice/Teaching.scss @@ -0,0 +1,244 @@ +.teaching{ + font-family: PingFangSC-Medium, PingFang SC; + font-size: 16px; + color: #333333; + & .tea_title{ + font-size: 38px; + font-weight: bold; + color: #1E1E1E; + line-height: 53px; + margin-bottom: 20px !important; + } + .tea_small_title{ + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid rgba(153, 153, 153, 0.15); + margin: 30px 0; + &>span{ + color: #1E1E1E; + font-size: 20px; + font-weight: bold; + } + & a{font-size: 14px;} + } + & .tea_part1 .vertical:hover, .tea_part2 .vertical:hover, .tea_part3 .content:hover, .practice div{ + cursor: pointer; + } +} +.tea_head{ + display: flex; + justify-content: center; + align-items: center; + background-color: #F9FAFD; + margin: 30px auto 50px; + & div{ + display: flex; + flex-direction: column; + margin-right: 30px; + & .head_til1{ + background-image: url('./image/image20.svg'); + } + & .head_til2{ + background-image: url('./image/image21.svg'); + } + & .head_til3{ + background-image: url('./image/image22.svg'); + } + & div{ + width: 358px; + height: 118px; + line-height: 118px; + padding-left: 40px; + font-size: 18px; + font-weight: bold; + color: #000000; + } + } + & img{ + width: 750px; + height: 410px; + } +} +.tea_part1, .tea_part2, .tea_part3{ + width: 1200px; + margin: 0 auto; + display: flex; + flex-direction: column; + & p{ + margin: 0 auto; + } + & .content{ + display: flex; + justify-content: space-between; + } +} +.tea_part1{ + & .vertical{ + box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, 0.07); + border-radius: 6px; + & img{ + width: 270px; + } + & p{ + font-weight: bold; + color: #000000; + line-height: 22px; + margin: 25px 0 -5px 20px; + } + & div{ + margin: 15px 0 20px 20px; + & i{margin-right: 5px;} + } + & .hover_bar{ + width: 98%; + height: 4px; + margin-left: 1% !important; + } + &:hover{ + box-shadow: 0px 0px 4px 5px rgba(0, 0, 0, 0.07); + & .hover_bar{background-color: #466AFF;} + } + } + & .practice{ + margin-bottom: 40px; + & div{ + &:hover{ + padding: 3px; + border-radius: 6px; + box-shadow: 0px 0px 8px 7px rgba(0, 0, 0, 0.08); + & img{ + width: 368px; + height: 217px; + } + } + & img{ + border-radius: 6px; + width: 375px; + height: 223px; + } + } + } +} +.tea_part2_bg{ + background: linear-gradient(180deg, #EDF4FF 0%, #EBEDF5 100%); + margin-top: 30px; + & .tea_part2{ + padding: 50px 0 100px; + & .vertical{ + width: 275px; + background: linear-gradient(180deg, #F0F8FF 0%, #FFFFFF 46%, #FFFFFF 76%, #FBFDFF 100%); + box-shadow: 0px 4px 4px 1px rgba(0, 0, 0, 0.05); + border-radius: 4px; + border: 2px solid #FFFFFF; + padding: 20px; + display: flex; + flex-direction: column; + align-items: center; + background-size: 100% 100%; + &>p{ + font-weight: bold; + color: #000000; + line-height: 22px; + } + & img{ + width: 68px; + margin: 40px 0 20px 0; + } + & .thread{ + margin: 20px 0 !important; + border-top: 1px solid #EDEDED; + width: 270px; + } + &>div{ + display: flex; + & div{ + text-align: center; + } + & .mr45{ + margin-right: 45px; + } + & .num{ + font-size: 24px; + font-weight: bold; + color: #466AFF; + line-height: 33px; + } + & p{ + color: #666666; + } + } + & .hover_bar{ + width: 116%; + margin-left: -8% !important; + height: 4px; + position: relative; + top: 23px; + } + &:hover{ + box-shadow: 0px 0px 4px 5px rgba(0, 0, 0, 0.07); + & .hover_bar{background-color: #466AFF;} + } + } + & .classroom1{ + padding: 20px 0 20px 15px; + & .hover_bar{ + width: 104.5%; + margin-left: -5% !important; + } + // background-image: url('./image/image11.svg'); + } + & .classroom2{ + & img{margin: 20px 0;} + // background-image: url('./image/image12.svg'); + } + // & .classroom3{ + // background-image: url('./image/image13.svg'); + // } + // & .classroom4{ + // background-image: url('./image/image14.svg'); + // } + } +} +.tea_part3_bg{ + background: #F6F8FB; + & .tea_part3{ + padding: 80px 0 70px; + & .content{ + padding: 15px 30px; + align-items: center; + &:hover{ + background: #FFFFFF; + box-shadow: 0px 0px 4px 3px rgba(0, 0, 0, 0.06); + border-radius: 6px; + & .center .title{color: #466AFF;} + } + & img{ + width: 300px; + height: 160px; + border-radius: 7px; + margin-right: -50px; + } + & .center{ + width: 57.5%;; + text-align: left; + font-size: 14px; + color: #595959; + & .title{ + color: #26282F; + font-size: 20px; + font-weight: bold; + } + & .tip{ + margin: 5px 0 8px !important; + } + } + & .col85{color: #858999;} + & .col18{color: #181818;} + & .col{ + color: #000000; + font-weight: bold; + } + } + } +} \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/49.png b/src/forge/TeachingPractice/image/49.png new file mode 100644 index 00000000..5139b05a Binary files /dev/null and b/src/forge/TeachingPractice/image/49.png differ diff --git a/src/forge/TeachingPractice/image/head.png b/src/forge/TeachingPractice/image/head.png new file mode 100644 index 00000000..5ee8d9cd Binary files /dev/null and b/src/forge/TeachingPractice/image/head.png differ diff --git a/src/forge/TeachingPractice/image/image11.svg b/src/forge/TeachingPractice/image/image11.svg new file mode 100644 index 00000000..d5d61fc7 --- /dev/null +++ b/src/forge/TeachingPractice/image/image11.svg @@ -0,0 +1,27 @@ + + + 椭圆形 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/image12.svg b/src/forge/TeachingPractice/image/image12.svg new file mode 100644 index 00000000..20b8e3fb --- /dev/null +++ b/src/forge/TeachingPractice/image/image12.svg @@ -0,0 +1,27 @@ + + + 椭圆形 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/image13.svg b/src/forge/TeachingPractice/image/image13.svg new file mode 100644 index 00000000..cb9f49bc --- /dev/null +++ b/src/forge/TeachingPractice/image/image13.svg @@ -0,0 +1,27 @@ + + + 椭圆形 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/image14.svg b/src/forge/TeachingPractice/image/image14.svg new file mode 100644 index 00000000..fa634268 --- /dev/null +++ b/src/forge/TeachingPractice/image/image14.svg @@ -0,0 +1,27 @@ + + + 椭圆形 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/image20.svg b/src/forge/TeachingPractice/image/image20.svg new file mode 100644 index 00000000..efe23614 --- /dev/null +++ b/src/forge/TeachingPractice/image/image20.svg @@ -0,0 +1,110 @@ + + + 椭圆形 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/image21.svg b/src/forge/TeachingPractice/image/image21.svg new file mode 100644 index 00000000..f74399dd --- /dev/null +++ b/src/forge/TeachingPractice/image/image21.svg @@ -0,0 +1,133 @@ + + + 椭圆形 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/image22.svg b/src/forge/TeachingPractice/image/image22.svg new file mode 100644 index 00000000..86909c53 --- /dev/null +++ b/src/forge/TeachingPractice/image/image22.svg @@ -0,0 +1,126 @@ + + + 编组 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/forge/TeachingPractice/image/img1.png b/src/forge/TeachingPractice/image/img1.png new file mode 100644 index 00000000..4c56006d Binary files /dev/null and b/src/forge/TeachingPractice/image/img1.png differ diff --git a/src/forge/TeachingPractice/image/img10.png b/src/forge/TeachingPractice/image/img10.png new file mode 100644 index 00000000..583612f3 Binary files /dev/null and b/src/forge/TeachingPractice/image/img10.png differ diff --git a/src/forge/TeachingPractice/image/img15.png b/src/forge/TeachingPractice/image/img15.png new file mode 100644 index 00000000..bb9d729d Binary files /dev/null and b/src/forge/TeachingPractice/image/img15.png differ diff --git a/src/forge/TeachingPractice/image/img16.png b/src/forge/TeachingPractice/image/img16.png new file mode 100644 index 00000000..ade9e493 Binary files /dev/null and b/src/forge/TeachingPractice/image/img16.png differ diff --git a/src/forge/TeachingPractice/image/img17.png b/src/forge/TeachingPractice/image/img17.png new file mode 100644 index 00000000..34a622e1 Binary files /dev/null and b/src/forge/TeachingPractice/image/img17.png differ diff --git a/src/forge/TeachingPractice/image/img18.png b/src/forge/TeachingPractice/image/img18.png new file mode 100644 index 00000000..e5224d50 Binary files /dev/null and b/src/forge/TeachingPractice/image/img18.png differ diff --git a/src/forge/TeachingPractice/image/img2.png b/src/forge/TeachingPractice/image/img2.png new file mode 100644 index 00000000..51faaf24 Binary files /dev/null and b/src/forge/TeachingPractice/image/img2.png differ diff --git a/src/forge/TeachingPractice/image/img3.png b/src/forge/TeachingPractice/image/img3.png new file mode 100644 index 00000000..8e5f6e39 Binary files /dev/null and b/src/forge/TeachingPractice/image/img3.png differ diff --git a/src/forge/TeachingPractice/image/img4.png b/src/forge/TeachingPractice/image/img4.png new file mode 100644 index 00000000..63c82cad Binary files /dev/null and b/src/forge/TeachingPractice/image/img4.png differ diff --git a/src/forge/TeachingPractice/image/img5.png b/src/forge/TeachingPractice/image/img5.png new file mode 100644 index 00000000..e0d8c244 Binary files /dev/null and b/src/forge/TeachingPractice/image/img5.png differ diff --git a/src/forge/TeachingPractice/image/img6.png b/src/forge/TeachingPractice/image/img6.png new file mode 100644 index 00000000..12d147e7 Binary files /dev/null and b/src/forge/TeachingPractice/image/img6.png differ diff --git a/src/forge/TeachingPractice/image/img7.png b/src/forge/TeachingPractice/image/img7.png new file mode 100644 index 00000000..d3af4dc8 Binary files /dev/null and b/src/forge/TeachingPractice/image/img7.png differ diff --git a/src/forge/TeachingPractice/image/img8.png b/src/forge/TeachingPractice/image/img8.png new file mode 100644 index 00000000..59b0b57e Binary files /dev/null and b/src/forge/TeachingPractice/image/img8.png differ diff --git a/src/forge/TeachingPractice/image/img9.png b/src/forge/TeachingPractice/image/img9.png new file mode 100644 index 00000000..e7581866 Binary files /dev/null and b/src/forge/TeachingPractice/image/img9.png differ