-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Develop the first set of learning modules #42
Comments
Example JupyterBook for Python Camp: https://gwu-libraries.github.io/python-camp/intro.html |
Michael proposed a list of workshops on a Google spreadsheet. It is titled EMSE 6992 / SEAS 6800 - Management of Research and Software Development in Python indicating that this is a WIP for a credit-bearing course. |
Converted Google sheets content to Markdown, and pasted below.
|
I worked with Jupyter AI to generate more detailed LOs for each module: |
Here are short descriptions for Michael's proposed modules (generated with get-3.5 using the LOs above) This course module focuses on utilizing Jupyter notebooks, such as Google Colab, to write and execute Python code for research and software development. Students will demonstrate proficiency in Python language essentials, including variables, data types, loops, and functions, as well as analyze and troubleshoot Python code in Jupyter notebooks. Collaboration with peers in sharing Jupyter notebooks, providing feedback on Python code, and evaluating the benefits of using Jupyter notebooks for projects will be emphasized. Students will also develop and present a project to showcase their understanding of course concepts and critically assess the impact of Python language essentials and Jupyter notebooks in computer science. This course module will guide you through setting up a coding environment by downloading and installing a text editor and creating virtual environments using Anaconda. You will learn how to activate and manage virtual environments, install code dependencies using pip, create requirements files, and utilize Jupyter Notebooks for interactive coding and data visualization. Additionally, you will gain skills in effectively managing package installations within virtual environments using pip. In this module, students will learn how to set up a Git repository for version control and effectively track changes in code using the staging and committing process. They will also explore Git commands to push code to a remote repository on GitHub, employ branching strategies to manage different versions of code, and collaborate with peers by pulling and merging changes from a shared repository. Additionally, students will develop the skills to troubleshoot common Git errors and conflicts and evaluate the importance of version control in software development projects. In this module, you will learn how to identify and refactor areas in code to enhance readability and maintainability. You will practice simplifying complex logic, removing duplicate code, and applying principles of code organization to improve modularity and reusability. By developing a structured approach and using tools effectively, you will be able to organize code into modules for scalability and evaluate the impact of code simplification on software quality and efficiency. This course module will focus on the benefits of implementing automated tests in software development projects, teaching participants how to write and execute automated tests on a Continuous Integration server. Students will learn to analyze test results, collaborate with team members to troubleshoot issues, and evaluate the impact of Continuous Integration on the development process. By the end of the module, participants will be able to develop a plan for integrating automated testing into a Continuous Integration workflow. Students will learn how to collaborate with researchers and developers in an open environment, using the pull request workflow to propose changes and provide feedback. They will implement automated checks to maintain code quality and engage in code reviews to enhance their peers' work. Through GitHub, they will apply version control principles and communicate effectively with team members using features like issues, comments, and notifications. In this course module, students will learn how to develop a Python package ready for publication on PYPI and implement GitHub Actions to automate the release process. They will demonstrate their ability to release a Python package to PYPI for public use and evaluate the importance of maintaining and updating packages for long-term usability. Additionally, students will analyze the benefits of using version control systems like Git for package development and create documentation to enhance usability for other users. This course module focuses on the importance of writing clear and concise documentation for code readability and maintainability. Participants will learn how to create a documentation site using tools like Jupyter Book or Quarto, and publish it to GitHub Pages for wider accessibility. By utilizing autodoc tools, students will automate the generation of documentation for code elements, demonstrating proficiency in documenting code and publishing a documentation site for a software project. Additionally, they will evaluate and select appropriate tools for publishing documentation based on project requirements and audience needs. This course module will cover the key components of scholarly writing, including formatting, tone, and language, to help students enhance their academic writing skills. Students will learn how to structure an academic article effectively by understanding and implementing the introduction, methods, results, and discussion sections. Additionally, students will be guided on applying correct citation styles, selecting appropriate journals for submission, and utilizing the Quarto Manuscript Template for formatting research papers according to industry standards. In this course module, students will learn how to utilize Flask to create routes and views for user-facing applications. They will demonstrate proficiency in creating dynamic routes and views, as well as designing user-friendly interfaces for web applications using Flask. Additionally, students will learn how to implement error handling and redirection, analyze and troubleshoot routing and view-related issues, evaluate best practices for structuring routes and views, and collaborate with peers to peer-review and provide feedback on Flask applications. This course module will focus on designing and implementing user authentication functionality using Flask and Flask-Login. Participants will learn how to create and manage user accounts, including registration, login, and logout processes, in a Flask application. Additionally, they will explore integrating Flask applications with relational databases, implementing secure data handling techniques, developing RESTful APIs, and testing and debugging user-facing applications for functionality and security. This course module will cover the necessary steps to deploy research and application code to a user-facing production server. Participants will learn how to set up and configure a server environment for hosting research and application code, as well as troubleshoot common issues that may arise during deployment. Additionally, students will explore security measures, performance metrics, and develop a plan for maintaining and updating code on a production server. |
@s2t2 posted on Slack: Current progress for the proposed workshop list is here (in the "lai-workshops" sheet): |
Proposed WorkshopsFall 2024Local Development Tools for Python ProgrammingStatus: FALL Description: Install and configure tools to help you manage and develop Python programs like a professional. Attendees will become familiar with development tools such as a text editor and command line application. Learning Objectives:
Required Software:
Offerings and Desired Dates: 3 (Sept, Oct, Nov) Presenter(s): Michael Rossetti Audience: All GW community Collaborate through Code (Version Control Basics)Status: FALL Description: Demystify the version control process and learn how to manage and collaborate on coding projects with other researchers and developers. Attendees will become familar with Git and GitHub. Learning Objectives:
Required Software:
Offerings and Desired Dates: 3 (Sept, Oct, Nov) Presenter(s): Michael Rossetti Audience: All GW Community Organizing Code for Python ApplicationsStatus: FALL Description: Improve the maintainability and quality of your code. Attendees will become familiar with code modularity and organization principles. Learning Objectives:
Required Software:
Offerings and Desired Dates: 1 (late Sept) Presenter(s): Michael Rossetti Audience: All GW community Testing Python ApplicationsStatus: FALL Description: Improve the maintainability and quality of your code. Attendees will become familiar with automated testing. Learning Objectives:
Required Software:
Offerings and Desired Dates: 1 (early Oct) Presenter(s): Michael Rossetti Audience: All GW community Open Science and Scholarly PublicationsStatus: FALL Description: Share your research with the world. Attendees will publish a scholarly article online and discuss the journal submission process. Learning Objectives:
Required Software:
Offerings and Desired Dates: 3 (Sept, Oct, Nov) Presenter(s): Michael Rossetti, Audience:
Spring 2025Authoring Python PackagesStatus: SPRING Description: Write your own Python package, and share it with the world. Attendees will publish their own package to the Python Package Index (PyPI). Learning Objectives:
Required Software:
Offerings and Desired Dates: 1 (late Jan) Presenter(s): Michael Rossetti Audience: All GW community Documenting Python PackagesStatus: SPRING Description: Document your Python code and publish a documentation site so others can learn how to use your code. Attendees will publish a documentation site for a Python package. Learning Objectives:
Required Software:
Offerings and Desired Dates: 1 (early Feb) Presenter(s): Michael Rossetti Audience: All GW community Deploying Python ApplicationsStatus: SPRING Description: Get your code in the hands of end users. Attendees will host a Python application on a user-facing production server. Learning Objectives:
Required Software:
Offerings and Desired Dates: 1 (late Feb) Presenter(s): Michael Rossetti Audience: All GW community |
Fall 2024 Schedule:
See also: https://library.gwu.edu/events?f%5B0%5D=series%3A365 |
First, essential topics to develop teaching materials for:
Ideas:
Scanned Documents.pdf
The text was updated successfully, but these errors were encountered: