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 IF statement?
  • Does Scheme have an IF expression?
  • What are the three parameters to IF?
  • Does Scheme have loops?
  • What does DEFINE do?