csci 121

Principles of Computer Science, fall 2019 (first year)

Course Description

This course introduces students to computer science (CS), a field devoted to creative problem solving with computers, and its applications to other disciplines. Students explore fundamental concepts, including iteration, recursion, object-oriented software design, algorithm efficiency, levels of naming, parallel computing, and computing ethics. Students apply these concepts daily in hands-on homework exercises relevant to fields in the arts, humanities (including digital humanities computations), social sciences, and natural sciences. Includes a team project applying CS to a chosen discipline.

Course Content

Rationale

From my original proposal: This course makes a distinction between a formal language and a natural language. Python, the coding language employed by the course, is a formal language, or a language that computers can read and understand. Much of this course involves semantics, syntax, and other important details that denote meaning to the computer. This adds to my major and is tangentially related, as it counts towards the linguistics concentration and involves learning another type of language and examining elements of language that encode meaning. 

Final Project

My final project for this course was code that created a pop-up window with fillable fields in order to calculate what grade someone might need on an exam in order to achieve a certain grade overall. The code, written in Python, and the user manual for this grade calculator are linked below.

Takeaways

The main thing I learned from this class was that language can take many forms, and that computers essentially speak their own language. However, even this language has been programmed and predetermined by people trying to simplify language for the sake of commands. Using Python, I have learned about the importance of precision in writing formal languages and about using language for solving logical problems. This course was quite different from any other linguistics course I took, but gave me a new perspective on language as a construct.

Connections

Computational languages, also called formal languages, require precision and cannot be read by the computer if any errors are made. This is quite different from human language, where we can still understand the meaning, even with errors. This begs the question of what language really is, and how much formal languages count in linguistic theory. They tell us a lot about the understanding of language and what people deem to be important for a computer to be able to understand, since people have created formal languages from natural ones. This issue connects most with LNGST 250 (English Language and Linguistics).