CPSC 110; February 2, 2010

February 3rd, 2010
CPSC 110, Class portrait, February 2, 2010

CPSC 110, Class portrait, February 2, 2010

Does anyone have an idea for an interesting picture. “Ninja moves!”

A student suggested they all pose doing ninja moves. As one can see from the picture on the left, not all class members greeted the suggestion with the same enthusiasm.

In any case, class continued.

We viewed a video on saving energy by NOT having a screen saver.  How To Make Your Computer More Green

After a very brief introduction to the input-process-output model, students were paired up and given a problem to complete in lab. After completing that one they were given another to complete in lab.  got both problems done and were exposed to a variety of problems their own making.  It appears that most learned a thing or two. Details at http://paprika.umw.edu/~ernie/cpsc110/02022010.html

CPSC 401; February 2, 2010

February 3rd, 2010
CPSC 401, class portrait, Feb 2, 2010

CPSC 401, class portrait, Feb 2, 2010

Class arranged themselves by height.

Started class with an exchange of rough drafts. Everyone got a red pencil. The goal was to give helpful advice to a peer and to reduce word content by 10%. I received a report from one student that the exercise was not helpful. That student is making an appointment to see me regarding the paper before it is handed in.

We talked a little about types. I felt stymied by the lack of working markers. I’ll try to remember to bring markers with me next time.

Hopefully we’ll get the opportunity to discuss chapter 6 and chapter 7 on Thursday. I plan on giving an ML assignment on Thursday.

CPSC 401; January 26, 2010

February 1st, 2010
CPSC 401 class portrait by age

CPSC 401 class portrait by age

The portrait on the left was taken on January 26, 2010 with the students arranging themselves by age. The older students are in the back row, or so the class told me.

Several students were absent. I hope they are not cutting for no good reason. The material will get out of their reach relatively soon. In any case it is generally better for all concerned when all are present.

The students are starting to work on their first essay, drawn from the questions raised in   Paul Graham’s essay, “ The Hundred-Year Language .” On this day students brought in an outline for their essay along with a list of works they might cite in their work. Students were grouped by the question they were going to use as a basis for their essay.  At our next meeting, February 2, students are to bring in  a rough draft of their work. This will be used in a peer review exercise.

Students also were given some time to work on exercises in ML. Students were put in groups of two and each given two problems, one relatively easy and one ore difficult. None of the groups solved both in the 15 – 20 minutes they had to work on them. Students were given an assignment of completing 4 of the six ‘difficult’ exercises in Chapter 5.

CPSC 110; January 26, 2010

February 1st, 2010
Class Portrait, CPSC 110, January 26, 2010

Class Portrait, CPSC 110, January 26, 2010

The best we could do for something different was to go outside. That’s the class on the left in their late January garb. It wasn’t too cold that day, and there was snow on the way in three days.

We had a quiz on Chapter 1 and talked some about the syntax and semantics of a simple python program.

The class has an assignment for Thursday, February 4, 2010. BMI Calcuator assignment. The assignment involves calculating BMI given height and weight in inches. Extra credit for getting values in metric and including the name provided by the person using the program.

No class on the following Thursday as I was involved in a service activity for the College of Arts and Sciences.

CPSC 110; January 21, 2010

January 24th, 2010
CPSC 110 class portrait, January 21, 2010

CPSC 110 class portrait, January 21, 2010

For starters, we talked about hardware.  I showed the video Computer Tour from How Stuff Works. Several took notes about the major hardware parts of a computer.  Then I divided the clas into two groups and gave each a PC they could take apart and identify the parts again – CPU, RAM, hard rive, and so on. Students seemed curious.

Hardware lead to software and we went to the lab for a try at using Python. It seemed to go fairly well with everyone getting to the point of entering and testing a program.

We’ll try more of that on Tuesday along with a quiz on chapter 1.  I haven’t told the class yet, that I’ll be out of town on Thursday.

