CS 200 - Concepts for Advanced Computer Usage
School of Computer Science
University of Waterloo

Important concepts underlying major personal computer application categories; methodologies for learning and evaluating software; operating system and hardware design from the user's point of view with implications for maintaining a personal computer. Students are encouraged to use their own personal computer for assignments.

Strong focus on:

  • Word Processing
  • Scripting
  • Database Management Systems
  • WebPages
  • Design
  • Graphics
  • Social Media

To develop an understanding of important intellectual concepts underlying major personal computer application categories, and the application of those concepts to problem solving. To develop an understanding of personal computer software and hardware appropriate for maintaining students' own machines. To develop methodologies for efficiently learning to use personal computer applications.

About

Description


Objectives

To develop an understanding of important intellectual concepts underlying major personal computer application categories, and the application of those concepts to problem solving. To develop an understanding of personal computer software and hardware appropriate for students who own and maintain their own machines. To develop methodologies for efficiently learning to use personal computer applications.


Intended Audience

CS 200 is intended for non-math majors with significant prior exposure to personal computers (equivalent to that obtained in CS 100) who wish to deepen their understanding of personal computers and how to use them effectively and efficiently.


Related Courses

Recommended Courses: CS 100 or Grade 11 or 12 OAC Computer Science or 4M Computer and Information Science.

Successors: CS 330, or any of the applications-oriented courses taught by various university departments.


Hardware & Software

Examples and demonstrations will be done on Macs, however, all software is available for Mac and Windows platforms.

Assumed Background: Experience with standard applications software, as covered in CS 100.


References


Compulsory

The Non-Designers Design Book, 4th Ed., by R. Williams, Peachpit Press, 2004;

The Mac is not a Typewriter, 2nd Ed., by R. Williams, Peachpit Press, 2003;

Lecture notes

Additional

Learning Web Design, 4th Ed., by J. Niederst, E. O’Reilly

CSS Pocket Reference, 4th Ed., by Eric Meyer O’Reilly Media Inc.


Outline


Methodology (2 hours)

Techniques for efficiently learning and using applications, and for diagnosing problems.

System Administration (2 hours)

Booting. System extensions. File systems and file system maintenance. File system organization. Security and access control. Backup disciplines.

Structured Word Processing (4 hours)

Character versus paragraph styles. Flat versus hierarchical styles. Conditional text. Good graphical design.

Vector and Pixel Graphics (4 hours)

Colour models. Half-toning and dithering. Image manipulation, layers and masks. Vector object properties and named graphical styles. Bezier curves.

Networking and The Internet (2 hours)

Web site structure, design, and security. HTML. CGIs. Cascading style sheets. Good graphical design.

Scripting (4 hours)

Intra-application scripting. System-level inter-application scripting. Programming in the small. Debugging.

Relational Databases (6 hours)

Table design. Form design. Data validation. Referential integrity. Indices. Client/server databases. Serving the web from a database. SQL.


Should I Take CS200?


Necessary Background

CS 200 is intended for non-math-majors who already feel comfortable working with standard personal computer applications such as:

  • Word (a word processor)
  • Excel (a spreadsheet)
  • Chrome (a web browser)

Experience with any common application in each category is sufficient, but you should not lack experience in more than one category, and should plan to make up any such lack by independent study during the term.


Pre-Requisites

There is no pre-requisite for CS200. It may be to your advantage to have taken CS100 but it is not required.


What’s the difference between CS 100 and CS 200?

CS 100 is intended for people having little or no experience with computers. By the end of CS 100, students should feel comfortable using Excel, a variety of web based concepts and to accomplish standard sorts of tasks on a machine set up by someone else that is working properly.

By way of contrast, in CS 200 the emphasis is on

  • developing skills for learning new applications, and new application features, efficiently
  • developing skills for diagnosing and recovering from the minor ailments to which personal computers are so frequently subject
  • understanding what sort of regular user-level maintenance is necessary to avoid, or at least to minimize, crashes and lost data

There are also, of course, important application concepts that recur throughout the course (e.g. named styles, tables, relational databases, ...).

As a consequence, CS 200 has a different “feel” than CS 100:

  • written examinations are mostly comprised of essay questions that emphasize conceptual understanding;

  • there is no step-by-step lab workbook like that provided in CS 100 — the assignments instead provide general guidelines;

  • the end-of-term lab examination stresses the ability to figure out how to use a new feature or new application, rather than testing your ability to use a feature discussed during the term.

