CS 360/322 Winter
1998, Instructor: Jeffrey Horn
General
Student Concerns:
Colloquia
and Seminars
Local
Events
NMU
CS Employment
What's New:
-
Added TAKEHOME QUIZ 3 (last
one!) to be handed in by Thursday, April 23. You can pick up hardcopy
from Sue, or print these pages out below. Remember, no class Monday,
April 20. Work on this when you can. Shouldn't take long.
If you have questions, send them to jhorn@nmu.edu, or wait until I get
back Wed. morning. See ya!
-
PIZZA assessment (junior and senior
CS and CP majors only) moved to 5pm Thursday, April 23, in WS 104 (the
conference
room in
Seaborg Center). Subject to change!
From the
Job SEARCH Center:
To date, there are only two students signed up to interview with Champion
International, for their Co-op program, next Wednesday, April 22.
Please
pass the word along to interested students that there are time slots
available to interview. Thank you.
Lori McLaughlin
JOBSearch Center
1102 University Center
227-2803
-
Added HW 8, (Pseudocode assignments
from Text Book), see below.
-
Added HW 7, PROLOG! see below.
Older Announcements:
-
Added a GUIDE
TO OPTIONS FOR THE FINAL
-
Added Prolog Intro
-
HOMEWORK 6 Added (see below)
-
As promised, (for once), here is QUIZ 2, take-home,
on memory management issues, to be turned in at or before our next class
at 1pm on Wed. March 25. have a great weekend and remember:
no Monday class!
-
page 1: postscript,
GIF,
or JPEG,
-
page 2: postscript,
GIF,
or JPEG
-
You can also pick up hardcopy from Sue or DW Monday
or Tuesday. Good luck, it is not long.
-
Again, here is the practice quiz
1 handed out in class (from F97). (Can't find solution; sorry!).
-
PARAMETER PASSING CLASS ASSIGNMENT: Here is a worksheet we did in
class just before Spring Break. For those folks who missed that day,
do it on your own and hand it in by the end of thweek, please. I'll
grade it like a take-home quiz. Click here
for the worksheet, and here for a definition of the 4 major parameter passing
methods.
-
OK, to help with the current SCHEME assignment I have written some functions
as examples of "modular programming" in a functional language. Here
is the example code. Just add it to your other code because we
will be able to use it to finish our intelligent planner later. Also,
use these functions as guides for programming some other functions (from
the homework). Here
is a simpler example.
-
Also, in class on Thursday, Feb. 26, we (the brave few) went through a
worksheet on parameter passing that I want everyone to complete and turn
in, by the end of the week after break. Here
it is, but you might need some help with "pass-by-name' and "pass-by-value-return"
which we only discussed Thursday in class. Try looking it up, ask
me in class, or ask me during office hours, or just ask others! It
should be in our text book.
-
Added some Scheme code for graphing a table of blocks (i.e., a state)!
Check it out. Useful for debugging and hopefully fun to watch.
OK, so Lisp/SCHEME is not Java, with all the built-in graphics, but hey,
this is Artificial Intelligence man! OK, so see Homework 5 below
for links to the graphing code. You can just cut and paste it into
your "blocks" file with your other other code, or just create a separate
"graphblocks" file with this code and then read it in with the line ' (load
"graphblocks")" somewhere in your own file of code.
-
Did I mention that Champion Int'l has postponed their interviews until
after Spring break, march 12, Thursday?
-
Also, Marshfield Clinic is planning to visit the following tuesday, march
17, to give a seminar, a company information session, and to interview
for 8 full-time permanent positions, as well as summer and school-year
internships and coops. More details later.
-
Hey folks, so sorry I've had the flu. In case you were out Thursday
or Friday last week (Feb. 19, 20), so was I! Sorry I couldn't give
earlier notice. It struck like lightning. I honestly believe
I'll be in tomorrow, Monday, Feb. 23. Let's push the due date on
HW 5 back to Wed. Feb. 25. Don't get close to me!
-
Also, I fixed the code for "(empty? L)" function, in both the on-line code
file and in the on-line assignment (just change it to "(define (empty?
L) (null? L))" or just use the built-in function "null?" to detect
an empty list, as discussed in class).
-
Added Homework 5, Scheme Programming
-
Added Homework 4 (Intro to Lisp)
-
Added Homework 3 (Regular Languages)
-
Added Homework 2 (VIRTUAL MACHINES). See below for handout.
-
Homework 1, (CS LANGUAGE SURVEY) Official assignment below.
-
Added some info on campus visit from a couple of insurance companies in
Feb., looking for computer grads and also for interns. Follow the
Events
link.
CONTENTS
LECTURE NOTES
WEEK OF January 12, 1998 (first week).
Topics
Introduction
-
Textbook
-
Syllabus
-
Pre-req checks
Four Major Language Paradigms
-
procedural (e.g., Pascal, PL/1, Fortran IV)
-
object-oriented (e.g., C++, Java)
-
functional (e.g., Lisp/SCHEME, mathematica)
-
logic-oriented (e.g., Prolog)
Need for High level Programming Languages
Virtual Machines
Translators: Compilers versus Interpreters
Handouts
WEEK OF January 19, 1997
Topics
-
WEEK OF January 26, 1997 (no class Monday jan. 26)
Topics
-
Why are reserved words reserved/ (i.e., why can't we name a
variable "while"?)
-
Reading: from Chap. 2: pages 25--35.
-
Arithmetic Expressions (first programming language!)
-
Abstract Syntax Trees for arithmetic expr. and Prefix, Infix, Postfix notation
Handouts
-
Pascal BNF Grammar and Syntax Chart (examples)
HOMEWORKS &
PROGRAMS
-
HOMEWORK 1, Survey of Prog. Lang.s Used in CS Courses
-
Assigned in class Wed. Jan 14, 1998 and due (received by
me via email to jhorn@nmu.edu) by Wednesday, Jan. 21, 1998.
-
Find out which programming languages are being used in the
first three semesters of programming at some college or university.
These classes might be known as "CS1, CS2, CS3", or "CS 100, ..." or "Intro
to Prog.", etc. The first two semesters are usually programming and
the third is data structures and algorithms, typically.
-
Suggest you use the web, or ask a friend there, or call up
the CS dept., whatever. Send the answers to me by email; that way
I'll get your email address too!
-
I'll post answers as we get them. So far we know:
SURVEY OF PROGRAMMING LANGUAGES USED IN CS COURSES
| SOURCE |
INSTITUTION |
CS 1 |
CS 2 |
CS 3 |
|
|
|
|
|
|
|
| jeff horn |
Northern Mich. Univ. |
Java |
Java |
C++ |
|
| jeff horn |
Mich. Tech. Univ. |
C++ |
C++ |
C++ |
|
| jeff horn |
Univ. of Illinois at U-C |
Scheme |
|
|
|
| chris |
Bay Du Noc |
Quick Basic |
Quick Basic |
|
|
| tony |
Univ. of Miami |
Java |
C++/Java |
C++/Java |
|
| jason |
Arizona State Univ. |
C++ |
C++ |
Assembly |
|
| calder |
U. Mich, Ann Arbor |
Fortran, Pascal, or Java |
|
|
|
| jeremy |
Univ. of Utah |
C++ |
C++ |
C++ |
|
| jeremy |
U. of Colorado, Boulder |
|
C |
|
|
| jeremy |
U. of New Mexico |
C++ |
C++ |
C++ |
|
| jeremy |
U. of Arizona |
C++ |
C++ |
C |
|
| gordon |
U. of Cincinnati |
Fortran, Basic, or C |
Basic |
|
|
| eric |
Mich. State University |
Fortran |
Fortran |
|
|
| eric |
U. of Cal. Berkeley |
Lisp |
Fortran |
|
|
| john |
Brigham Young Univ. |
Pascal |
C |
Java |
|
| robyn |
U. of Wisc. Madison |
Fortran |
Pascal or Fortran |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
HOMEWORK 2, Virtual Machines
-
Handed out in class Wednesday, January 21, 1998. Due
next Wednesday, January 28, 1998.
-
One page only, here it is postscript
form, and here again in GIF
format.
-
HOMEWORK 3, Regular Languages
-
HOMEWORK
4, Intro to Lisp
-
HOMEWORK 5, Programming in Lisp/Scheme
-
The Robot and the Blocks World (postscript
format, or GIF)
-
The Assignment
-
Here is the code for graphing the blocks. (unfortunately,
needs different versions for "umb-scheme"
and for regular "scheme").
Just include it in your regular code, and use "(graph s)" to display a
state s, where s is the usual list of columns, (e.g., s = ( ( a b
c) (d e) (f) ) would be displayed as:
Note how I would like you to comment your functions.
This is the advantage of small modules: your comments can be limited
to describing each function, without having to comment WITHIN the function
itself.
-
HOMEWORK
6, Using Big Scheme Programs in the Interpreter
-
HOMEWORK
7, Prolog Assignment
-
HOMEWORK
8, Pseudocode Assignment from Text Book
PROGRAMMING
TESTS AND QUIZES