Social Coding Portfolio

Project Description

For the final project in this course, you will create and maintain a social coding portfolio on GitHub that will serve as both a public submission portal for your coursework and a professional showcase of your progress in programming basics, data science, and digital humanities. This portfolio will showcase your technical and reflective responses to four programming activities, culminating in a final semester notebook and reflection on the process.

Programming Activities

Jupyter Notebooks: For each of the four programming activities, you will create a complete, well-documented notebook (.ipynb) that demonstrates your approach to the assigned problem. Your notebook should include code, visualizations, and explanatory markdown cells that clearly communicate your process and results.

Activity Reflection: Alongside each notebook, you will write a one-page reflection in markdown (.md) that details your learning process, the challenges you encountered, and the insights you gained during the activity. These reflections will be committed to your social coding portfolio and later featured on the course website as part of a gallery of student reflections.

Final Reflection

Your final reflection will be an analytical narrative that draws connections between the topics, methods, and datasets we’ve explored throughout the semester. It should reflect on how the knowledge and skills you’ve developed in data science apply to broader contexts, including your personal life, future studies, or professional ambitions.

Ensure that your portfolio remains accessible to the course community by keeping your GitHub repository public. You may use a pseudonym or nickname as your GitHub username to protect your privacy while participating in the public sharing of your work. If you would prefer to keep your portfolio private and only share with me, then please reach out to make that request.

  • Submission Format: Save your reflection as a markdown file (.md) and commit it to your social coding portfolio in the Final-Reflection folder.

  • Length: Approximately 2 double-spaced pages

  • Formatting: Use Times New Roman, 12-point font, or Arial/Helvetica, 11-point font. Adhere to MLA citation format for any sources referenced in your reflection

  • Content: Your reflection should go beyond a mere recount of your activities. It should integrate your experiences with analytical insights and demonstrate how your work in this course intersects with broader academic and personal contexts. You may include examples from your lived experiences, current events, or relevant media to enrich your reflection.

Portfolio Structure

To structure your course portfolio, use the GitHub repository you created at the semester’s outset. This repository will serve as a centralized showcase of your work, accessible to both your peers and the instructional team. For clarity and consistency, name your repository following this convention: [username]/CCNY-Coding-Portfolio. Ensure that the repository is set to public, enabling course-wide visibility and peer review opportunities. If you prefer to remain anonymous, feel free to use a pseudonym or nickname.

Begin by creating a README.md file within your repository. In this file, briefly describe the purpose of the repository as a portfolio for your coursework. Include a summary of its contents, outlining the types of activities and projects housed within. As you add new activity folders, embed links to each within the README for easy navigation. This README will serve as a guide for anyone exploring your repository, giving them insight into your learning trajectory and achievements.

Notebook and Reflection Folders

Organize your repository with two main folders: **Notebooks** and **Reflections**

  1. In the **Notebooks** folder:
    1. save the Jupyter notebook file from Colab to your Google drive,
    2. follow the instructions and complete the programming tasks save the file,
    3. download the competed notebook, then upload it to the Notebooks folder on GitHub
  2. In the **Reflections** folder: in a text editor, create a markdown file (.md) for each activity named activity-X-reflection.md to document your reflections and insights on that activity

Final Reflection

For your cumulative reflection on the semester, upload a file named final_reflection.md directly to the parent directory of your repository. This reflection should encapsulate the broader arc of your learning experience, considering how your understanding of data science, cultural analytics, and/or the digital humanities has evolved over the term. This final reflection will provide a summative perspective on your academic growth and any significant insights gained throughout the course.

Submission Guidelines

  1. After completing each activity, commit your files to your GitHub repository and (optionally) push them to the remote repository

  2. Update your portfolio as you complete each activity; the final portfolio submission will be due at the end of the semester, but periodic checks will be made to ensure timely progress.

  3. Selected reflections from your portfolio will be featured on the course website’s blog section to showcase your hard work and accomplishments over the semester.

Activity Guide

Mandatory Activities

  1. Activity 1: Building Blocks
    • Reflection
    • Jupyter Notebook
  2. Activity 2: Python Primer
    • Reflection
    • Jupyter Notebook

Self-Chosen Activities:

After completing Activities 1 and 2, you are required to complete and upload two additional activities to your portfolio. You may choose these two activities from any of the following options:

  • Activity 3: Practicing Pandas: https://colab.research.google.com/github/zmuhls/ccny-data-science/blob/main/assets/activities/activity_3.ipynb
  • Activity 4: Writing Docs: https://github.com/zmuhls/ccny-data-science/blob/main/assets/activities/activity_4.md
  • Activity 5: Data Visualization: https://github.com/zmuhls/ccny-data-science/blob/main/assets/activities/activity_5.pdf

Alternatively, you can design your own activity or activities from the options below:

  1. Develop a Choose-Your-Own-Adventure Game Utilize Python to create an interactive, text-based adventure game that allows users to navigate a narrative through a series of choices.
    • Skills Focus: Programming and narrative design
    • Goal: Enhance your programming skills and understanding of narrative structures
    • Format:
      • Submit a Jupyter Notebook (.ipynb) containing your interactive game code
      • Include comments in the code explaining your branching structure and logic
      • Write a reflection on the game design, narrative details, and forking pathways through the branched narrative
  2. Create a Digital Exhibit Using Conifer Use Conifer, a web archiving tool, to curate a digital exhibit on a cultural or historical topic of your choice
    • Task: Capture and preserve web pages, organize them thematically, and present them in a coherent, accessible format
    • Tool Link: Conifer
    • Format:
      • In the README.md for your portfolio, submit a link to your published exhibit on Conifer
      • Write a 250-word curatorial introduction to the exhibit in a word document or PDF
  3. Textual Analysis with the Natural Language Toolkit (NLTK) Analyze themes, terms, and trends within a substantial text corpus using Python’s NLTK library
    • Skills Focus: Preprocessing text data, tokenization, normalization, and term frequency analysis
    • Goal: Uncover patterns and insights to inform your understanding of the corpus; use Gutenberg for access to openly licenced text data, ranging from novels, poetry, and letters to philosophical texts, political treatises, and more.
    • Format:
      • Submit a Jupyter Notebook (.ipynb) with your code, including text preprocessing and term frequency analysis
      • Include a reflective section on how your analysis informs your understanding of the text
  4. Conduct a Network Analysis of Character Interactions Apply network analysis techniques to explore relationships between characters in a selected novel, inspired by Melanie Walsh’s modules
    • Skills Focus: NetworkX or similar tools to build and analyze graphs
    • Goal: Deepen understanding of character dynamics and network theory
    • Format:
      • Submit a Jupyter Notebook (.ipynb) with your network analysis code using NetworkX
      • Include a reflective section on how your analysis informs your understanding of the novel
  5. Compile an Annotated Dataset Bibliography Identify and evaluate three publicly available datasets relevant to a specific research question or area of interest in the digital humanities

    • Task: For each dataset, provide a citation, a summary of its contents, an assessment of its quality and relevance, and potential applications

    • Goal: Strengthen your grasp on the critical, research-based evaluation of public datasets

    • Format:

      • Submit a Markdown file (.md), word document, or PDF with your annotated bibliography

      • Each entry should include:

        ​ • Dataset citation (title, author/organization, and URL)

        ​ • Summary of its contents (2-3 sentences).

        ​ • Assessment of quality, relevance, and potential applications (2-3 sentences)

Grading Criteria

Your social coding portfolio will be assessed based on:

  • Completeness: Submission of all required components for each activity and the final reflection.
  • Quality of Work: The accuracy, effort, and thoroughness of your Jupyter notebook responses.
  • Reflective Log: Successful submission of a written reflection for each of your programming activities.
  • Project Organization: The clarity, structure, and navigability of your portfolio’s file structure.
  • Critical Thinking: Especially in your final reflection, demonstrating engagement with the themes and lessons of the class, from critical theories of data feminism to applied methods of data science

Optional Content

Feel free to include additional content in your portfolio that showcases your learning journey, such as:

  • Links to other relevant repositories or projects
  • Additional reflections or blog posts
  • Any multimedia content (e.g., video walkthroughs) that demonstrates your engagement with the material.