Table of Contents » Chapter 1 : Preliminaries : Programming Across Disciplines
Programming Across Disciplines
Contents
Overview
There was a time when computer programming was almost entirely within the domain of Computer Science (CS); however, that has changed. Programming now transcends traditional boundaries, embedding itself as a fundamental skill across various (I dare say nearly all) disciplines. The following commentary on the growing significance of programming in non-STEM (Science, Technology, Engineering, and Math (STEM)) areas gives a brief overview of the importance of Programming Across Disciplines (PAD).
As programming becomes increasingly common in non-technical fields, such as the Humanities, we see how powerful programming languages like Python and AI tools like ChatGPT are in those environments. Combined with advances in data-related technologies like
- Data Mining,
- Data Visualization,
- Geospatial Analysis,
- Natural Language Processing,
- Network Analysis,
- Text analysis,
- ... and others,
... and with humanist approaches to studying code, data, and algorithms, like
- Code Studies,
- Critical Analysis,
- Diversity Studies,
- Ethics,
- Language/Linguistic Studies,
- Rhetorical Analysis,
- ... and others,
... programming in fields within the Humanities is becoming commonplace. This leads us to question how programming is perceived, learned, and mastered. Historically, programming education heavily influenced by science and math. Programming students were expected to be well-versed in these fields to advance in CS courses. This is still, rightly, the case in Computer Science degree programs. Interdisciplinary study and use of programming breaks away from science and math in many ways, though, as the humanist study of code, data, and algorithms is not generally numerical, but rather textual and language-driven. Programming tools like Python, ChatGPT, and others are powerful and openly available easily to work with textual and language-based data without demanding a heavy mathematical background. Humanist researchers and professionals in non-CS fields take to programming with these tools quite readily.
In Chapter 5 ↗ of this book, I have compiled a list of over seventy disciplines with summaries of how Python programming is used in those disciplines. That list demonstrates the breadth and depth of possibilities for programming from a large number of disciplinary perspectives.
As we consider programming in various disciplines, we should also consider collaborative work in which people from more than one discipline engage in joint projects to address or solve large problems, challenges, or tasks. Here are some key terms related to work across disciplines and ways in which we consider how disciplines function and can work together.
Disciplinary: This approach involves a single discipline or field of study. The focus is on deepening knowledge and expertise within a specific academic or professional domain. For example, a physicist working solely within the realm of physics, using theories and methods specific to physics, is engaging in disciplinary research or study.
Interdisciplinary: This approach integrates knowledge and methods from different disciplines, synthesizing approaches to address a common problem or topic. Unlike disciplinary work, which is confined to the boundaries of a single field, interdisciplinary work crosses these boundaries. For example, a project combining psychology and sociology insights to study human behavior is interdisciplinary.
Multidisciplinary: In a multidisciplinary approach, experts from various disciplines work together, each contributing from their discipline's perspective, but the disciplines remain distinct within the project. The focus is more on adding perspectives rather than integrating them. For instance, a health research project might involve a doctor, a sociologist, and an economist, each analyzing the issue from their disciplinary viewpoint.
Transdisciplinary: This approach goes beyond simply combining different disciplines and seeks to transcend them, creating a new holistic approach. It integrates and transcends disciplinary boundaries to develop new frameworks and perspectives. Transdisciplinary approaches are seen in efforts to address complex societal issues that cannot be understood fully from a single disciplinary perspective. For example, addressing climate change might require a transdisciplinary approach that combines and evolves beyond traditional disciplines like environmental science, economics, and political science.
Studying programming from a humanist perspective offers distinct advantages for any student, whether from a technical field (Computer Science, Information Systems, Engineering, Science, Mathematics, etc.) or a non-technical field (Humanities, Social Science, Behavioral Science, Law, etc. Let's briefly explore how each group can benefit:
In both fields, "Programming for the Humanities" bridges the technical aspects of computer science and information systems and the human-centric approach of the humanities. This course can broaden students' perspectives, making them more versatile and empathetic professionals equipped to design and implement technology solutions that are both efficient and socially and ethically conscious.
Computer Science (Science/Engineering Focus)
- Enhanced User-Centric Design: Humanities courses emphasize understanding human behavior and needs, crucial for designing more intuitive and user-friendly technology solutions.
- Diverse Problem-Solving Approaches: Exposure to humanities enriches problem-solving skills, encouraging computer science students to think beyond conventional algorithms and data structures.
- Ethical and Social Implications: Humanities studies often delve into ethics and social impact, providing a broader context for understanding the consequences of technological developments.
- Interdisciplinary Collaboration: Skills gained in a humanities-focused programming class can improve a computer scientist's ability to collaborate effectively with professionals from various backgrounds.
- Cultural Competence: Understanding different cultural contexts is vital as technology becomes increasingly global.
Information Systems (Business Focus)
- Improved Communication Skills: Humanities studies enhance the ability to articulate technical concepts clearly and persuasively, an essential skill in business environments.
- User Experience and Customer Focus: Learning about the humanistic aspects of programming aids in developing systems that better meet customer needs and improve user experience.
- Analytical Skills with a Human Touch: A humanities perspective can enrich analytical skills, adding a dimension that considers human factors in data analysis and business intelligence.
- Innovative Thinking: Exposure to diverse fields of knowledge can spur creative thinking, leading to novel business solutions that integrate technology and humanistic insights.
- Ethical Business Practices: Understanding the ethical implications of information technology helps make decisions that are profitable and socially responsible.
Humanities
- Enhancing Research and Analysis: Programming allows humanities scholars to process and analyze large datasets, which is impractical with traditional methods. It opens new avenues for research, such as identifying trends in historical events or conducting stylistic analysis of literature on a much larger scale than ever before.
- Creating New Forms of Expression: The digital medium offers new ways for artists and writers to express themselves. Interactive storytelling, digital art installations, and multimedia presentations are just a few examples of how programming can expand the boundaries of artistic expression.
- Preserving and Accessing Cultural Heritage: Digitization projects, powered by programming, ensure the preservation of cultural heritage. They also make these treasures accessible to a global audience through online archives and virtual museums.
- Preparing for a Digital Future: As our world becomes increasingly digitized, the skills learned through programming become essential. They enable humanities students to actively participate in shaping the digital landscape actively, ensuring that humanistic perspectives are included in technological advancements.
Studying programming from a humanist perspective equips students with a unique skill set that is highly valuable in various sectors post-graduation, including commercial, government, and non-profit organizations. Here's how this interdisciplinary knowledge benefits individuals in these areas:
Commercial Sector
- Data Analysis and Interpretation: Humanities graduates with programming skills are adept at analyzing and interpreting complex data, highly sought after in the business world for market research, customer insights, and strategic planning.
- Content Creation and Management: Companies constantly seek professionals who can manage digital content effectively. Humanities graduates are often skilled in content creation, and programming skills allow them to manage digital platforms efficiently.
- User Experience (UX) and Design Thinking: The combination of humanities and programming provides a strong foundation in understanding human behavior and preferences, which is crucial in designing user-centered products and services.
- Digital Marketing: Programming knowledge can enhance digital marketing efforts, from website development to data-driven marketing strategies.
Government Sector
- Policy Analysis and Development: Understanding programming enables humanities graduates to analyze large datasets relevant to public policy, helping in evidence-based policymaking.
- Digital Archiving and Public History Projects: Programming skills are essential in managing digital archives and creating public history projects, which are critical in preserving and presenting national heritage and history.
- Information Management and Cybersecurity: Government agencies need professionals to manage information securely. Humanities graduates with programming skills can contribute to information management and cybersecurity.
- Civic Engagement Platforms: Creating and managing digital platforms that facilitate civic engagement and public participation in governance.
Non-Profit Sector
- Research and Data Management: Non-profits require effective data management for research purposes, fundraising, and tracking the impact of their work. Programming skills enable better handling and interpretation of this data.
- Digital Outreach and Advocacy: The ability to create and manage digital content is crucial for advocacy and outreach efforts in non-profits.
- Resource Optimization: Programming can help optimize limited resources in non-profits through efficient data analysis and automation of repetitive tasks.
- Enhancing Accessibility: Building accessible digital resources for various communities, including those with disabilities, is an area where programming intersects with humanitarian goals.
- In all these sectors, combining humanities and programming fosters a holistic understanding of humanistic values and technological capabilities. This blend of skills empowers graduates to approach problems creatively and ethically, making them valuable assets in a rapidly evolving digital world.