Personnel

Staff


If you are not currently enrolled in the course, please direct all inquiries to the Instructional Support Coordinator, Barbara Daly (barbara.daly@uwaterloo.ca)

If you are a current student, please see below for a list of personnel.


Course Instructor/Instructional Support Coordinator: Barbara Daly
Email: bmzister@uwaterloo.ca
Office: MC 4007
Phone: x36692
Office Hours: See below
Instructional Support Assistant: Kae Ainsworth
Email: cs200@uwaterloo.ca
Instructional Support Assistant: James Plouffe
Email: cs200@uwaterloo.ca

Communication

Communication


All announcements are on Learn.

Discussions will be on MSTeams (you will be auto added to the appropriate team)


Consulting Hours

The following outlines the schedule of consulting hours for the Spring 2024 term. These hours provide you with an opportunity to to ask the ISAs any questions you may have pertaining to assignments, exams, or course content. If you are unable to make it to any of these office hours, alternative options include posting your question to Teams or emailing the ISAs directly at cs200@uwaterloo.ca.

Office Hours

Day

Time (EST)**

Platform

Staff*

Monday
Tuesday 3:30 – 4:30 PM In-person (MC 4065) James
Wednesday
Thursday 9:30 – 10:30 AM
3:30 – 4:30 PM
In-person (MC 4007)
In-person (MC 4065)
Barb
Kae
Friday 1:30 – 2:30 PM In-person (MC 4065) James

* Occasionally staff will have to cover each other's office hours
** Times subject to change before permanent decisions during Week 1

Note: Appointments outside of scheduled Office Hours can be made with the ISAs or course instructor via email.


Schedule and Course Material

Spring 2024


Week Topic Assignment Due Date (5:00 PM EST)
1. May 6 - 10 Course Introduction
Word Processing
Social Media
The Model Pearl
Assignment 0
Assignment 1
Friday, May 10
2. May 13 - 17 Styles
Backups
The Poke Pearl
Assignment 2 Friday, May 17
3. May 20 - 24 Pixel Graphics Assignment 3 Friday, May 24
4. May 27 - 31 Geometric Graphics
The Toy Pearl
Assignment 4 Friday, May 31
5. June 3 - 7 The Web and HTML
The Read 'n' Recall Pearl
Assignment 5 Friday, June 7
6. June 10 - 14 Excel Macros
Copy Pearl
Midterm Review
Assignment 6 Friday, June 14
7. June 17 - 21 Midterm
8. June 24 - 28 Database Intro Assignment 7
Project Partner
Friday, June 28
9. July 1 - 5 SQL Assignment 8
Project Topic
Friday, July 5
10. July 8 - 12 Advanced Databases (FileMaker)
The Read 'n' Reason Pearl
Assignment 9
Table Creation
Friday, July 12
11. July 15 - 19 FileMaker Scripting
The Project Pearl
Assignment 10 Friday, July 19
12. July 22 - 26 Final Review Final Project Friday, July 26 (11:59 PM EST)
13. July 29 - August 2 Final Exam
 00 - Pearls

Pearls

Pearls — The Idea


Each pearl captures an important technique for rapidly learning to use computers effectively.

This is not, of course, an exhaustive list. Rather, it's a list of the seven techniques I think will help you the most.

Why seven? Because psychologists tells us that "seven plus or minus two" is the size of the largest list we can easily memorize. So I've made up a list of what I think to be the seven most useful pearls.

And you're expected to memorize them. Why? Because they need to be at the tip of your tongue. They won't do you any good if they don't come readily and often to mind as you're pounding on a keyboard, so that you actually use them.

Modeling is a matter of efficiency. Rather than laboriously discovering and memorizing a large number of individual steps, we build a model from which we can deduce those steps when we need them.

This is why so many things seem astonishingly simple once you understand them. A good model is far easier to remember, since there is less to remember.

Modeling lies at the heart of science, and of the scientific method. We build a model, and from it predict the behaviour of something. Then we test that something to see if it behaves as predicted. If it does, we've validated our understanding of it; to the extent it doesn't, we've exposed a lack of understanding, and identified a topic for further study.

When our understanding is complete (well, reasonably complete), the model becomes a tool, from which we can predict the behaviour of the object studied.

How have we applied the idea of modeling to the use of computers?


Modeling an Application’s Interface

To model a program’s interface is to look for consistency and logic in how we interact with the program.

The first place to look in a modern pc application is the menu system. In a well-designed program, each menu has a theme. Having identified these themes, you know where to look first for menu items dealing with any specific task you wish to perform.

In Microsoft Word, for example, commands that alter properties of text appear on the Format menu; commands that alter the way in which that text is displayed on the screen, and characteristics of the window in which that text is displayed, appear on the View menu; commands for editing the contents of a document appear in the Edit menu; and so on.

Applications structure their interface in order to make it predictable in other ways. Consider how all menu items that end with an ellipsis (...) will open a new dialog box. Another example is how multiple pixel graphics programs allow you to add to selection by holding shift while selecting more of the image. And so on.

In well-designed operating systems, there is considerable consistency in the organization of menus from application to application. Some of this arises because the designers of the operating system persuade or coerce application developers into consistency. Some arises because developers themselves see the advantage of consistency, or simply copy good ideas.

Of course you don't have to conciously look for and organize models to absorb them. But you build them more rapidly, and use them more effectively, if you do.


Modeling an Application’s Data Objects

The point here is to build a model of the objects an application manipulates, and how it does so.

For example: a simple word processor is a sequence of paragraphs, and each paragraph has a set of attributes that hold for the paragraph as whole -- line spacing, left and right indents, before and after paragraph spacing, etc. When you click in a paragraph and change the line spacing, you expect the spacing to change for all the lines in the paragraph, exactly because that's what your model of how a paragraph works says should happen. (But that's not the only possible behaviour. A perverted programmer might have made the program change the line spacing before and after just the line in which you clicked. Yuch!)

It's hard to imagine a program with just one such data model. A word processor will likely have a separate notion of text attributes, of document attributes, of tables, of diagrams, etc.

One advantage of thinking about such models is that it helps you learn and use a given application. Another advantage is the leverage it provides when you move from one application to another. Your next word processor is likely to have a notion of what a paragraph is that's very similar, so you know what to look for. You have only to adjust your notion of what a paragraph a little to accomodate the quirks of your new program -- which is much faster than learning the whole thing from scratch.

We've seen many such models in CS 200: named styles, tables, relational databases, scripting, and client-server network services are the most important. For each of these we've seen at least two examples. That's important because it helps clarify what's essential to a given concept, and what's just a quirk of the application you first encountered it in.

What happens if I...

  • double click here?
  • triple click here?
  • option-click here?
  • control-click here?
  • command-click here?
  • etc...

What happens if I...

  • click and drag on this?
  • option-click and drag on this?
  • control-click and drag on this?
  • command-click and drag on this?
  • etc...

“Graphical user interfaces” are also often said to be "direct manipulation interfaces," meaning that the preferred way to do things is to click on and/or drag objects to cause something to happen.

And over time a small set of physical manipulations have become common, as listed above.

Knowing this, you should form the habit of experimenting with program interfaces to determine when direct manipulation is possible. For example: every modern word processor allows you to double click on a word to select it. But to move that word elsewhere, must you use Edit -> Cut and Edit -> Paste menu items? Some word processors allow you to click-drag the selected word to a new location. How do you know if it's possible? You try it!

So when you're familiarizing yourself with a new application, experiment with it's interface. Often what look like static parts of a window will do something interesting and useful when clicked, double-clicked, etc.

Even with a program you're already quite familiar with, a mis-aimed mouse will occasionally reveal that what looked like a boring part of the program's interface actually responds to direct manipulation.

So be alert to such accidental discoveries. And remember the undo menu item...

Keep your old stuff around.

It's mostly true that the things you remember clearly how to do are the things you do regularly. Other stuff just ... fades.

So to avoid having to figure something out twice, keep a copy of what you've done. If you've figured out how to do something with, say, Excel, keep a copy of the relevant workbook.

It's a good idea to include explanations to yourself of how it works, so that when you come back to it months or years later, it will be easy to remind yourself how it works. A common technique is to put the relevant files into a folder, together with a small text file named ReadMe that summarizes the stuff you sweated to figure out.

Select a name for the folder carefully, so that when you go looking for the material in ages hence it will be easy to locate it using your computer's find command.

Check out what comes with a new application.

Most applications come with a set of example documents. Usually it's not cost-effective to examine them in detail, but it makes sense to browse through them so you know what's there. Then when you need to do something, you'll realize there's an example available to you.

The best way to figure out how some application feature works is to create a small example document containing only the data needed to experiment with the feature.

If you mess something up you don't risk damaging real data while you experiment, and such "toy documents" are the perfect thing to squirrel away to remind yourself later how things work. (Remember the copy pearl?)

The toy documents ("demos") I use in lecture are available on Learn so you can experiment with them. You're welcome to keep copies of your own.

The Manual

Reading manuals is totally boring, and few people absorb much detail doing so anyway.

A more useful strategy is to skim the manual, beginning with the table of contents, to get a feeling for the major features of a new application so that when you later want to do something you'll recall that there is a relevant feature, and where to find a description of it.


Online Help

Same thing with online help. It's not useful to just read it, except perhaps if you have problems with insommnia, but is a good idea to leaf through it so you know how it's organized, how to use it, and have a rough idea of what's available.


Online Tutorials

Many applications come with interactive tutorials, and these can be the easiest way to get started. The idea is to build at least a skeletal model of the application (remember the model pearl?) that you can then flesh out as you continue working with the application.


Dialogs and Menus

When you open a dialog box for the first time, don't just find what you need — spend some time looking at what else is in the dialog. If there are tabs or pull-down menus, see what they reveal.

Similarly with menus in a new application — notice what else is on the menu besides the item you need at the moment.

The idea isn't to memorize everything the application can do. But skimming the interface, like skimming the documentation, greatly increases the likelihood of your latter recalling that the application can do something you've just discovered you need to do, and increases the likelihood of your remembering where to go to do it.

This is a close cousin of the model pearl.

When something goes wrong with an application, or the operating system, you often get an error message of some sort. Take time to read the error message through carefully, and think about what it says and implies. Not all error messages are as informative as they should be (“Error 42”?), but often they contain useful information that suggests where the problem lies and how to fix or work around it.

Generally the best strategy is make a little list of possible causes, and figure out how to test which is actually the case.

Let’s make this concrete with an example. Suppose you’re suddenly told that you’ve “run out of memory”. What are the possibilities?

  1. Perhaps the machine just doesn't have enough memory.
  2. Perhaps the machine has plenty of memory, but the application isn't getting enough of it.

How can we test to determine which is the case?

Option (2) is easiest to test. There are two straightforward reasons why an application on a machine with lots of memory might not be getting enough of it:

  • First, we should look to see if there are other applications running — perhaps so many that there isn't enough memory left over for the application in question. We might quit all other applications and try our program again.
  • Perhaps the program just isn’t asking for enough memory. The Finder’s File → Get Info dialog shows how much memory the application requests. We might increase it, up to the amount of free memory available on the machine (as reported by the Apple → About this computer...), and see if that helped.

If not, how do we determine if the problem is (1)? Two strategies come to mind: we could find another machine with more memory, or we could buy more memory.

And so on. The idea is make a list of possibilities, and figure out how to effectively test each. Often one successful test will lead us to a second set of subsidiary tests that help refine our diagnosis, until we have narrowed things down to the point of being able to solve the problem.

Most applications do more than you can expect to absorb in one sitting; many do more than any one person ever learns. (Think of Excel, or Word!) It's just not feasible to learn everything about such applications in one go.

Moreover, it's pretty boring to just sit down and "learn how to use an application."

So a good strategy is to find an appropriate project, where "appropriate" means the project is (ideally)

  • something you need (good) or want (better) to do anyway, so it's fun to do;
  • small — so you can finish it quickly, before losing interest or enthusiasm;
  • explores a single feature of the application, to limit how much you have to learn.

This strategy is efficient (because you accomplish two things at the same time), but of course it's appropriate only when you can allocate a bit of extra time to work out the problems you'll inevitably encounter.

Sometimes it takes a while, though, to find the right project. I often note some feature I want to learn, but wait weeks or months until I run across something I need to do for which that feature is appropriate.

For example: I learned about cascading style sheets, and how well my favourite word processor (FrameMaker) automatically generates them, as I prepared these web pages.

Grading

Breakdown for Spring 2024


Participation: 10% (5% Online, 5% In-Class)

Assignments: 40%

Final Project: 10%

Midterm: 15%

Final: 25%

Note: To pass the course, you must pass the combined Midterm and Final.


Schedule and Availability

Each module and its assignment will normally be available on the Tuesday of the previous week. Each assignment will be due on the Friday of the following week (or Monday if Friday is a University holiday) at 5:00pm. In short, modules and their corresponding assignments will usually be released 10 days before they are due.


Late Assignments

