Abstract A new laboratory course in computer science for liberal arts students has beendeveloped by the author. This breadth-first course covers 13 topics incomputer science in a lecture course, while a co-requisite laboratory courseprovides lab experience with 13 prepared experiments.

The Scheme programmingnotation is used consistently in lecture and laboratory as a lingua franca forcomputer science.

Students are not taught Scheme programming, but rather,learn just enough Scheme syntax and semantics to be able to read and understandprograms written by others Electrical & Computer Engineering Program, School of Engineering and Computer Science in Waco, Texas, is a private Baptist university, and a nationally ranked liberal arts institution. ECE Lab. Lab Reports - Explains formatting requirements for ECE laboratory reports. Sample Formal Report Xilinx ISE - Getting Started..

Working Scheme models for each computer sciencetopic are presented in the lecture course and are studied experimentally in thelaboratory course. The development of this course and laboratory was funded bythe Meadows Foundation and NSF grant DUE 9452050.

Keywords: CS laboratory course, Scheme, exposition. Introduction At my university there was a need for new laboratory science courses whichstudents could use to partially satisfy the science requirement in eachstudent's common curriculum. Each student is required to complete two or threescience courses.

Two courses suffice when one of the two courses is alaboratory science course, so there is some incentive to take a laboratorycourse because the common curriculum requirement is reduced by one course. Traditionally, laboratory science courses had been selected from the naturalscience disciplines of biology, geology, physics or chemistry.

The authordeveloped a new introductory computer science laboratory course (andco-requisite lecture course) in which students are gathered together in aworkstation laboratory at the same time to work in pairs performing a preparedlaboratory experiment. One feature of this course is that it covers a variety of computer sciencetopics at about the rate of one new topic per week.

Consequently, only anintroduction to each topic can be presented during the three lectures on eachtopic. As a result, the course emphasizes a breadth of understanding at theexpense of depth of understanding of any single topic.

Another feature of this course is that, while it uses the Scheme programmingnotation extensively to describe and model each topic, the course does notattempt to teach students to become effective programmers. Students are taughtjust enough Scheme syntax and semantics to be able to read and understandScheme expressions and programs written by others.

Such programs form thebasis of models of various computational structures such as computer circuits,arithmetic units, data structures, processors, processes, etc. Since thesemodels are expressed in Scheme, the models can be executed on a workstation andform the basis of laboratory experimentation in the course.

Scheme as an Expository Language for Computer Science The philosophical motivation for the choice of Scheme as an expository notationfor computer science is derived from its natural language sentence-like syntax Kon 94 , Rie 93 . Since the majority of the students enrolling in thiscourse are likely to be fine arts and humanities students who are generallyless oriented towards technology and science, it was thought to be useful touse a notation which could be easily related to the structure and form ofnatural language which each student already has mastered.

Artificial intelligence Covering this many topics in a three credit hour course requires adheringrather rigidly to a schedule. Fortunately, many of the topics areinter-related so that knowledge gained in one topic is immediately used in afollowing topic.

For example, the logical organization of a computer isexpanded on when discussing computer arithmetic. The modeling of computercircuits fills in some detail purposely left out of the computer organizationtopic.

This fast paced presentation of topics leaves little time for discussion oftopics in the lecture setting. Some discussion of each topic is done duringthe weekly meetings of the laboratory course.

Recently, an experimentinvolving required out of class discussion of topics on a local USENETdiscussion group for the class, has been started. Each student is required tocontribute one new discussion thread each week and respond to two or threethreads per week.

The news group is not moderated, but is archived. Othermembers of the university community have been invited to read and/or join thediscussion of these topics.

A set of lecture notes has been constructed which use Scheme as an expositorynotation for computer science topics. Each topic has one or more Scheme baseddescriptive models which is human readable by the students and executable bythe laboratory workstation.

These models form the basis of laboratoryexperimentation as well as providing an interactive working model of the topicunder discussion so that students may obtain hands-on experience with eachtopic. The lecture notes are available to students via a world wide web server and theinstructor can use the www presentation during lecture presentations.

