Recently, there has been a large push by many people to make computer science and coding classes a staple in the American education system, just as mathematics and science is. Some have even gone as far as calling coding “the new literacy”. While I do not believe that understanding and being able to write code as being on the same level as being able to read and write your native language, I do believe that being able to write and understand code will only increase in importance in the coming years and should be incorporated more heavily into the American public education system. Growing up, I never had the opportunity to take a computer science class until I had already arrived at Notre Dame. During my senior year in high school I was planning on taking the AP Computer Science course offered, but most of the colleges I planned on applying to had said that, as a prospective engineering student, I needed to take a calculus based physics course, which was at the same time as the computer science course I planned on taking, so I had to drop the computer science course I was originally going to take. This was the only chance I had to get accustomed with coding before I came to Notre Dame and I believe that it would have helped me greatly in my first year or two as a computer science student if I had at least seen some code before then. Therefore, I believe that, while it might not be required for everyone, computer science and coding classes should be offered more widely and easier for students to take these types of classes if they so desire.
In terms of how computer science would be offered, I believe that offering it beginning in high school would be sufficient. While I do believe that offering it earlier would be better, I don’t recall there being much choice in student’s schedule in the public school system up through 8th grade and making it a requirement for everyone might not work best. Therefore, I believe that offering it as an elective through high school, with multiple different electives consisting of differing skill levels and difficulties as students progress throughout high school. As to what exactly should be taught in these courses, I believe that the courses should teach a popular coding language and introduce topics through that coding language, allowing the student to be proficient in at least one language before they enter college. This would most likely be the easiest way to teach computer science to high schoolers, especially freshmen in high school, as there may be students who have not taken calculus or higher level math courses and may not be able to understand some of the concepts learned in computer architecture, theory of computing or other higher level computer science courses. The beginning classes could take a curriculum similar to what we did in Fundamentals of Computing where it would start at the beginning of the coding language and work through some topics such as functions and other simple coding topics. The upper level courses could get into more complicated, beginning level topics in computer science and set up these students well to go into their freshmen year at college and succeed in a computer science education.