• Stars
    star
    353
  • Rank 120,322 (Top 3 %)
  • Language
    Python
  • License
    Other
  • Created over 2 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Software Design by Example: a tool-based introduction with Python

Software Design by Example

Most data scientists have taught themselves most of what they know about programming. As a result, many have gaps in their knowledge: they may be experts in some areas, but don't even know what they don't know about others.

One of those other areas is software design. A large program is not just a dozen short programs stacked on top of each other: doubling the size of a program more than doubles its complexity. Since our brains can only hold a small number of things at once, making large programs comprehensible, testable, shareable, and maintainable requires more than using functions and sensible variable names: it requires design.

The best way to learn design in any field is to study examples. These lessons therefore build small versions of tools that programmers use every day to show how experienced software designers think. Along the way, they introduce some fundamental ideas in computer science that most data scientists haven't encountered. Finally, we hope that if you know how programming tools work, you'll be more likely to use them and better able to use them well.

Syllabus

More Repositories

1

teachtogether.tech

Teaching Tech Together
TeX
227
star
2

12-design

Ten Quick Software Design Tips for Data Scientists
Perl
139
star
3

tidyblocks

A blocks-based interface for tidy data manipulation and analysis.
JavaScript
82
star
4

sdxjs

Software Design by Example with JavaScript
HTML
58
star
5

10-newcomers

Ten Simple Rules for Helping Newcomers Become Contributors to Open Source Projects
TeX
46
star
6

11-techbook

Eleven Quick Tips on Writing a Technical Book
TeX
28
star
7

10-safety

Ten Quick Tips for Staying Safe Online
TeX
16
star
8

thirdbit

The Third Bit website
HTML
14
star
9

10-findable

Ten Quick Tips for Making Things Findable
TeX
12
star
10

10-csed

Ten Simple Rules for Computing Education
TeX
11
star
11

concept-maps

A collection of data science concept maps
HTML
10
star
12

codebender

Website for codebender.org
HTML
8
star
13

bst

Building Software Together: a student's guide to team software projects
TeX
7
star
14

web-tutorial

Web Programming for Data Scientists
Python
6
star
15

10-accessible

Ten Quick Tips for Making a Scientific Publication More Accessible
TeX
4
star
16

research-this-data

Data for "Research This"
TSQL
4
star
17

mccole

A simple static site generator and linter
Python
4
star
18

sdxpy-2023-02

Software Design by Example in Python: exercises for 2023-02 class
Python
3
star
19

toronto-covid-analysis

2
star
20

mrsp-growth

Managing Research Software Projects: A Model for Personal Growth
TeX
2
star
21

btt

Building Tech Together
Python
2
star
22

tips-change

Paper on tips for organizational change
TeX
2
star
23

aosabook

The Architecture of Open Source Applications
HTML
2
star
24

harper

Lightweight lesson discovery and aggregation
Python
2
star
25

buildtogether.tech

Building Tech Together
TeX
2
star
26

example

Python
1
star
27

gvwilson

Personal details
HTML
1
star
28

example-json-sqla

Combining JSON and SQLAlchemy
Python
1
star
29

nitinat

A model data analysis project in Python
Python
1
star
30

seceba

Software Engineering: A Compassionate, Evidence-Based Approach
HTML
1
star
31

interview-walkthrough

Example to use for interviewing
Python
1
star
32

winbin

Windows tools
Shell
1
star
33

browsercast

Slideshows with voiceover
JavaScript
1
star
34

nss

Neighborhood-Scale Software
Python
1
star