Adiscussion of how this is accomplished is presented in Section 5. Laboratory Experiments The laboratory course is one credit hour which meets once a week for threehours.

Students work in pairs to perform a prepared laboratory experiment.

Each pair of lab students has its own laboratory workstation where theexperimental work is performed 6 Nov 2012 - A sample report to illustrate this lab report format. it can't simply append word to result, but that it has to make a copy of both operands then .

Currently, the laboratory course consists oftwelve experiments. All experiments, except the first, require the students toformulate a conjecture to be verified, gather experiment data, analyze theresults and write a brief laboratory report which must be turned in at thebeginning of the next laboratory class period.

With each offering of thecourse we have attempted to modify and improve the experiments as well asdevise new experiments. The following are representative titles and purpose of experiments used in thecourse.

In this lab, students familiarize themselves with the lab workstations, editorand Scheme notation. Using Computer Science Department Laboratory Facilities.

In this lab, students learn the format of a lab report and perform the firstsimple experiment which is to determine how fast the workstation can addnumbers. Students are introduced to the problem of experimental sampling.

The purpose of this laboratory experiment is to determine the relativeperformance of different arithmetic types on a lab workstation. The purpose of this laboratory is to build a working model of a 4 bit binaryadder from modeled circuit elements and verify its correct operation.

### Lab report sample - cal poly computer science

This experiment requires an understanding of recursive and iterativeimplementations of the fibonacci function. The purpose of this laboratory experiment is to examine and compare twoimplementations of an abstract data structure for a stack.

The firstimplementation uses functions to implement a constructor, predicates andaccessors for stacks. The second uses an object oriented approach to implementstacks.

Most students are surprised by the outcome of this experiment sincethey find their conjecture incorrect. In this laboratory problem students are given three different implementationsof a system for performing exact rational arithmetic.

The implementation hasbeen carefully designed and layered so that operations are separated from datarepresentations by using abstract constructors and accessors. They are askedto predict relative performance of each system, comment on the quantitativeaspects of each implementation, gather experimental data and draw conclusionsin a written laboratory report.

In this laboratory problem students work with a prototype implementation ofrational arithmetic operations which allow rational numbers to be combined withother types of numbers in arithmetic expressions. You are asked to evaluatethe performance of the prototype implementation and write laboratory report.

In this laboratory experiment, students are asked to design a recognizer for asyntactic element of the Scheme notation, given the BNF syntax description.

