DISCUSSION QUESTIONS
IMPORTANT NOTE: Discussion questions
are a learning or study aide to help you reflect on the concepts and
activities in the course.
Answer the questions in a notebook or electronically, and be prepared to
discuss them in class.
You do not need to submit your answers.
DQ: Intro to Programming Languages Course
Questions based on Sections 1.1 and 1.3 in the 11th Edition of Sebesta's Concepts of Programming Languages:
- What are the benefits to learning about the principles of programming languages?
- Why is readability important to writeability?
- Why is type checking the parameters of a subprogram important?
Related questions (some will require some quick research):
- What common programming language statement, in your opinion, is most detrimental to readability?
- Why might readability be even more important in this new age of AI-produced or AI-aided programming?
- What are the arguments for writing efficient programs even though hardware is relatively inexpensive?
- What was the most important, widely-used language for scientific programming through at least the year 2000? (In other words, for the first 50 years of computer programming?) When was it developed?
- What was the most important, widely-used language for business programming (also known as "data processing") through at least the year 2000? When was it developed?
- What was the most important, widely-used language for artificial intelligence through at least the year 2000? When was it developed?
- In what language(s) was most of Unix/Linux written? When?
DQ: Setting the Stage for Functional Languages
DQ: Prefix, Infix, Postfix Notation
- Do you see the connection to pre-order, in-order, and post-order tree traversal?
- In Java (and C, and all the C-like languages), function or method
calls look like
functionName(param1, param2, param3). Does that correspond to prefix, infix, or postfix? - Practice exercises can be found in a file on Teams.
DQ: Expressions vs. Statements
Which of the following is an expression? Which is a statement? Which might (or must) come from a C-like language and breaks the rules?
- pi = 3.14159
- 3.14159
- pi
- fahr = convert(celsius)
- print fahr
- sqrt(81)
- i = 3;
- i++
- j = i++;
- j = ++i;
- val = myStack.pop();
- ;
- 42;
DQ: Scheme
- What does the abbreviation REPL stand for?
- In what common data structure are LISP lists normally stored?
- Does Scheme have variables? (Named entities whose values change as the program runs?)
- Does Scheme have an
IFstatement? - Does Scheme have an
IFexpression? - What are the three parameters to
IF? - Does Scheme have loops?
- What does
DEFINEdo?