Program Overview
Leverage your Python skills to learn about data science and how to identify, solve and answer problems using data! Our BUILD program will introduce learners to the basics of data science within a python programming environment. Builders will use Python libraries such as Numpy, Pandas, Jupyter Notebook, Matplotlib, and Scikit-Learn to perform structured data operations, visualize data, and even create simple machine learning algorithms. Our curriculum focuses on teaching these skills while also being mindful of data activism.
Data activism is when data skills are used to raise awareness or help address social justice issues. Through our socio-technical curriculum, builders will be exposed to many examples of technologists and activists who have gathered, analyzed or amplified data to address a topic of community concern. Learners will be exposed to some of the technologies that have been strategically used to disadvantage communities of color. They will deconstruct these technologies from both a social and technical perspective, then collaborate on ways to address some of the shortcomings of current technology.
Technical Content
Builders will use Python coding skills to introduce themselves to data science concept. They will combine these skills to understand, define, and demonstrate data analytics processes and algorithms.
Social Justice / Community
Learners will have weekly socio-technical dialogue that explores and discusses ethics in technology design. This program will focus on data activism and Jim Code.
Intersectional Tech Identity Development
Participants will hear from minorities working in tech during weekly career panels. They will develop relationships and professional skills through various career workshops and mentorship sessions.
Practical Skill Demonstration
Members will begin developing a portfolio of coding algorithms and data analytics samples through weekly assignments hosted on Replit and Google Classroom.
Hack the Hood & Coding Integrity
The code you write should be your own original work that reflects your understanding of the concepts we discuss together. While computer science is a collaborative discipline, you should avoid just copying and pasting work you find from other sources. Programming is all about curiosity and exploration. You should always aim to come up with original, unique code. If you are studying reliable resources, read the code carefully, understand the logic/behavior behind it and then type your own code without copying and pasting. This way, you will retain the information much better and it may be easier for you to solve similar coding problems that you may see thereafter. Your understanding of the topics is far more important to us than just the completion of the assignment. Like academic writing, your code can incorporate the ideas of others but should reflect your own approach to solving the problem.
Coding can be difficult but if you apply critical thinking, lean on your peers, and use all your resources, there is little doubt that you will succeed! While it may be tempting to copy when you are struggling, don’t give in and don’t give up on yourself! Break complex expressions and tasks down into smaller, simpler steps if you are feeling overwhelmed. Embrace your creativity and trust your gut. If your work appears to present as more sophisticated than we would anticipate, you should expect follow-up questions seeking clarity. Make use of comments in your code to ensure you thoroughly understand anything you want to submit as your own original code.
Software Concept</td> | Description</td> | Related Skills</td> </tr> Software Environment Setup | There are a few essential tools that any type of programmer must be familiar with. Understanding your computer's terminal, knowing how to navigate an IDE, and utilizing Github are practices that all sorts of developers depend on. While discussing software environment setups we will introduce participants to topics like: virtual environments, using the terminal to navigate and manipulate files, creating Github repositories, and Github workflow processes. | After completing this module, learners will be able to demonstrate understanding of the computer's terminal by navigating the file system and executing commands within the command line. They will demonstrate understanding of commonly used tools by creating simple software algorithms utilizing those same tools. | Review of Python Fundamentals | Python is a high-level interpreted language that has many benefits, including easy-to-read and easy-to-write syntax and powerful libraries that provide additional functionality. Python is a great programming language for beginners and it is also used extensively for practical applications in engineering and data science. Learner's are expected to have at least minimal exposure to Python before entering the program. We will briefly review concepts like using variables, using data types and data structures, conditionals and iteration, defining custom python functions, and creating classes. | Before entering this program level, learners are expected to be able to write simple python scripts using the various python data types, operator types and data structures. They should know how to define python functions, make use of iteration, and have some exposure to object oriented programming. | Intro to Data Science & Data Literacy | Put simply, data science can be defined as the process of using data to develop solutions or predict outcomes for a particular problem. To be able to derive meaningful information from these processes however, one must understand data literacy. Data literacy is defined as the ability to read, understand, create, and communicate data as information. The ability to think critically about data by asking and answering questions through data collection and analysis is becoming more important as data gains more influence in our society. During this module we will discuss data science concepts like: defining the different types of data, identifying and validating data sources, and data hygiene. We will use our understanding of these ideas to begin explore descriptive data science, inferential data science, and the data science life cycle within a python programming environment. | After completing this module, learners will be able to define descriptive and inferential analytics while comparing and contrasting the two. They will be able to examine and explain the differences between continuous and discrete data and also the differences between quantitative and qualitative data. Finally, builders will be able to identify reliable data sources, the steps of the data science process, and the tools available in Python for data science use. | Intro to Agile Development | In 2001 some software developers gathered at a ski resort to try and solve an issue that had been plaguing the industry. There was an increasing need for an alternative to the documentation-driven and heavyweight software development processes that were favored at the time. The group called themselves “The Agile Alliance” and would go on to create The Agile Manifesto and the 12 Principles for Agile Development. Afterwards, as Agile gain popularity, different techniques and frameworks would emerge to help people optimize their engineering methods. During our discussions, builders will review The Agile Manifesto, The 12 Principles of Agile, and frequently used Agile design practices like user research and project scoping. | After completing this module, learners will be able to understand how conducting sprint planning and retrospectives can bolster effective collaboration and use agile methods to create and iterate software design informed by users and feedback. They will demonstrate a well-rounded professional skillset necessary to succeed in any career and practice positive professional communication that is actionable. | Data Manipulation with Python | Data manipulation is the core of data science. Data collection, data cleaning, and data analysis are all essential parts of the data science process. All of these processes, and more, are all considered part of data manipulation. In this part of the program, builders learn these foundational data science skills with modern python tools and libraries like Pandas, Matplotlib and Scikit-Learn. They will practice the art of data exploration to tell newly discovered stories and persuade decisions with data-driven insights by collecting and analyzing a data set they choose. | After completing this module, learners will be able to demonstrate use of python libraries like Jupyter Notebooks, NumPy, and Pandas to manipulate and organize data. They will know how to import and clean data and be introduced to statistical tools for working with data. Builders will work through a complete data analysis to understand how the various tools interact with each other. | Data Visualization with Python | Being able to truly comprehend data is difficult at times. Having that data only exist in tabular form certainly doesn't make it easier. If we want to really understand our data, we need to visualize it using descriptive pictures, maps and different types of graphs. The human mind has an easier time processing and understanding data in picture form. The process of finding trends and correlations in our data using these images is called Data Visualization. This visual summary can help expose patterns and insights that may not be as apparent when the data is still in a table or CSV file. Data visualization plays a significant role in the representation of both small and large datasets. During this part of the program, builders will learn how to create basic graphs and images using python's great graphing libraries like Matplotlib and Seaborn. | After completing this module, learners will be able to describe and demonstrate the importance of data visualization. They'll identify and utilize Python data visualization tools and best practices. Builders will implement, customize, and save various plots (histograms, bar charts, pie charts, scatter plots, line graphs, heatmaps, etc.) using Python libraries like Pandas, Seaborn, and Matplotlib. | Machine Learning with Python | Machine learning is exactly what it sounds like. A machine or algorithm is able to process and make informed decisions based off of some input data. It is learning based on experience. Much like how children learn from observing their parents and others around them. Machine learning algorithms or artificial intelligence systems learn by discovering patterns within its input data. This is all done without being explicitly programmed. Instead of writing code, you feed data to the algorithm and it builds the logic. This means that you need a lot of data to make accurate systems. This module will introduce builders to various libraries within python that allow them to use different machine learning models. | After completing this module, learners will be able to explain the difference between supervised and unsupervised machine learning through utilizing simple examples of the different types of algorithms associated with each domain. They will be able to outline the steps machine learning uses to solve problems and make predictions. | Intro to SQL (Structured Query Language) | S.Q.L. is actually an acronym; it stands for “Structured Query Language”. It is a language used to “talk” to a relational database. SQL was developed at IBM by Donald D. Chamberlin and Raymond F. Boyce in the early 1970s. Initially, its name was SEQUEL(Structured English Query Language), which is why some people still refer to it as such. SQL is used to update, manipulate and retrieve data stored in a relational database. Much like the rest of the technology industry, SQL and database management have undergone a lot of changes. During this module, learner will practice these various SQL methods using Python's SQLite. | After completing this module, learners will be able to write various data queries and evaluate the results. They will be able to write SQL statements that edit existing data and also create new database objects. Builders will be able to explain the design of relational databases and why data security is so important. | |