CPSC 401; January 21 2010

January 24th, 2010
CPSC 401 class portrait  January 21, 2010

CPSC 401 class portrait January 21, 2010

This was the first Thursday we met. I  gone to Virginia Higher Education Advocacy Day the previous Thursday.

After taking a quiz on material on the sequence from source code to execution and binding times. A few questions on the quiz came from the previous chapters.

Writing and the first writing assignment took center stage after that. The assignment is detailed at http://paprika.umw.edu/~ernie/cpsc401/01212010.html.
On Tuesday students will bring a list of at least 3 references for the question they will write about as well as an outline of what they will write.

Finally we got to discussing and showing examples of working with ML. We focused on looking at the first two tutorials in  “A Gentle Introduction to ML” by Andrew Cumming of Napier University in Edinburgh.  On Tuesday students will bring the answers to the self assessment section of each of those tutorials. We’ll discuss them nd then try some group work in the lab working on the problems in Chapter 5.  I haven’t told the class yet, but I’ll be away on Thursday for interviews related to my work on the CAS Dean search committee.

Here are a couple of pictures of  the class while they were taking the quiz.

CPSC 401 taking Quiz 1

CPSC 401 taking Quiz 1

CPSC 401 Taking quiz 1

CPSC 401 Taking quiz 1

CPSC 401. January 19, 2010

January 20th, 2010
CPSC401 January 19, 2010

CPSC401 January 19, 2010

The picture at left shows the people in class  on Tuesday, January 19, 2010. Theree others are enrolled. One of those has not been to class once this semester.

HW was due on Tuesday, see http://paprika.umw.edu/~ernie/cpsc401/01122010.html for a description.

In class, we went over the topics in Chapter 4 of the text – support provided by a language system going from source through execution and the topic of binding times. Groups of students provided explanations of some terms. Having students explain the key points of each chapter  is the way I prefer to go through this material. The class also did some group work on the exercises for Chapter 4. The answers will be posted in the Course Documents portion of the Blackboard section for the class.

On Thursday we will go over the writing assignment, and then start to talk about using ML.

I had planned to start talking about a writing assignment, but we never got there. So that will be postponed one day.

CPSC 110. January 19, 2010

January 20th, 2010
January 19, 2010 CPSC110

January 19, 2010 CPSC110

The photo on the left was taken at the beginning of class. It looks to me like we’re going to have to come up with some more interesting ways to pose the class.

The assignment due today was completing an online series of questions. Some questions involved arithmetic and some other math concepts. The questions also include some self-assessment tasks regarding use of computer systems and software. The final item is where students can ask me a question. The questions and answers are posted at

Questions from my students, Spring 2010

During class we went over the upcoming assignments, went over an exercise in algorithmic thinking, and discussed some of the hardware in a computer system. See the Web page for that class at http://paprika.umw.edu/~ernie/cpsc110/01192010.html for some more details.

I had planed a lab session, but we didn’t get quite that far, so there will be some of that on Thursday.

Questions from my students, Spring 2010

January 15th, 2010

On the first assignment for CPSC 110, Introduction to Computer Science, I solicit questions from students; anything they would like to ask me. Here are the ones for this semester with my answers.

at your own risk


“How would one program a basic database system?”

A database system typically allows us to store a collection of data, where we have the ability to add, update, retrieve, and delete items from the collection. Furthermore, we often retrieve items based on certain criteria for parts of an item. For example, if the database is a music collection, select all items from the collection where shoegaze.  So we have to program this so that we can represent each item or record in the database, specify the fields that we want to select on (in our example the Pitchfork rating and the genre), and be able to add, update and delete items from the collection. This is not an easy task and is rarely done nowadays without using some software that can construct and maintain the database.  Some people use Microsoft Access for elementary database work, but software written using MySQL and php is very popular.
See the following for more information

“Are we going to be dealing with Math any more complicated than what you’ve given us on this page? I am normally not very good with math and would like to know the general extent of math experience we will need for the course. Thank you.

