-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
225 lines (218 loc) · 9.04 KB
/
index.html
File metadata and controls
225 lines (218 loc) · 9.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Modern Programming for Data Analytics - Course Overview</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/white.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
<link rel="stylesheet" href="plugin/title-footer/title-footer.css">
<body>
<div class="reveal">
<div class="slides">
<section id="titleSlide">
<h2> Modern Programming for Data Analytics - Course Overview </h2>
<h4> Instructor: Shawn T. Brown, PhD. </h4>
</section>
<section>
<section>
<h3>Course Syllabus is on GitHub at:</h3>
<p>
<a href="https://github.com/CMU-MS-DAS-Modern-Programming-Mini/Syllabus" target="_blank">
https://github.com/CMU-MS-DAS-Modern-Programming-Mini/Syllabus
</a>
</p>
</section>
<section>
<h2>The Goals of the Course</h2>
<ul class="r-fit-text">
<li>Be able to, given a task in data analytics, be able to pick the right algorithm and apply Python tools to solve the task.
<li>Gain insight into the process of how Python and Python-based tools work and can be applied properly for data analytics.
<li>Be able to apply the techniques learned in the class to be able to manipulate, process, and manage data sets from small and simple to large and complex.
<li>Be able to present their software and develop effective software packages in Python within a team development environment.
</ul>
</section>
<section>
<h2> Topics we will try to cover: </h2>
<ul class="r-fit-text">
<li>Brief introduction to Python3 and the development ecosystem
<li>Introduction to object-oriented and procedural programming models and basic software architecture principles
<li>Professional programming techniques for modern software development: version control and team development (Git and GitHub), coding standards, unit and regression testing (PyTest) and continuous integration (TravisCI)
<li>Introduction to R and RStudio
<li>Developing reusable, sharable, and interactive electronic notebooks with Jupyter
<li>Python environment management: Virtualenv and Anaconda
<li>Fundamentals of data structures and their implementation in Python
<li>Python packages for science and data science: NumPy, SciPy, Pandas, StatsModels
<li>Data processing techniques for small, medium and large datasets
<li>Manual and programmatic metadata standards
<li>Data Analytics with Python: Optimization, Linear and Non-Linear Regression, Mathematical Modeling, Monte Carlo Sampling, Distributions, and Clustering
</ul>
</section>
<section>
<h2> Assignments and Grading </h2>
<p class="r-fit-text">There will be 3 programming assignnemts throughout the mini semester and a final project</p>
<ul class="r-fit-text">
<li>Each programming assignment will be 20% of grade
<ul>
<li> All assighments will be submitted through GitHub, specific instructions will be given with the assignment
<li> All assignments will be due 7 days after the assignment is given, 3% points will be deducted every day that the assignment is template
</ul>
<li>Final Project will be 40% of the grade
<ul>
<li> The final project will include a code walkthrough in-class presentation </li>
</ul>
</ul>
</section>
</section>
<section>
<section>
<h2> How will we interact? </h2>
We will attempt to do as much interaction in the class through GitHub
</section>
<section>
<h3>GitHub is is a web-platform that:</h3>
<ul>
<li>Provides software developers a place to interact
<li>Provides a place to share version contolled code
<li>Provides a place to manage software release and distribution
</ul>
</section>
<section>
<h3>Getting a GitHub account (if you don't already have a GitHub account):</h3>
<ol>
<li>Go to <a href="http://github.com" target="_blank">github.com</a>
<li>Click "Sign Up" at the top right
<li>Go through the process
<li>Send your GitHub user name to <a href="mailto:stbrown@andrew.cmu.edu">stbrown@andrew.cmu.edu</a>
</ol>
</section>
<section>
<h3> GitHub Organization </h3>
<p>
Created an Organization on Github called:
<a href="https://github.com/CMU-MS-DAS-Modern-Programming-Mini" target="_blank">
CMU-MS-DAS-Modern-Programming-Mini
</a>
</p>
<p>
The organization allows us to group all of the materials and work done for the class
</p>
</section>
<section>
<h3> GitHub Team </h3>
<p>
We can add teams to the GitHub Organization that allows us to control groups of developers.
</p>
<p>
Can see our current teams at
<a href="https://github.com/orgs/CMU-MS-DAS-Modern-Programming-Mini/teams" target="_blank">
https://github.com/orgs/CMU-MS-DAS-Modern-Programming-Mini/teams
</a>
<p>
We currently have a team called "Class-2021"", which I will make all of you a member once you send me your github account.
</p>
</section>
<section>
<h2> General Help with the course</h2>
<p> Once you are in our GitHub organziation, you will gain access so the Syllabus repository</p>
<p> You can ask questions throug the
<a href = "https://github.com/CMU-MS-DAS-Modern-Programming-Mini/Syllabus/issues" target="_blank">
**Issues** page
</a>
</p>
</section>
</section>
<section>
<section>
<h3> Software Development Cycles </h3>
<ul>
<li> Requirements gathering
<li> Functional Specification
<li> Initial Development Phase
<li> Release Cycle
<ul>
<li> Testing
<li> Addressing Issues
<li> Release Software
<li> Repeat
</ul>
</li>
</ul>
</section>
<section>
<h3> A few things to keep in mind when developing software </h3>
<ul class="r-fit-text">
<li> Elegant is the enemy of good
<li> Testing, testing, testing, testing...
<li> Performance is the second step, not the first
<li> Planning is a good thing
<li> Pick the right tool for the job
<li> Don't be afraid to use other people's work
<li> Invest early in version control (Git)
<li> Just because you are doing scientific software development,
doesn't mean you get to make crappy code
</ul>
</section>
<section>
<h3> A few things to think about when developing as a team </h3>
<ul class="r-fit-text">
<li> Establish rules for group development based on best practices
<ul>
<li> Code reviews
<li> Testing procedures (automated testing)
<li> Coding standards (that are enforced)
<li> Documentation requirements
</ul>
<li> Spend time up front on setting up the collaborative environment
<li> Spend time creating a contribution plan and software philosophy
<li> Adopt a software development project management (Scrum, Agile, DevOps)
</ul>
</section>
</section>
<section>
<section>
<img class="r-stretch" src="static/images/Bridges-2.png">
</section>
<section>
<img class="r-stretch" src="static/images/B-2-stuff.PNG">
</section>
<section>
<img class="r-stretch" src="static/images/B-2-filesystem.PNG">
</section>
<section>
<img class="r-stretch" src="static/images/B-2-packages.PNG">
</section>
<section>
<img class="r-stretch" src="static/images/B-2-ondemand.PNG">
</section>
</section>
<section>
<h3> Assignments for next class (not graded)</h3>
<ul class="r-fit-text">
<li> Sign-up for a GitHub Account
<li> Sign-up for an XSEDE account at <a href="https://portal.xsede.org"> https://portal.xsede.org </a>
<li> Send me an email at <a href="mailto:stbrown@andrew.cmu.edu"> stbrown @ andrew.cmu.edu </a> with your Github and XSEDE user name
</ul>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
dependencies: [{src: 'plugin/title-footer/title-footer.js', async: true, callback: function() { title_footer.initialize(); }}],
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});
</script>
</body>
</html>