Late assignments will be accepted until 11:59pm on the Sunday after they are due. No assignments will be accepted beyond this time. There is no penalty for late assignments as long as the cumulative number of late days (including weekends and holidays) for all assignments does not exceed five. For example, if Assignments 1 and 2 are submitted on time, Assignment 3 is two days late, and Assignment 4 is two days late, then Assignment 5 cannot be more than one day late. Once these late days have been used, a penalty of -10% per day is given. (The late penalty will be calculated at the end of the term.) LEARN calculated late days are not accurate. As such, we will manually post your late day total weekly. Questions regarding late days can be directed to Barbara Daly.

Exams

There will be a Midterm exam worth 15% and a Final exam worth 25%. Both exams, unless otherwise stated, will be conducted in person during class time.

Working Environment


Working at Home

Create a dedicated work space for yourself and set aside time each day to work on your individual courses. CS200 material should be read/watched before attempting each assignment. Course material, readings and assignments should take on average 5-6 hours per week. The Instructor and ISAs will be available for questions each day with dedicated time for specific questions each day. Use this resource


Lectures

You may occasionally be tempted to skip reading or listening to course material. Don’t! Copies of the lecture slides are posted on the course webpage at the beginning of each week, but they are nothing like a complete record of what’s covered, and there simply is no text that you can read in place of listening to the lectures and watching demos. Also, it’s important to go over your lecture notes and the lecture material within a day or so of each lecture so as to fix the material in your mind and identify topics for which you need help.


Questions

Finally, if you take CS 200, ask a lot of questions. That’s the best way to make sure you’ve understood the material, and the best way for course personnel to find out what needs to be explained again.

Handouts

CS 200 HyperText Commented Excel Macros


The links on this page take you to hypertext pages that should help you figure out some of the Excel macro examples you have seen in lecture.

What you will see is a page with two “frames”, one above the other. The bottom frame will contain the source for a macro. Many of the keywords in the bottom frame are hypertext links. If you click on one of them, an explanation of the keyword will be displayed in the upper frame.

Initially you can use these pages to understand the lecture examples.

Later you can use them to help you write Excel macros of your own. Typically you’ll remember that something is possible, but not remember how to do it, so you’ll go back to these examples to refresh your recollection of the details.


Commented source for the macros Sort_By_Name and Sort_By_Mark in the Excel workbook Sort_Marks, which maintains a table of student marks that is sortable either by name or by mark. This is a very simple example illustrates the Selection.Sort method, the Range method, and how to use built-in Excel macros (aka methods) with named arguments.


Commented source for the Rule_Left_and_Bottom macro in the Format with a Macro Excel workbook. This is a very simple example of how you can speed up making repetitive changes to the appearance of cells on a worksheet by using a macro to control cell borders.


Commented source for the MakeTable and ClearTable macros in the FtoC_Conversion Excel workbook that builds a Farenheit to Centigrade conversion table. MakeTable illustrates the declaration of variables, assignment statements, the Stop statement, and loops.


Commented source for the macros used in the Preppie Pepi Pizza Picker workbook, which uses a dialog box to mediate between the user and computations done on an invisible worksheet. There are 25 macros, but they’re all short — the longest contains eight executable statements! Most are called automatically when a dialog box button is clicked, a text edit box’s contents are changed, or a pull-down menu item is selected. There’s an Auto_Open macro, and several With statements.


CS 200 HyperText Commented Web Pages


The links on this page take you to hypertext pages that should help you figure out the HTML you have seen in lecture.

What you will see is a page with two "frames," one above the other. The bottom frame will contain the source a web page. Many of the keywords in the bottom frame are hypertext links. If you click on one of them, an explanation of the keyword will be displayed in the upper frame.

Initially you can use these pages to understand the lecture examples.

Later you can use them to help you write HTML of your own. Typically you'll remember that something is possible, but not remember how to do it, so you'll go back to these examples to refresh your recollection of the details.


Commented source for An Empty Home Page. This is a very simple example of a web page, so it's a good place to start from when you want to create your first web page. You'll find examples of ordered and unordered lists, of horizontal rules, of centered text, of strong and emphasized text, and of "header styles." (Execute the HTML for An Empty Home Page in a separate window so you can compare it with the source.)


Commented source for John's Home Page. This is a more complicated example, containing both textual and pictorial hypertext links, some images with text layed out alongside, a "mailto" URL, HTML comments, special characters (like < and >), and an example of some "display as is" text (which your browser should display, line for line, exactly as it appears in the html source file). (Execute the HTML for Johns Home Page in a separate window so you can compare it with the source.)


Commented source for the simple form used to introduce HTML forms in lecture.


Commented source for the table-formated form discussed in lecture.


Sample Exams

Winter 1997 Midterm

This was the Winter 1997 CS 200 midterm. It was a two-hour, closed-book examination.

On the examination paper, sufficient space for the answer was left after each question or part question.


Question 1

[17 marks total]
Part 1a
[6 marks] Define the term (named) style as we have used it in CS 200 and explain in a general way two principal advantage(s) of using them. (It might be a good idea to read part 1b before answering this question.)
Part 1b
[3 marks] What distinguishes hierarchical (named) styles from the “ordinary” named styles you defined in part 1a, and why might hierarchical styles be preferable?
(Hint: recall the “Based on:” popup in MS Word's “New Style” and “Modify Style” dialog boxes.)
Part 1c
[3 marks] Describe a situation in which it would clearly be advantageous to use named styles, and explain why.
Part 1d
[2 marks] Describe a situation in which it would almost certainly not be advantageous to use named styles, and explain why.
Part 1e
[3 marks] Would it make sense for a spreadsheet like Excel to provide a named style facility? Justify your answer!

Question 2

[15 marks total] On the next two pages you will find the contents of a web page. Parts of this page have been circled and labelled with letters A, B, C, etc., locating pieces of the page that are referred to in questions on pages 8-9.
	<HTML>
	<HEAD>
		<TITLE>Developer Depot Search</TITLE>
	</HEAD>

	<BODY bgcolor="#FFFFFF" background="/images/white.gif">

	<P ALIGN=CENTER>
A         <IMG SRC="gifs/DDPageheader.Gif">
		<BR>
	</P>

	<CENTER>

	<A href="/adjump.qry?rid=24"><IMG ALIGN="bottom" WIDTH=468 HEIGHT=60 BORDER=0
		SRC="/tango/images/MetroWerks-Codewarrior.gif"
		ALT="CodeWarrior the worlds best-selling Macintosh development tools.
		To find out more click here.">
	</A>
	<BR>

	</CENTER>

B     <FORM METHOD=POST ACTION="../tango.acgi">
		<P>
		<H2>Product Search</H2>
		<HR>
		<P>
		<STRONG>
			Enter text in any or all fields and click the search button.
			Searches are not case
			sensitive. Multiple texts can be entered in all fields.
			The search succeeds if for any field you fill
			out the product contains all your text.
		</STRONG>
		<P>
		<TABLE BORDER=2 CELLSPACING=0 CELLPADDING=3>
			<TR>
C              <TD>Name: </TD>
			<TD><INPUT NAME="ItemName" TYPE=TEXT SIZE=40 MAXLENGTH=100></TD>
			</TR>
			<TR>
			<TD>Description: </TD>
			<TD><INPUT NAME="ItemDescLong" TYPE=TEXT SIZE=40 MAXLENGTH=32767></TD>
			</TR>
			<TR>
			<TD>Publisher: </TD>
D              <TD> <INPUT NAME="VendorName" TYPE=TEXT SIZE=40 MAXLENGTH=50> </TD>
			</TR>
		</TABLE>

		<P>
E        <INPUT TYPE=RESET VALUE="Clear"> <INPUT TYPE="SUBMIT" VALUE="Search">
	</FORM>

	<P>

	<HR width=100%>

	<p align=center>
		Feedback:
			<a href="mailto:webmaster@devdepot.com">webmaster@devdepot.com</a>
		-- Info:
			<a href="mailto:info@devdepot.com">info@devdepot.com</a>
	</P>

	<font size=1>
		<p align=center>
			<a href="http://www.devdepot.com/legal.html">Copyright</a>
			© 1984-1996
F            <a href="http://www.devdepot.com/default.html">Developer Depot</a>.
			All Rights Reserved.
			Some material copyright of other respective holders.
			For terms and conditions on using this site as well as
			trademark/copyright information, see our
			<a href="http://www.devdepot.com/legal.html">Legal Page.</a>
			<BR>
		</p>
	</font>

	</body>
	</html>
[2 marks] Explain the purpose of the following text (from location A)
<IMG SRC="gifs/DDPageheader.Gif">
[2 marks] Explain the purpose and use of the following text (from location B)
<FORM METHOD=POST ACTION="../tango.acgi">
[2 marks] Explain the purpose and effect of the following text (from location C)
<TD>Name: </TD>
[3 marks] Explain the purpose and effect of the following text (from location D)
<INPUT NAME="VendorName" TYPE=TEXT SIZE=40 MAXLENGTH=50>
[3 marks] Explain the purpose and use of the following text (from location E)
<INPUT TYPE="SUBMIT" VALUE="Search">
[3 marks] Explain the purpose and use of the following text (from location F)
<a href="http://www.devdepot.com/default.html">Developer Depot</a>

Question 3

[10 marks total]
Part 3a
[8 marks] The SRC attribute in an HTML <A ...> or <IMG ...> tag can specify another html or gif file on the same server in two distinct ways. Explain what these two alternatives are, which is usually preferable, and why.
Part 3b
[2 marks] There is a very pretty analogy between the two HTML linkage schemes of part 3a and an important fundamental concept in Excel formulas (and formulas in most other spreadsheets). What is this analogy?

Question 4

[10 marks total]
Part 4a
[7 marks] Describe a backup strategy suitable for use on a personal computer such as many of you own at home. In the process define the terms “full backup”, “incremental backup”, and either “duplicate set” or “rotating”.
Part 4b
[3 marks] Suppose that you inadvertantly delete a file from your disk, and wish to recover it from the backups you describe in Part 4a. Describe how to go about doing so.

Question 5

[12 marks total]
Part 5a
[3 marks] You have just scanned a photograph, in color, at 400 pixel by 300 pixel resolution. Of what does the data consist? That is, describe how the contents of the resulting file represent the photograph.
Part 5b
[3 marks] Now estimate roughly how large (in bytes) the data file representing the photograph you scanned in Part a) is.
Part 5c
[3 marks] Given that the ethernet with which we connect machines in the CS 200 Mac lab to one another (and to the web server in my office) is able to transmit data at about one megabyte per second, roughly how long would it take to transmit the scanned photograph of Parts a) and b) from our web server to a Mac in the CS 200 lab — to display it in Netscape, for example?
For these two questions I want you to write down the relevant simple formula, and then compute the approximate value of that formula. Please note, however, that by asking “roughly how long...” I mean that you only need to compute the value of the formula to a couple digits of accuracy. If you were unable to do parts a and b, assume that the file is 100,000 bytes in size for parts c and d.
Part 5d
[3 marks] Suppose instead that you using Netscape at home, connected to the University‘s ethernet LAN by a 28,800 bit per second modem. Assuming no data compression, roughly how long would it take to transmit the scanned photograph from our web server to your PC at home, and by what factor does use of a modem increase or decrease the time needed to transmit the photograph to you at home rather than to a Mac in the CS 200 lab?

