Skip to content

patelj14/building_software

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Building Software

Description

Much work these days is done using software. Analysts need to develop a comfort with building, maintaining, and improving high-quality software, even if they are not primarily employed as a software engineer or developer. This course focuses on equipping students with the skills to build robust software that can be used to answer questions. It focuses on how to effectively write short programs, as part of a small team, in a reproducible way. Software that is built correctly can be used by other teams, not just the person who originally wrote it.

Learning Outcomes

Students will know how to:

  1. Create and read configuration files for programs, and know when to use them
  2. Describe, use, and write Application Programming Interfaces
    • Reading documentation, writing documentation
    • Using HTTP-based APIs in Python
    • Writing Python APIs
  3. Know how to create bug reports and prioritize requests.
  4. Proficiently test software, handle errors, and track provenance
  5. Know how to create Python packages.

Logistics

Course Contacts

Marking Scheme

Learners are assessed based on the course outcomes, which are demonstrated with the in-class exercises and the summative assignment that will be completed both progressively in class, and at home.

Policies

The course is a live-coding class. Students are expected to follow along with the coding, creating files and folders to navigate and manipulate. Students should be active participants while coding and are encouraged to ask questions throughout. Although slides will be available for students to reference, they should be referenced before or after class, as during class will be dedicated to coding with the instructor.

Folder Structure

Below are the folders contained in this repo with a description of what they contain and information on how to use them.

Assignments

This folder contains the homework and assignments for the class.

  • Generally homework is ungraded and due before the next class for feedback from the teaching team
  • The summative assignment is due by the end of the course

Lessons

This folder contains materials and references for each lesson, including slides and sample code.

  • Classes will generally be a mix of didactic teaching and live-coding
  • Learners are encouraged to follow along by typing in code along with the instructor during class
  • The live coding exercises are also reproduced in the slides for reference

Acknowledgements

  • Michaela Drouillard created the initial version of this course, under the guidance of Rohan Alexander.
  • Revised by Simeon Wong for the Data Sciences Institute

Additional Resources

"You are never taught how to build quality software" via Hacker News https://news.ycombinator.com/item?id=38570261

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 36.3%
  • CSS 34.6%
  • HTML 20.1%
  • Python 9.0%