Adiba Hussain, Fatima Azimova, Nazaret Cuadros
Projects in Computer Science
Professor Brian Plancher
May 1, 2023
Introduction
The goal of this project is to develop a computer science curriculum specifically designed for high school students in the New York City public school system. We identified a gap between the computer science knowledge currently being taught in high schools and the level of knowledge required to succeed in college-level computer science courses. Our goal was to create a curriculum that bridges this gap and provides students with the foundational knowledge and skills necessary to excel in higher education and in the tech field as a whole.
We researched various computer science topics and consulted with educators to better understand the needs and interests of our demographic. We developed our pedagogy goals to be self-led education, qualitative tracking with informed consent, active learning, and listening. Based on our findings, we designed a curriculum that covers a wide range of computer science concepts outside of just programming languages. We aim to cover topics from Leetcode to cybersecurity, academia in CS, tech interview prep, and much more. Our end goal is to have an engaging and interactive curriculum that gives students the opportunity to explore various fields within computer science and aligns with our program values of accessibility, collaboration, and community. We are confident that given the resources to complete it, the CS Bridge program can foster a love of learning and a passion for technology and equip students with the tools they need to succeed in college and beyond.
Background
Motivation
Our main motivations for this project stem from our own experience of trying to adjust to the CS curriculum at Columbia as first-year students. All three of us were coming to college from New York City Public High Schools with little to no experience in the tech world. Despite starting with introductory courses in the CS department, as all prospective CS majors are required to do, we still felt a huge learning curve and felt as though we were at a disadvantage. There were students in our Intro CS classes that had years of experience under their belt while we were just starting out. We decided to create a program that can be implemented in high schools in order to help bridge this gap between high school-level knowledge of Computer Science to a baseline understanding of the field. It is not a common occurrence yet for a New York City public high school to offer one or both of the available Advanced Placement computer science courses. Because of this, there could still be discrepancies between how successfully courses are taught, especially if they are recently added. Even when these AP courses are available, the coursework alone does not prepare students for the scope of a computer science major or teach them how to prepare to break into the field of technology. Our aim for this project's curriculum is to bridge the knowledge gap between public high school and higher education for underrepresented students that may be interested in tech and STEM fields regardless of their previous access to computer science and advanced placement education.
Scholarly Research:
In order to get started, we decided our first step would be to see what literature and research there had already been done when it came to pre-college CS education. The following articles highlight the importance of implementing programs introducing computer science in high schools, especially in low-income schools with the excessive demand in modern times.
Increasing accessibility to computer science education across the U.S. (NSF) : The 2013 press release from the National Science Foundation, speaks of their (now inactive) CS10K initiative. They summarize that there is a need for qualified CS educators, CS education isn't mandatory in many places, but there needs to be an early start in CS education. They also give background and verbal support to programs: FRABJOUS, Mobile CSP, Teach for America, Project Lead the Way, The Games Network, and STARS Computing Corps.
Students Need More Access to Computer Science Education (Teach For America): This 2020 article summarizes useful statistics on the STEM education gap and argues that K-12 education is key to tackling this inequity. Teach For America announces its partnership with Cognizant U.S. Foundation on “expanding computer science pathways in low-income schools nationwide”, with a three-pronged strategy of increasing access to high-quality CS education, advancing the CS conversation, and fostering learning and driving innovation.
The Case for Computer Science Accessibility (Harvard Political Review): This December 2022 article speaks of the success of computer science initiatives in boosting STEM education interest and retention, how it benefits students’ performances in other subjects, and how it fosters skills useful for all careers in a technology-oriented world. Especially beneficial is “free, high-quality instructional material” that makes CS classes as long as the school has computer access.
The Rollout of Computer Science Education to Every Student in New York City: A Socio-Contextual Social Network Analysis: This article covers the history of the CS4All initiative which is projected to be implemented in all NYC public schools by 2025. This program aims to create “the necessary infrastructure to provide computer science experiences to all New York City public-school students”. This initiative was announced in 2015 by NYC Mayor Bill de Blasio. This article was helpful with our overall understanding of the plans to implement more CS Education on a public school level in order to differentiate our own curriculum.
Landscape of CS Implementation in Schools. Technical Appendices: This is another article that covers CS4All which also “aims to provide professional development (PD) in CS for nearly 5,000 teachers, specifically targeting those with little or no computer science background. The initiative is focused in part on increasing access to CS education among students from historically underrepresented groups, including girls, Black and Latino students, English Learners, and special education students”. This specific report describes “findings from the first year of the evaluation” and includes the goals and strategies of the program, an early implementation of the program and how teachers are responding to the professional development.
A comparative analysis of computer science baccalaureate graduates from cooperative and noncooperative education programs in New York State: This is a dissertation from the 90s that details a study that had the purpose to “to compare the career progress of graduates from a cooperative education in computer science to non-cooperative graduates in the same field of study. A secondary purpose is to determine the current attitudes held by graduates and faculty supervisors toward the cooperative method in order to assess the relative perceived value of cooperative programs.”
Competitor Research:
In addition to the scholarly works, we also wanted to understand what programs were readily available for students. By researching these programs, we were better able to plan out our program by seeing what was missing from existing programs. Also, we used these programs as a guideline. For example, after researching CS For All, we decided to use their lesson plan templates as guides for our own lesson plans. Understanding the outline of AP CS classes helped make sure that our program was addressing topics AP curriculums were not going over. This way, even if students were taking AP courses, our program would not be redundant but instead supplemental. The nonprofit organization Mouse provides free customized computer science professional development that is New York State CTLE-approved. Available K-12 topics include the Title IV-funded Design League, DIIT Remote Learning, and Code.org CS Fundamentals, Discoveries & Principles. The Barnard College CEP also provides more resources available for educators for overall teaching and active learning skills, especially since CS Bridge values participatory and involved environments and content. Since this program is voluntary, active learning is key to promoting self-guided knowledge with activities and discussions.
Below is a brief summary of the different programs we researched:
CS For All: An national organization to bring computer science classes to all K-12 public schools by providing a free curriculum directory. Provides 76 Algorithms and Programming, 44 Computing Systems, 43 Data and Analysis, 48 Impacts of Computing, and 32 Networks and Internet courses at varying costs and lengths. Includes sub-concepts: Algorithms, Control, Culture, Devices, Modularity, Program Development, Safety, Law, and Ethics, Social Interactions, Variables, and Visualization and Transformation.
AP Computer Science A: Focuses on computing skills related to programming in Java (equivalent to a college-level intro to computer science course) Modularity, Variables, and Impact of Computing. Units 1-10 are: Primitive Types, Using Objects, Boolean Expressions and if Statements, Iteration, Writing Classes, Array, ArrayList, 2D Array, Inheritance, and Recursion. There is also a lab component focusing on group work and problem-solving (Found in Course Overview and Course and Exam Description).
AP Computer Science Principles: Provides students with a broad introduction to computer science (equivalent to a college-level breadth course) and how it relates to other fields. Focuses on computational thinking practices and learning with the following areas of study: Creative Development, Data, Algorithms and Programming, Computing Systems and Networks, Impact of Computing. Computational Solution Design: Design and evaluate computational solutions for a purpose. They aim to teach the following skills: Algorithms and Program Development, Abstraction in Program Development, Code Analysis, Computing Innovations, and Responsible Computing (Found in Course Overview and Course and Exam Description).
Code.org: Provides coding courses AP CSA, AP CSP, CS Discoveries for grades 6-10, CS Fundamentals for ages 4-11, Pre-reader Express for ages 4-8, CS Fundamentals: Express for ages 9-18, and professional learning to teach for all ages.
Hour of Code: An initiative to have school-aged students participate in coding games and exercises for “pre-reader” to grades 9+ for one hour a year to introduce them to coding skills.
Google CS First: A resource that provides hour-long coding lessons, Hour of Code programming, eight lessons with multi-day units, and two advanced coding courses.
Khan Academy: Provides Hour of Code lessons and courses in Computer programming, Computers and the Internet, AP®︎/College Computer Science Principles, Pixar in a Box Animation, Computer science (Algorithms, Cryptograph, and Information theory), and Computers and the Internet in partnership with Code.org.
Diagnostic Exam Research:
As a way to measure the effectiveness of our program, we knew we wanted to implement some type of diagnostic in the beginning and end of the program. In order to do this in the most productive way, we consulted Bobby Koeth III of the Columbia University Teaching and Learning Center (TLC) as well as Alex Pittman at the Barnard College Center of Engaged Pedagogy (CEP). The main goal we decided on with these diagnostic tools and for the teaching style, in general, is to incentivize students to take responsibility for their own learning. Their responses on the diagnostics will ideally be shared with them at the end of the program to show them their growth, as well as serve as an attendance/exit slip for educator and program needs. Outside of the diagnostics, educators should not be surprised if students attend classes sporadically, especially since most classes are stand-alone and don’t require prior knowledge. They should instead emphasize the applicable career knowledge and incentivize students with snacks to create a good environment students are excited to be.
Design and Implementation
For the current design, we decided for the program to consist of ten 60-minute sessions that can be implemented in a format of a weekly after-school program. Each session will delve into a different topic of technology or Computer Science. Below were the proposed sessions for our program (not in chronological order):
Course Overview
- In the first and last sessions, students will be given a diagnostic exam in order to track their knowledge and progress as a means to evaluate the effectiveness of our program.
- 10 sessions:
- Introduction to course and diagnostic quiz;
- CS Curriculum requirements, focus on pathways in CS
- Basics of Computer Science;
- Intro to Leetcode/Hackathons
- Internships, tech interviews, tech industry background
- Research/Academia in CS, HCI, NLP, AI
- Intersection between CS and other fields (can possibly have guest speakers)
- CS and English
- CS and Music
- CS and Humanities
- CS and Media
- Cybersecurity: White-hat hacking, pentesting, portswigger
- Networking, tech resume and LinkedIn workshop
- Program wrap-up and course evaluation survey
At the moment, we have fully developed and fleshed out the first five lesson plans and the diagnostic exit slips for the first session and the last session. We also have designed the lesson slides for the first session on the introduction to the course.
Results and Discussion
Our project's advancement has been documented through weekly blog posts on the website, which serve as a comprehensive record of the project's mistakes and achievements. Our initial target goal was to have a few sample lesson plans that provide the necessary resources for an educator to teach the class, as well as a cumulative project proposal and curriculum outline for the course. We realized, however, that having a final project proposal at the end of the semester wasn't as necessary as creating templates for lesson plans, class presentations, and diagnostics. We were able to reach the target goal by completing the first five lesson plans, but most of our work was put into background research in K-12 CS education and the creation of the pedagogy style of the class. By the end of the planned timeline, we made a lesson plan template and the lesson plans for the first half of the curriculum, designed the introductory and closing diagnostic quizzes, prepared the slides for the first day of class, and wrote a final update for educators and future contributors. The vision for the diagnostic quizzes also changed from taking up a good portion of a class session to being condensed into a shorter exit slip because of our values mentioned above. We believe that qualitative tracking of student growth can be just as useful to students as it is to educators and framing diagnostics as a tool for tracking the student’s engagement and self-led learning.
Our hope is that the progress made on CS Bridge so far creates a strong foundation for future contributors if this project is picked up by a team with similar values as ours. We also realized that our most important next step for CS Bridge would be to practice teaching the first class. We reached out to Raul Cervantes of Access Barnard, who does high school outreach for the college, and we spoke about holding a CS basics class for high school students. Unfortunately, we were not able to complete a test run this semester. However, we believe that doing a sample lesson of the first class of the curriculum will help us improve our existing lesson plans and help us complete the rest of the topics. We are still looking for the best lesson order for students, figuring out the knowledge baseline we should assume, and how to best teach students with varying levels of CS background in one class. Real-life feedback from our target demographic for our first class will help to make sure all of the following classes are engaging and motivating for self-led learners.
Conclusion and Future Work
In conclusion, CS Bridge has made significant progress towards its goal of bridging the gap between high school knowledge of computer science and a baseline understanding of the field that prepares NYCDOE students for a college education in computer science. With the completion of the first half of the curriculum, introductory and closing student diagnostic quizzes, an initial project proposal, and slides for the first day, CS Bridge has laid a strong foundation for future development. However, the project still requires more work to make it fully accessible and effective for all students.
Moving forward, the project needs a team with similar values and connections to continue on the same trajectory. The project also needs to incorporate feedback from educators and students to ensure that it is meeting its objectives effectively, which could be done from a pilot session. Additionally, expanding partnerships with organizations like Barnard College’s Center of Engaged Pedagogy and Opportunity Programs at Barnard can provide additional resources and professional development opportunities for educators to improve their computer science teaching skills.
In summary, the progress made on CS Bridge so far is a promising step towards promoting accessibility, collaboration, and community in computer science education. With continued effort and support from all stakeholders, the project can achieve its ultimate goal of preparing high school students for a successful career in the field.
Works Cited and Consulted:
“AP Computer Science A.” AP Computer Science A Course – AP Central | College Board, https://apcentral.collegeboard.org/courses/ap-computer-science-a
“AP Computer Science Principles.” AP Computer Science Principles Course – AP Central | College Board, https://apcentral.collegeboard.org/courses/ap-computer-science-principles/course.
Appelt, Hans-Peter. A Comparative Analysis of Computer Science Baccalaureate Graduates from Cooperative and Noncooperative Education Programs in New York State, Cornell University, United States -- New York, 1991. ProQuest, http://ezproxy.cul.columbia.edu/login?url=https://www.proquest.com/dissertations-theses/comparative-analysis-computer-science/docview/303957277/se-2
Cenovic, Jack. “The Case for Computer Science Accessibility.” Harvard Political Review, 9 Dec. 2022, https://harvardpolitics.com/computer-science-accessibility/
“Coding Courses & Computer Science Curriculum - CS First.” Google, Google, https://csfirst.withgoogle.com/c/cs-first/en/curriculum.html
“Computing.” Khan Academy, Khan Academy, https://www.khanacademy.org/computing
“Curriculum Directory.” CSforALL, https://www.csforall.org/projects_and_programs/curriculum_directory/
Holbert, Nathan, et al. “The Rollout of Computer Science Education to Every Student in New York City: A Socio-Contextual Social Network Analysis.” Sage Journals, 1 Nov. 2020, https://journals.sagepub.com/doi/abs/10.1177/016146812012201106
“Hour of Code: Anybody Can Learn.” Code.org, https://hourofcode.com/us/learn
“Increasing Accessibility to Computer Science Education across the U.S.” NSF, https://www.nsf.gov/news/news_summ.jsp?cntn_id=129882
“Mouse Educators.” Mouse, https://mouse.org/educators
“Students Need More Access to Computer Science Education.” Teach For America, 8 Dec. 2020, https://www.teachforamerica.org/stories/students-need-more-access-to-computer-science-education
“Teach Computer Science.” Code.org, https://studio.code.org/courses?view=teacher
“Teaching Resources.” Teaching Resources | Barnard Center for Engaged Pedagogy, https://cep.barnard.edu/teaching-resources
Villavicencio, Adriana, et al. “Computer Science in New York City: An Early Look at Teacher Training Opportunities and the Landscape of CS Implementation in Schools. Technical Appendices.” Research Alliance for New York City Schools, 30 June 2018, https://eric.ed.gov/?id=ED591502