Programming and Terminology Lab
Complete by Wednesday at the beginning of class
Objectives
- To review how to program in Python
- To review the terminology of programming so that we are better able to communicate throughout the semester (and beyond).
Motivation
In computer science, we often need to think about our code at multiple levels: the high-level big picture and then the more detailed view of how each method is implemented. We also need to be able to communicate with teammates/colleagues/customers, so we need to make sure we understand the terminology and use it well. I also may use some terms more or less often than your previous faculty. And, finally, it's probably been a minute since you last programmed, so let's get warmed up!
Reviewing Python Programming
Check out the Python code provided and understand what it does (see below for more guidance on this task).
Answer the following questions, just by writing some notes on the handouts:
- What is the role of each file? Of each class?
- How do the classes fit together?
Reading New Code
You probably have never approached this much new code. Cool! New challenge and chance to learn something new!
How should you approach reading the code? You may be tempted to just start from the beginning and read, line by line. However, that shouldn't be your first step. Instead, I recommend creating a mental model of the code in a process that is closer to peeling an onion: start from an outside position and then dig deeper.
- Get the overall structure of the code, considering what are the classes? What is the role of each file/class? Focus on the doc strings when available.
- Find the "driver" or main functions/methods of the classes. (Where do those functions/methods tend to be?) The driver tells you how the code gets started and gives you an overview of what it does.
- Through the previous two steps, consider how the classes fit together/interact with each other and identify the "domain terminology", the terminology that comes from the problem this code is trying to solve (the domain).
- As appropriate, dive a little deeper into the other functions, methods, and data structures to understand what each does. Don't dig too deep, though. The goal today is not to understand this code completely but to review Python programming and programming terminology.
Reviewing Programming Terminology
- Download/make a copy of this Word document from Box.
- Complete the table while also marking up the code provided (e.g.,
highlighting/circling examples of the terms in the Word
document).
We'll do this in phases: 1) on your own, 2) with your neighbors, and 3) looking online.
- Answer the questions in the document.
Submitting your assignment
Show Professor Sprenkle your assignment during the beginning of class on Wednesday.
Grading (20 pts)
You will be graded on making a good-faith effort in identifying and defining the terms.