Computer science generally, and programming specifically require us to be able to work with abstractions usually expressed in symbolic form.  We don’t require algorithmic or mathematical thinking as a prerequisite, but in order to understand the way we will write programs for a computer to execute you will need to be able to think about  solving problems expressed in words, scenarios, or stories using abstractions. So, do you need to know trigonometry or combinatorics? No. But, you need to be open to understanding some problems that require us to access techniques from a variety of sources or domains.

Some other things to read:

” Am I going to have to review algebra or geometry for this class?”

Not necessarily. The problems we try to solve are what some call ‘word problems,’ and we deal with abstractions. Also, we can’t avoid math in most of our endeavors. So, a review might be useful.
Some site to visit:



“How many hours a week will we be in lab?”

It varies. We’ll do some lab work each week, but you’ll have somethings to do outside of class using a computer. The HW in this course takes from 4-10 hours per week, so I’m told.

“Are you a math professor?”

Not now. I’ve been in the CS department here from its beginnings. My academic degrees and almost all of my academic courses were in mathematics. When I started my career as a college educator I taught math, and moved into exclusively dealing with computer science in the late 70s.

“For the two reading assignments, does it matter which one we do first, the fiction or the non-fiction?”

It doesn’t matter. Whichever you would rather do.

“This really isn’t a question, but I just wanted you to know, I’m not very good with computers and they make me slightly nervous, but I really would like to learn how to use them more efficiently.”

Thanks for letting me know. We won’t concentrate on how to use computers too much. Please be sure to let me know when I can be helpful to you. It often turns out that many people have questions about how to do something, but they don’t ask about. I hope you feel comfortable enough to ask.

Take a look at this:

“Who invented the TED.com talks”

I don’t really know the answer to that, but I do know a little about the history of TED. Read the text at these two:

“Why is binary a series of 0’s and 1’s?”

