Developing a Semi-standardized and Accessible Introduction to Computer Science Course for the SUNY System
INTRODUCTION. As a relatively young and vibrant field, computer science education nationwide faces an issue of a lack of standardization in terms of curriculum, especially at the level of the introductory (first taken) computer science courses. As the largest public higher education system in the country, SUNY has an advantage in exploring a systemic approach to semi- standardize this type of course through the IITG Program. Currently, individual SUNY campuses teach introductory computer science courses differently.1 To further compound the issue, many introduction to computer science courses are not accessible to the typical incoming SUNY student; most high school graduates have not taken any computer science courses, as computer science is not a high school graduation requirement in NY State. Therefore, not all SUNY students have been offered feasible options to learn the fundamentals of computer science prior to entering college; not all SUNY students who are initially interested in pursuing computer science find the pathway to the field smooth; and, not all credits can be transferred to other campuses even for introductory level computer science courses. For many students, different versions of introduction to computer science courses have led to unnecessary confusion and pervasive misunderstanding. Some students misinterpret computer science as gaming or even simply as using Microsoft Office Suite, having no idea what the subject is really about. This has many negative implications. Across the board, computer science faculty members struggle with how to better teach this type of course; much time and effort of computer science faculty members in the SUNY system has been devoted to reinventing the wheel and exploring their own pedagogical methods without much System-level support to improve the course at the entry level. The current practices are not systemic and are not leveraging the unique holistic power of the SUNY system.1 The four SUNY University Centers generally attract better prepared students; however, the majority of SUNY campuses are liberal arts colleges and community colleges, which will greatly benefit from a unified, well-articulated, transferrable curriculum. Based on the above observation and our extensive experience teaching introductory computer science courses, we propose to explore and develop an accessible, semi-standardized Introduction to Computer Science course to address the learning needs of SUNY students regarding the fundamental concepts of computers, computing technologies, and computational thinking. The course will be designed for the student without a strong computer science background; thus, the content of the course will not be focused on programming. This is practical and highly feasible; not all computer science is about programming and there are plenty of fundamental computer science topics to be covered at an entry level without involving substantial coding. This approach will also facilitate offering the course online.
The project will benefit SUNY in several ways. First, it will provide a viable option for students from campuses across SUNY to learn fundamental concepts of computer science. Second, it will support seamless transfer. Third, it will provide students with beneficial information to help them make informative decisions on whether or not they should further pursue computer science. Fourth, the course will save SUNY computer science faculty members a significant amount of time in exploring similar courses again and again on an individual basis.
OBJECTIVES. The primary goal of the project is to explore a new systemic solution to improving introduction to computer science courses throughout the SUNY system. The following objectives/tasks will guide course design and development.
1. Identify the fundamental and general concepts of computer science. Topics should not be dependent on specific technology, programming or any particular programming language. Technologies evolve, fundamental concepts do not. Programming and debugging in the first course can be stressful, distractive and discouraging to the student; on the other hand, one doesn’t have to learn to program and debug to develop a good understanding of computational thinking, abstract thinking and critical thinking – skills that can help students to make decisions about further pursuing computer science. Acquiring these fundamental skills may also improve the engagement of students in other courses.
2. Create a semi-standardized, yet open, curriculum that can be adopted and adapted by SUNY campuses; deliverables will include a sample course syllabus, a list of fundamental topics, sample materials for each topic, sample homework for each topic, and sample test questions for each topic. The syllabus will be designed so that it can be adopted by both four-year colleges and community colleges, to facilitate transferability within and between the two different tiers. This is termed ‘semi-standardized curriculum’ in that the focus is on recommending topics, while leaving concrete examples to individual instructors. For example, how to convert from decimal system to binary system might be a fundamental topic to cover; some slides and examples to support the topic might be developed and provided, but different instructors may come up with different examples in teaching and assignments and provide their extra materials for the topic.
3. Provide access to fundamentals of computer science to typical incoming SUNY students from NY State high schools where computer science is completely optional or not offered at all. The project also contributes to the SUNY transfer pathway initiative4.
4. Address the feasibility of online delivery by designing an online friendly curriculum using proven online teaching and learning practices; and pilot teaching the course online. In order to make an educationally sound application of the proposed work, we believe pilot teaching the course on a smaller scale is a MUST in order to collect first-hand evidence and experience with the application of the proposed project. Online teaching isn’t a must for this course. Some instructors may prefer to or have to teach the course in a face-to-face environment or a flipped classroom style; this will be helpful for the team to compare the impacts of different delivery methods on this type of course.
PROJECT IMPLEMENTATION. The project will tap into the expertise and experience of multiple computer science faculty members, who have abundant experience teaching undergraduate computer science courses across the SUNY system. The PI and Co-PIs will conduct the research required to develop content and collaborate to design the course; other computer science instructors from NY State will serve as internal reviewers as the course is developed, providing essential feedback along the way. The project will also feature collaboration with instructional librarians to assist with identification of appropriate course materials for the new curriculum that are either open access or licensed and available to all SUNY students. The librarians will also assist with web development for provision of online content via the web, the SUNY Learning Network, and other platforms. The project team will:
1. Consult computer science instructors throughout NY State through surveys and interviews, and narrow the project to a manageable scope.
2. Identify and separate essential concepts from the technologies and programming efforts.
3. Examine multiple resources, including a large selection of currently used computer science texts as well as abundant online materials available on the Internet, to identify and select topics to be covered in the new course. We will also scrutinize Exploring Computer Science (ECS)2 and Computer Science Advanced Placement (CS AP) principles3 materials. Both ECS and CS AP principles are NSF funded curriculums designed to teach the fundamental concepts and big ideas of computing along with coding, and to illustrate computer science’s creative potential to K- 12 students. Given that the majority of SUNY incoming freshmen are graduates of NY State high schools, where computer science is optional, certain materials from these types of projects might be enhanced to meet the learning needs of SUNY students. Given the project time span, we will provide some samples for the different topics; however, the one-year project precludes provision of a whole new accompanying book at this time. Therefore, certain information will be provided through reference to certain chapters or websites of existing textbooks. Since the project focuses on fundamental concepts, many materials are either freely available online (e.g. YouTube or Wikipedia) or partially covered by existing textbooks. The instructors of this type of course should also already have some materials of their own. Sample materials will be provided online by the project team.
4. Pilot the course online at five SUNY colleges and offer E -learning materials curated by instructional librarians; the PI and Co-PIs will pilot teach the course at each of their institutions and collectively compile a list of E-learning materials that are relevant to the course.
5. Conduct evaluation and dissemination activities throughout the project. The project will include internal (SUNY) reviewers who will review the curriculum as it is developed, and provide feedback to the PI/Co-PIs, as well as a project evaluator who will develop survey questions for participating students and instructors, conduct the evaluation, and provide a report to the project team.
FUTURE WORK. As a pilot, the project has a somewhat narrow focus and exploratory nature. However, if the curriculum proves to be meaningful, effective and feasible, a possible extension of the project will be to develop an E -text for the entire curriculum to reduce cost to the students. Another potential ‘broader impact’ is to provide a list of fundamental topics to NY State high schools to help teachers and encourage computer science course development that would prepare students for college-level introductory computer science.