in many cases the concerns of the computer sciences and the concerns of the humanities are literally one and the same…The objectives of NLP are largely legible, I think, to anyone from the humanities, with or without the ability to program; that they are pursued with algorithms and code does not change the fact that in the end many of the same questions are asked, and many of the same approaches shared.
Donahue. “A ‘Hello World’ Apart (why humanities students should NOT learn to program).” 28 May 2010
I do not believe all humanities students should be forced to learn to code. Donahue argues that many of the same analysis processes and methods are learned by students of the humanities as students of computer science, and I agree. Proponents of humanities students learning to code often cite the argument that computer science teaches people how to think critically in order to improve problem-solving skills. This is undoubtedly true, but that doesn’t mean that humanities students can’t learn those same skills within the scope of their respective fields. English majors, for example, must learn to analyze text in order to understand connotation, themes, and authorial intent. As Donahue explains, this is not all too different from natural language processing done by computer scientists. History students, for example, must analyze all of the factors that played a role in historical events or phenomenons. This is not all too different from analyzing the factors that contribute to an algorithm’s efficiency. Sociology scholars, for example, must use the power of detailed observation, in conjunction with time, to draw conclusions about their subjects. Some might argue this is not all too different from the process of debugging code. I know these connections are rather abstract, and perhaps they can’t really be compared on a technical scale, but I think the overarching theme of analysis and mindset is there. Both humanities and computer science students employ problem-solving skill sets in their everyday studies.
humanitiesSkills = ["observant","human-oriented", "analytical", "abstract"]
computerScienceSkills = ["observant", "human-oriented", "analytical", "technical"]
for skill in humanitiesSkills:
if skill in computerScienceSkills:
print("Overlap detected! Humanities students employ some of the same skills that computer science students do.")
Note: I wasn’t sure if the code we put in our post had to be HTML, so I chose to use Python. That’s why I don’t have pre tags around my code.
Despite my stance in this debate, I actually have a bit of coding experience, and I really enjoy coding. I’m taking my second computer science course at Carleton this term, and I took digital design classes in high school where I learned HTML and CSS.
You have presented your opinions very well, especially about how some common pro-programming arguments are actually not effective enough. For your code, I believe any programming language is fine, though I would recommend you to still put it in the Code block. It would provide you with proper indentations and apply some pretty-print, though I admit both can be done without the Code block.
While I took the “should” side in this discussion, I like the analogy you made about other fields teaching the same problem-solving concepts as computer science. I also like how you provided examples from multiple fields, not just one, and identified which area of CS they related to. I also wasn’t sure if the code had to be HTML and was thinking about writing Python, but ended up just doing HTML because I was unsure and wanted to be safe. Nice code!