Hello there! I'm Cindy Halliday, an experienced educator in Information Technology, committed to fostering a deep understanding of software development and testing among students.
As a IT Instructor, I have 27 years of experience teaching at North Carolina Community Colleges. During the course of my teaching career I have specialized in Windows Server Administration (Windows NT), Networking, Hardware Maintenance and now computer programming, software development and software testing. I use GitHub Classroom to manage coding assignments, projects, and to foster collaboration and code review skills among students.
My teaching philosophy revolves around practical, project-based learning and encouraging students to learn by doing. I believe in the power of collaboration, open-source contribution, and real-world problem-solving. Through GitHub Classroom, I create a dynamic learning environment where students can work on projects, receive instant feedback, and collaborate with their peers.
- Educational Tools: GitHub Classroom. MS Teams and Blackboard
- Programming Languages: Python, HTML and CSS
Below are some of the courses I teach and projects I've guided students through, demonstrating the application of coding skills in real-world scenarios:
- Description: Spans key QA and testing principles. Starting with an introduction, it quickly moves into software quality assurance and testing basics, test plan and case writing, and the bug tracking process. The course then explores various testing types and approaches, emphasizing both manual and automated testing. The course delves deeper into automated testing, TDD, BDD, API testing, and web application testing. It incorporates sprints for hands-on learning and concludes with a focus on DevOps and CI/CD principles, integrating these into QA practices. Group projects provide collaborative, real-world experience in applying QA methodologies.
- Technologies Used: Git, GitHub, VS Code, Markdown, Python, Pytest, Selenium, Playwright, Postman and other current testing technologies
- Description: Course covers from basic to advanced topics. It begins with fundamentals such as input/output operations, moves into decision structures and repetition, and then delves into functions, lists, and tuples. The curriculum progresses to string handling, file operations, and exception management, before exploring complex structures like dictionaries and sets. Advanced sections include classes, object-oriented programming, and GUI development.
- Technologies Used: Python and PyCharm
- Description: This course begins with web fundamentals, covering the basics of HTML, CSS, and web structure, including semantic HTML, tables, forms, and both internal and external CSS styles. The focus than shifts to programming concepts like input, processing, output, decision-making, and repetition structures, alongside input validation. The next unit introduces client/server models, database fundamentals, and SQL usage on the command line. The final unit integrates these concepts, teaching PHP basics and how to utilize SQL within backend applications, emphasizing practical application of web development and programming principles.
- Technologies Used: Flowgorithm, Notepad++, HTML, CSS, PHP, SQL
There is a progression of use for software development tools. By the time they get to CSC 256 - Software Quality Assurance, students are leveraging the synergies between GitHub, Microsoft Teams, Mermaid, and Markdown.
GitHub Classroom is a cornerstone tool that I use, it facilitates the distribution of course materials and assignments, and enables a dynamic, interactive learning environment. Here's a detailed look at how GitHub Classroom enriches my teaching methodology:
-
Assignment Distribution and Collection: Leveraging GitHub Classroom, I automate the distribution and collection of coding assignments, ensuring that students can easily access tasks and submit their work within designated deadlines. This system simplifies tracking submissions and grading, making the administrative side of teaching more efficient.
-
Code Review and Feedback: I utilize the pull request feature to conduct thorough code reviews, offering students timely, constructive feedback. This process not only helps in identifying areas for improvement but also encourages students to think critically about their coding practices and learn from peer submissions.
-
Projects: Students are tasked with completing individual or group projects that are directly related to real-world applications. These projects are designed to consolidate the programming concepts and tools they have learned, promoting hands-on experience and problem-solving abilities.
-
Discussion Forums and Wikis: Students leverage GitHub's discussion forums to create a vibrant community where students can ask questions, share insights, and discuss topics related to the team project.
-
Issues: Students use GitHub's issue tracking feature to manage questions, enhancements, and bugs related to course projects. Students can file issues when they encounter problems or have suggestions for improvement, allowing for an open, transparent dialogue about the coursework and projects. This feature also teaches students how to effectively communicate technical issues, a valuable skill in software development.
Incorporating Microsoft Teams alongside GitHub Classroom significantly enhances the teaching and learning experience by providing a comprehensive platform for communication, collaboration, and resource sharing:
-
Enhanced Functionality: Student use an extensive range of plugins available in MS Teams. The group project requires each group to tailor their development environment using many of the Plugins available to them.
-
Microsoft Loop for Dynamic Collaboration: By incorporating Loop components, such as tables, lists, and notes, into the project Teams channels and chats, students and I can work together on documents and projects in real-time.
-
Real-Time Feedback and Iteration: With these tools, feedback becomes more dynamic and integrated into the learning process. Students receive real-time comments and suggestions directly within their working documents or code, allowing for immediate iteration and improvement. This ongoing feedback loop, supported by the collaborative nature of Teams and Loop, encourages continuous learning and adaptation, key components of the software development process.
Integrating GitHub and Microsoft Teams with the added capabilities of Markdown and Mermaid diagrams gives students a comprehensive solution for software development projects:
-
Documentation and Diagramming in GitHub: Utilize Markdown for writing detailed documentation and Mermaid for creating diagrams directly in your GitHub repositories. This ensures that all project-related information is easily accessible and up-to-date.
-
Automated Notifications and Discussions in Teams: With GitHub integrated into Microsoft Teams, automatically share updates on project developments, fostering timely discussions and collaboration. Teams can discuss these updates, review documentation, and provide feedback directly within a familiar communication platform.
-
Sharing and Collaboration: Although Teams doesn't directly render Mermaid diagrams, team members can share links to GitHub documentation or upload screenshots of diagrams to Teams channels. This approach keeps the team aligned on project architectures and workflows while leveraging Teams for real-time communication and collaboration.
-
Enhancing Project Management: By combining GitHub’s project management features with Teams’ communication tools, teams can manage their workflows more effectively. This integration ensures that documentation, code updates, and team discussions are interconnected, providing a seamless workflow from idea to deployment.
By incorporating these advanced features and tools into my teaching strategy, I aim to provide a comprehensive, modern learning experience that not only covers the technical skills necessary for software development but also fosters the collaboration, communication, and problem-solving abilities that are crucial in today’s fast-paced, technology-driven world.
Thank you for visiting my educational portfolio. I'm excited about the opportunity to inspire and teach the next generation of developers and IT professionals!