Recursive Processes, Iterative Processes and Compiling Suggestions for clear lab reports in computer science courses (Your documentation should make clear what the code does at a high level, not how it does it at .

In this laboratory problem students analyze a function which generatesrecursive process then consider a recursive version of the same function whichgenerates an iterative process and finally examine the compiler output andanalyze the performance of both functions. The purpose of this laboratory problem is to evaluate the performance of anetwork computation in which two networked workstations cooperate to perform acalculation in parallel.

In this laboratory problem students will try to discover the behavior of arule system by tracing the execution of that rule based system as it interpretsdifferent rule sets. This course is the first course in our computer science department whichattempts to utilize the more traditional contained science laboratory approachto teach computer science concepts.

The effort required to design a successfullaboratory experiment is much higher than anticipated, but the benefits can berewarding in that successful experiments seem to convey the concept beingtaught more efficiently and forcefully to the student than the more traditionalkinds of programming problems we have assigned in other introductory courses. Our department plans to introduce contained laboratories for other introductorycomputer science courses as a result of our experience with this course.

Laboratory Hardware The Scheme notation plays a fundamental role both in the exposition of computerscience topics and in the laboratory experiments.

Because of this, an effortwas made to design a laboratory facility which could be used for lectureexposition as well as laboratory experimentation. A recent Scheme frequently asked questions document for the USENET discussiongroup lists 23 Scheme systems.

Of these, only three Schemesystems are commercial products. All other Scheme systems are available,without charge, from a variety of internet sources.

We currently use AubryJaffer's scm system which can be built to run on PC's, Mac's and UNIX systems. Recently, scm was selected by the Free Software Foundation to become thestandard GNU extension language for all GNU software products.

For a number ofreasons, including using this laboratory/teaching facility for a variety ofother courses, we made a decision to base this lab on the UNIX operatingsystem Lab Java's List Interface. PURPOSE: What improvements would make the program faster, more general, simpler, or easier to understand? 8. SUMMARY (15 .

Grant proposals to the Meadows Foundation and the National Science Foundation(Grant # DUE-9452050) were prepared and both groups agreed to fund 50% of thecost of laboratory equipment.

### Computer science lab report format

Each vendor also had to meet otherrequirements involving memory capacity, UNIX operating system, disk capacityand networking. One additional requirement, to be used in the lecture course, was the abilityfor a lecturer to be able to use a machine for presentations and demonstrationsand have these presentations be visible on the screens of each of the studentworkstations.

We proposed that this could be accomplished either by using avideo amplifier/switching system fed by the instructor's workstation monitor ora network based software video feed. HP won the vendor competition with 17 HP 712 machines of varying configuration.

There are 15 HP 712/60 16M student workstations, 1 HP 712/60 32M instructorworkstation and 1 HP 712/80 32M server machine providing passwords and homedirectories to each student workstation. HP also supplied an X windows basedsoftware package, SharedX, which allows the instructor machine to share any ofits windows with any of the student lab workstations.

In addition, SharedXalso allows the instructor to turn over control of any of its windows to any ofthe student workstations. This means that students can, at the discretion ofthe instructor, provide responses to instructor queries which can be seen atall of the other student workstations.

We are conducting a variety ofexperiments on how to use this facility in a lecture and lab environment. When used either as a lecture room or as a lab room we seat two students infront of each workstation.

This limits class size to 30 students per sectionwhich is an appropriate maximum size for this kind of course. Examples of Scheme in Exposition A small subset of Scheme suffices when used as an expository notation in acourse like this. Students first learn the rule for evaluating functionexpressions and then learn a few exceptions (special forms) to the generalrule.

Specifically, define, begin and The circuit elements and, or and negate can be modeled as:(define bit-or (lambda (x y) (if (or (= x 1) (= y 1)) 1 0))) (define bit-and (lambda (x y) (if (and (= x 1) (= y 1)) 1 0)))(define bit-not (lambda (x) (if (= x 0) 1 0))) A half-adder can be modeled using these elements as:(define bit-half-adder (lambda (a b) (bit-or (bit-and a (bit-not b)) (bit-and b (bit-not a))))) Next we can build a 1 bit adder using two half-adders as:(define bit-adder (lambda (a b cin) (let* ((t (bit-half-adder a b)) (g (bit-and a b)) (p (bit-and t cin))) (list (bit-or g p) (bit-half-adder t cin))))) Notice that let* is used in this description. If let* is notin the student's current vocabulary of special words, then it would beintroduced at this point.

The idea is that certain language features areintroduced when there is an expository need for them. At this point in thecourse a student would know that let is syntactic sugar for theevaluation of a particular lambda expression. Since the arguments toa function are evaluated in some unspecified order, an ordinary letcannot be used in bit-adder; hence the need for let*.

(define wire-output (lambda (pin-number outputs) (list-ref outputs pin-number))) We can use two bit-adders and some wire to build a 2 bit adder as:(define 2-bit-adder (lambda (a1 a0 b1 b0) (let* ((t0 (bit-adder a0 b0 0)) (t1 (bit-adder a1 b1 (wire-output 0 t0)))) (list (wire-output 0 t1) (wire-output 1 t1) (wire-output 1 t0))))) It needs to be emphasized that while students find such descriptions readable,they may also be used to provide an interactive working model which can beexplored during a lecture using the classroom workstation and display system.

### Sample lab write-up for cs courses

In one laboratoryexperiment, students are asked to design and build a model of a 4-bit adder 28 May 2018 - Writing a Programming Lab Report. Report Format In a lab report, it is important to get to the point. Be descriptive enough that your audience .

The lab suggests that they verify experimentally that this adder performs 2'scomplement arithmetic and asks them to suggest a modification of their designwhich would allow the adder to subtract as well as add.

The above models foradder circuits can be installed in a model of a simple CPU which is used in thelectures describing the organization of a simple computer. In the lectures on software design and engineering principles, when discussingtechniques of modularization and layering of software, the routines forrational arithmetic found in Structure and Interpretation of ComputerPrograms Abel 85 have been used.

One can demonstrate that it is possibleto change the implementation of rational numbers without changing any code inlayers above the implementation layer. The benefits of abstraction barriers isexplored experimentally in a lab which asks students to form hypothesesconcerning three different rational number implementations (don't remove commonfactors from numerator and denominator, remove common factors at constructionand remove common factors at access), gather data, analyze results and drawconclusions.

This experimentation may be done with respect to speed or spaceused. In the lectures on the topic of programming language translation, we describethe syntax of a tiny language given by the BNF rules:`) ) | () Since this language is a subset of Scheme, it is easy to build Scheme functionswhich model the process of recognizing whether or not an expression is asyntactically correct expression in this language.`

(define exp? (lambda (exp) (if (symbol? exp) #t (if (and (pair? exp) (= 2 (length exp)) (exp? (car exp)) (exp? (cadr exp))) #t (if (and (pair? exp) (= 3 (length exp)) (eq? 'lambda (car exp)) (= 1 (length (cadr exp))) (symbol? (caadr exp)) (exp? (caddr exp))) #t #f))))) In the discussion of semantics for this language we see that this languagesupports variable reference, definition of functions of one argument andfunction call of functions of one argument. It is also easy to build Schemefunctions which identify free and bound variables in this language.

Apredicate for free variables might be written as:(define free? (lambda (var exp) (if (and (symbol? exp) (eq? var exp)) #t (if (and (pair? exp) (= 2 (length exp)) (exp? (car exp)) (exp? (cadr exp)) (or (free? var (car exp)) (free? var (cadr exp)))) #t (if (and (pair? exp) (= 3 (length exp)) (eq? 'lambda (car exp)) (= 1 (length (cadr exp))) (symbol? (caadr exp)) (exp? (caddr exp)) (not (eq? var (caadr exp))) (free? var (caddr exp))) #t #f))))) Here, again, the point of such descriptions, as given above, is that they arereadable by humans and each such description is also a working model of what isbeing discussed which can be explored in the laboratory. Student Response to the Course Generally, student response to this course has been enthusiastic. They arerelieved that they can learn computer science concepts and have hands onexperience conducting experiments of various types without learning to writetheir own programs.

Even though learning to program is not one of the coursegoals, many of the students find that they can write their own simple programsand seem to be pleased with this knowledge even though most of them will neverfind an occasion to program computers later in life. The first few offerings of this course occurred before the acquisition of thelaboratory equipment described in Section 5.

The course was run in a makeshiftlab of borrowed, out of date, Sun and Apple UNIX workstations. The labworkstations were under powered for some of the experiments and presenteddifferent user interfaces at student workstations. Student response tolaboratory experiments is much more positive with the new HP workstations.

### Ece lab | electrical & computer engineering | baylor university

Students can use a webbrowser such as NCSA Mosaic or NetScape to view these materials. Theinstructor can share a Mosaic window on his machine with each studentworkstation and use Mosaic as a presentation program.

Expository Scheme can becopied from the web browser presentation window and pasted into andinstructor's XTerm window running a Scheme interpreter which is also sharedwith the student workstations to provide interactive demonstrations of aworking Scheme model. The course materials are also freely available to anyone else via the internet.

Other distribution of course materials are available by contacting theauthor. ReferencesStructure and Interpretation of Computer Programs, MIT Press, 1985. Frie 92 Friedman, Daniel, Wand, Mitchell and Haynes, Christopher.

Essentials of Programming Languages, MIT Press, 1992. Kon 94 Konstam, Aaron and Howland, John, "Teaching Computer SciencePrinciples to Liberal Arts Students Using Scheme", SIGCSE Bulletin 26 (4),December 1994.

Rie 93 Riehl, Arthur, moderator, "Using Scheme in the Introductory ComputerScience Curriculum", Panel, SIGCSE Bulletin 25 (1), March 1993. Spri 89 Springer, George and Friedman, Daniel.

Scheme and the Art ofProgramming, MIT Press, 1989.