Question 6

[10 marks total] We have thus far discussed three “pearls of wisdom’ for the effective use of computers. Name and explain two of these as if you were relating them to a CS 200 student who has never heard of them — which is say, clearly, concisely and convincingly. (To be convincing, you must explain how awareness of each pearl makes a computer user learn and use computers more effectively.)

Question 7

[9 marks total] Briefly define the following terms as they have been used in CS 200.
Part 7a
[3 marks] extension (what is an extension, and where would you find one on a Mac?)
Part 7b
[3 marks] virtual memory
Part 7c
[3 marks] disk sector

Winter 1997 Final

This was the Winter 1997 CS 200 final. It was a three-hour, closed-book examination. On the examination paper, sufficient space for the answer was left after each question or part question.


Question 1

Part 1(a)
[6 marks] The first three “pearls” we discussed in CS 200 were Model, Poke, & Copy. Explain the pearl “Model”. What should you model, and why? (Hint: there are two things to model.)
Part 1b
[9 marks] Name and explain three of the other four pearls we discussed as if you were relating them to a CS 200 student who has never heard of them — which is say, clearly, concisely and convincingly. (To be convincing, you must explain how awareness of each pearl enables a computer user to learn and use computers more effectively.

The next two questions are similar in spirit to the fifth assignment, in which you compared named text styles in MS Word with named graphical styles in Canvas. You might have said something like“

Question 2

[15 marks total] Compare and contrast “tables” as they appear in MS Word, MS Excel, FileMaker and HTML (if they do).
I am not as concerned with your providing the “right” answer as I am in the quality of your analysis. There are at least four obvious and significantly distinct topics that could be discussed here; you can get full credit with an intelligent discussion of three.
Please think before you write. Be as concise and clear as you can. If we cannot understand your answer, you won't get any credit for it! And remember -- content is more important than length.

Question 3

[15 marks total] Compare and contrast scripting in Excel and FileMaker. What are the strengths and weaknesses of each? Which provides the better environment for creating scripts, and why?
I am not as concerned with your providing the “right” answer as I am in the quality of your analysis. There are at least four obvious and significantly distinct topics that could be discussed here; you can get full credit with an intelligent discussion of three.
Please think before you write. Be as concise and clear as you can. If we cannot understand your answer, you won't get any credit for it! And remember -- content is more important than length.

Question 4

[16 marks total] Here is a picture of Watcom's University database.

Part 4a
[4 marks] In the diagram above, underline the field(s) comprising the primary key of each table. If you feel some justification is needed for an answer, please write it below.
Part 4b
[2 marks] List the foreign key or keys, if any, for the Register table and state the table(s) to which each such foreign key “points”.
[2 marks] List the foreign key or keys, if any, for the Mark table and state the table(s) to which each such foreign key “points”.
Part 4c
[2 marks] What SQL statement would you use to list the names of students who took Biology ('BIOL'), sorted by birth date?
[2 marks] What SQL statement would you use to list the number of students who took Biology ('BIOL')?
[2 marks] What SQL statement would you use to list the registration number, last name, and course mark for each student who took Biology ('BIOL'), given that both marks and assignment weights are integers between 0 and 100, and the weights sum to 100?
[2 marks] What SQL statement would you use to list the registration numbers of students who took both Biology ('BIOL') and Calculus ('CALC')? (Hint: use a self-join.)

Question 5

[5 marks] As part of Assignment 0 you have been running Norton‘s Disk Doctor weekly. Why? And if you do/did own a PC of your own, why would it be a good idea to run NDD on its disks regularly?

Question 6

Part 6a
[12 marks total] Your project involved the creation and interaction of many files. In the spaces provided below, explain the general function of each of the indicated files. (That is, explain the general purpose and function of the file, possibly using the course project as an example.) Please use only the space provided. (In other words, be brief — a sentence or two!)
Quid Pro Quo
Netscape
FileMaker
Root.html
Tango Editor
something.src
something.qry
Tango.acgi
Part 6b
[4 marks] Here is a URL you might have found on the CS 200 home page if I had used Tango to build the mark report form you have been using to check the marks recorded for you in CS 200: /jcb.cgl.uwaterloo.ca/Tango/Tango.acgi$../cs200/marks/marks.qry?function=form
Explain the purpose and meaning of the various pieces of this URL.

Question 7

[6 marks] You are working on a Macintosh, and double-click on a document to launch an application, which tells you there is not enough memory. What two things could you do that might easily and quickly solve the problem? (Hint: buying more memory is not one of them!)

Question 8

[15 marks total] Briefly define the following terms as they have been used in CS 200:
Part 8a
[3 marks] virtual memory
Part 8b
[3 marks] magneto-optical disk drive
Part 8c
[3 marks] dye sublimation printer
Part 8d
[3 marks] video memory
Part 8e
[3 marks] average access time

Policies


Mental Health Resources

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support.

On-campus Resources:

Off-campus Resources:

  • Good2Talk (24/7): Free confidential help line for post-secondary students. Phone: 1-866-925-5454
  • Here 24/7: Mental Health and Crisis Service Team. Phone: 1-844-437-3247
  • OK2BME: set of support services for lesbian, gay, bisexual, transgender or questioning teens in Waterloo. Phone: 519-884-0000 extension 213

Diversity

It is our intent that students from all diverse backgrounds and perspectives be well served by this course, and that students’ learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In particular:

  • We will gladly honour your request to address you by an alternate/preferred name or gender pronoun. Please advise us of this preference early in the semester so we may make appropriate changes to our records.
  • We will honour your religious holidays and celebrations. Please inform of us these at the start of the course.
  • We will follow AccessAbility Services guidelines and protocols on how to best support students with different learning needs.

Policy

Academic Integrity

In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. See Academic Integrity Guidelines for more information.

Grievance

A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.

Discipline

A student is expected to know what constitutes academic integrity, to avoid committing an academic offence, and to take responsibility for his/her actions (see Academic Integrity Guidelines ). A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about 'rules' for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties

Appeals

A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals)

Students with Disabilities

AccessAbility Services, located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with them at the beginning of each academic term.