When we consult the Oxford English Dictionary (available online at no charge to UMW students and faculty at http://www.umw.edu/library/research/az/o.php) fro a definition of binary, we see the first definition is “Of, pertaining to, characterized by, or compounded of, two; dual:”. Looking further in the definitions we see Leibnizt used the term binary numbers “binary arithmetic: a method of computation in which the binary scale is used, suggested by Leibnitz. binary scale: the scale of notation whose ratio is 2, in which, therefore, 1 of the ordinary (denary) scale is expressed by 1, 2 by 10, 3 by 11, 4 by 100, etc.” Electronic computers are digital in the sense that information is represented as a sequence of items each of which is either in one of two states. So it is natural in this sense to represent digital information as consisting of a collection of binary pieces. There is also a long tradition of representing the two states with either a 0 or 1.

Take a look at http://sites.google.com/site/usfcomputerscience/binary-is-0s-and-1s

Questions & Answers

Questions & Answers

“What are the differences between the programing languages used with computers? Are they different because they are easier or harder to use? Do some only create certain programs or work with certain computers?”

There are hundreds of programming languages. Many of these have evolved from older programming languages and others have been created because humans develop a better understanding of how to use computers ot solve problems,and so people develop different ways of providing software that can be reused and is more reliable than what was previously available. Some are easier to use than others,and I think you’ll find Python to be not too hard to use. the hard part is, of course, coming up with a solution to a problem. There are some languages that work only with certain computer systems, and these are generally specific to the hardware or architecture of specific systems.
Take a look at these sites:

” If you could be anyone in the world for a day who would it be?

Being me is just fine.

” Why teach Computer Science?”

CS is pretty interesting. There is always something new and exciting to learn, IMO. Teaching it keeps me involved and learning.

“How long did it take to grow the beard?”

I last shaved in June, 1995.

“How proficient would I be with the computer if I got everything out of this class that I was supposed to?”

This course isn’t so much about being proficient using a computer as it is about solving problems using programs that we develop. The CS department doesn’t offer a course to



develop proficiency using a computer. I think the Business department offers a course like that. Did I misinterpret your question?

” Is math used frequently in programming?”

To my mind there isn’t much difference between mathematics and programming, but I may have a different view of mathematics than you. I received a PhD in mathematics and wrote a thesis in the area of algebra, so I have a strong focus on working with symbols and a keen interest in the way we work with them, as in a mathematical proof. On the other hand, much of what we do in computing involves means of computation. For some other opinions read

“How long have you taught?”

I first taught in college during the 1969-1970 academic year. Yikes, that’s 40 years ago! College teaching is a great career.

“What format do you want our papers to be written in?”

Either in Microsoft Word format (DOC or DOCX), PDF, or RTF.

“What kind of programs will we be writing in class this semester?”

Several different kinds. Ones that deal with numeric computation and some work with strings. We’ll spend a fair amount of time dealing with graphics programs using the library defined in Chapter 4

“Will this course be relatively hard for people who have never really learned python,or programming of any kind,before?”

I don’t think that it will be hard if you follow some  of the points that were in that presentation on the first day – pay attention, be open to learning. be here now, be willing to take  chance, ask for help when you need it,  and  pay attention. Review https://docs.google.com/present/edit?id=0AW1VQ3vzgRRxZGRtbWh4c25fNDQ0ZzM3OTVjZGo&hl=en

“What is your favorite band, or your favorite type of music?”

Favorite Band? That’s easy, A Place to Bury Strangers. Check out the frontman.
Type of Music? No simple answer there. I like several different types. If you could see my playlists you would see they are quite eclectic.

“Do programmers use software like Python to create video games, or is that something else entirely?”

Some use python or similar software. Game programmers often use a library of software that has been developed for some common tasks.  See pygame –  http://www.pygame.org/wiki/about for more information about writing games using python.

“What is an example of a program that is impossible to solve?”

One is to write a program that will determine if another program gets stuck in a loop or iteration that never ends. For example this program never ends
def main():
x = 1
while ( x > 0 ):
x = x + 1

It turns out that it is not possible to write a program that can check any program to see if it eventually stops or halts. The problem is that it couldn’t check itself. It is not intuitively or immediately clear that the program can’t check itself. It takes some explaining and development of other concepts. We typically go over those topics in CPSC 326 Theoretical Foundations of Computer Science.  See  the Wikipedia entry for Halting Problem, http://en.wikipedia.org/wiki/Halting_problem, for some more details.

“Why did you choose to teach at Mary Washington?”

Two reasons. We had been living in St Peter MN while I was teaching at Gustavus Adolphus College. it is a great place but we were more comfortable living on the East Coast. I had dome some work to start a CS program at Gustavus and the position here was similar in the sense that I would have the opportunity to develop a new program in CS. Sometime you’ll have to ask why I stayed!

“What is the most marketable field in Computer Science?”

There is lots of data on this issue, and there are some slight differences in  the way it is interpreted. Recent data, December 2009, from the Bureau of Labor Statistics, http://www.bls.gov/emp/ep_table_104.htm,  puts computer software engineers, applications above Network systems and data communications engineers.

“Where did you go to College?”

I did my undergraduate work a Montclair State College, now Monstclair State University. http://www.montclair.edu/

CPSC 110. 01/12/2010

January 12th, 2010
CPSC 110, Jan 12 2010

CPSC 110, Jan 12 2010

On  Tuesday I distributed the syllabus and discussed the writing assignments for the course. We also viewed a video and had a brief discussion regarding copyright. All of this is available through links on the web page for January 12, 2002 on the accessible from the CPSC 2110 home page. Be sure to take a look at that Web page so you’ll know about the HW that is due next Tuesday and the following Thursday.


Finally, class is canceled on Thursday, January 14, 2010. I will be attending Higher Education Advocacy Day in Richmond,  VA. See http://aaup-va.org for  more details about that event.

Let me know if you have any questions.