=====
CS 111 - Week 1 Lecture 2 - 2026-08-27
=====

=====
TODAY WE WILL
=====
*   announcements
*   continue intro to DrRacket IDE
*   continue intro to syntax, semantics
*   continue intro to Racket simple expressions and data
    types
*   intro to Racket compound expressions
*   prep for next class

=====
BONUS OPPORTUNITY: to ENCOURAGE an early first visit to 
    student hours!
=====
*   During the FIRST TWO WEEKS of class --
    (so, by Friday, September 4)

    COME to BSS 322 during student hours
    and tell me a JOKE,
    and you will receive a 1-point BONUS on
    Homework 1

    *   (Since the main point is to come by my office in
        BSS 322, you must tell me a joke there to receive
        this bonus.)

    *   (If you find me in BSS 302 at a time other than
        student hours, and tell me a joke then, you can
        also receive this bonus. 

        But you can be more sure that I will be there
        during student hours.)

=====
what is a computer program?
=====
*   a list of instructions you want the computer to
    do for you
    *   specific, finite, ordered list for solving
        a problem, doing a task, etc.

    *   BUT! these instructions need to express
        exactly and precisely what you want done,
	using a language the computer understands;

=====
programming environment/Integrated Development
Environment (IDE)
=====
*   an environment/setting/program that makes developing
    these sets of instructions easier

*   DrRacket is an IDE

*   It provides an environment for developing and running sets
    of instructions in several programming languages;

    in our case, we will use it to develop and run sets of
    instructions in Beginning Student Language (BSL) Racket

=====
syntax
======
*   the rules for typing something (expression, statement,
    program, etc.) in a programming language

*   if your program does not follow a given
    language's syntax, the computer cannot translate it
    and execute that program

    *   You have to know BSL Racket syntax to write BSL Racket
        instructions.

=====
semantics
=====
*   the semantics of a statement, expression, program,
    etc. is what it MEANS

   ...we want to write programs with correct syntax
   and correct semantics to solve problems of interest;

    *   You need to know the meaning of syntax to develop
        the instructions you want using that syntax.

=====
comment
=====
*   something you want the computer to IGNORE
    (it is for PEOPLE who are reading the program)
    can be placed in a comment

*   ONE of Racket's comment syntax types:

    ; everything from the semicolom to the line end is ignored

*   you can see examples of comments,
    and some simple and compound expressions,
    in posted example file 111lect01-2.rkt