Nature of Computing
CSCI 104 (Section 02), Spring 2008
To the Bottom of the Page
Instructor: Dr.
Shieu-Hong Lin
Email: 
Class:
MW 04:30-05:20PM at Library 141
Office Hours: Tuesday &
Thursday 1:30-3:00PM, Math & CS
department
Course Syllabus
About the accumulative progress log
- Download this template of accumulative progress log.
Keep updating this accumulative weekly progress log throughout the
semester. In the end of the semester, it is used as the basis to give you
the points in the “Reading, Labs, and Assignments” category, which accounts for 45% of
the weight.
- Starting
from Feb. 4, by Monday each week, please spend 10~15 minutes to (i) add a
paragraph regarding the weekly
progress made in this class using the template below, and (ii) email the
entire log as an attachment to Dr.
Lin as a progress report .
Week 1: What are computer
programs about?
Progress report due: Monday, Feb. 4.
Reading #1:
- Read this Wikipedia article
about computer programs. Read and try to understand this very simple sample C++ program that
does mile-to-kilometer conversion.
Lab
#1: Computer Science showcase #1 on
programming (10 points)
Step 1: Explore and compile a very simple
computer application program.
- Download and unzip Compressed C++ project
folder to get a program folder (a sample folder of files
including sample.cpp that contains source code written in
C++, sample.sln that defines the programming project and
other project related files) with a simple windows console interface.
- Open the folder and double click sample.sln to
open the entire program as a Microsoft C++ programming project under
Microsoft Visual C++ environment. Browse the files to see the C++ source
code in sample.cpp. Press Ctrl + F5 to run the
program. Or alternatively go to the menu bar by Debug --> Start
without Debugging to run the program. Play with the program to see
its functionality. (iii) Close the Microsoft C++ programming project. Go
to the sample folder again and find a Debug
folder in it. Open the Debug folder and double click the sample.exe
file in it. This is the executable compiled from the many source code
files in the sample folder by the Microsoft C++ programming
environment. The end users typically run this executable directly without
the original source code written by the programmers.
Step 2: Write a simple C++ program by
modifying the program you just explored in Step 1.
- Do Step 1 again to open up the sample C++ program that
provides mile-to-kilometer conversion. Edit the contents of the program so
that it can do a mile-to-meter conversion based on the fact that each mile
equals 1609 meters. Run your program (press Ctrl + F5 to run the
program or alternatively go to the menu bar by Debug --> Start
without Debugging) again to verify it works fine.
Step 3: Explore and compile a full-fledged
computer application program.
- Download and play with the following full-fledged C++ program
in the computer lab since we have installed the education version of the
QT graphical user interface environment in the computers there: download this zip file,
unzip it to get a QTexample folder, find the demo subfolder
within QTexample, double click the solution file demo.sln to
open the entire demo project under Microsoft Visual C++, browse the source
code, and run the program to get a feeling of it.
Step 4:
Spend at least 10 minutes to reflect on the experience you gained from
this lab and the following question:
- Do you think the relationship between the software (computer
programs) and the hardware of a computer is very much like the
relationship between the mind (soul) and the body of a human being? Why or why not?
Week 2: Can the computer
“think”?
Progress report due: Monday, Feb. 11.
Reading #2:
- Read at least the first three sections (up to section on computers versus human) of
this Wikipedia article on computer chess programs
about computer chess programs
,watch this YouTube document about Deep Blue, and read this
article about GNU Chess
(Optional: Download
and play with GNU Chess).
- Read the introduction section and history in this
Wikipedia article on Turing
test.
- Read the introduction section in this Wikipedia
article on automatic
translation and the
introduction section in this Wikipedia article on speech recognition.
Lab
#2: Computer Science showcase #2 on
intelligent behavior of computer programs (10 points)
Step 1:
A very intelligent computer program for a simple nim game
- Read the specification
of a nim game programming task from CSCI 105
Intro to Computer Programming last semester to understand the nim game.
- Download and then extract from this zipped file
a Windows executable of a resulting intelligent nim game program written
in the C++ programming language.
- Try to play at least 5 games with the executable of the intelligent program to get some
feelings of its capability.
Step 2:
Exposure to the Turing test and a chatter-bot.
- Take an online Turing test here.
- Download and play with the chatter-bot Claude.
Step 3:
Exposure to Machine translation.
Step 4:
Artificial intelligence in Stanley Kubrick’s “2001: a space odyssey”
- If you haven’t seen it before, watch the following YouTube
clips 1
and 2
on HAL and artificial intelligence in
Stanley Kubrick’s “2001: a space odyssey”
Step 5: Reflection
- Read the sample reflections quoted here regarding the reflection
assignment in lab 1. Based on the Reading #2 and your experiences with lab
#2 this week, put down at least 400 words of your opinions (why you
agree or disagree with them) about some or all of the sample reflections
quoted above. (For example, could the computer software such as the
chatter-bot in this lab and the intelligent chess programs implement rationality, emotion,
unpredictability, or will to some extent? Are the human genomic
sequences to some extent like the “executable code” in control of human
behavior? ) Include your opinions into the accumulative progress log when you email me your accumulative
progress log by Monday, Feb. 11.
Week 3: How does the
computer store information and “compute” things? Progress report due: Monday, Feb. 18.
Reading #3:
- Read the sections on bits and bytes, CPUs,
and computer memory in chapter 2 of the textbook and watch a simple
YouTube video
tour on the main hardware components of a PC.
- Read the first 4 paragraphs (up to the first two
paragraphs on pixel storage) of this Wikipedia article on the BMP file format for storing images.
- Read the introduction sections from two Wikipedia
articles on ASCII code
and Unicode.
- Read examples on arithmetic operations in the
section on Binary
Arithmetic from an Wikipedia article on the binary number system.
Lab
#3: Speed of the CPU; Numbers, text, and images as information encoded as bits and bytes (10 points)
Step 1:
Measuring the speed of the CPU
- Download and unzip this zipped file to
get an executable file (Speed.exe) and a C++ program project folder
(Speed). Double click Speed.exe to
run the program to get a feeling about how fast the computer can do number
crunching. If you like, you can also open the Visual C++ project in Speed
folder to see the C++ code.
Step 2:
Measuring the size of text files
- Use WordPad to create four text files of about 100 characters,
200 characters, 400 characters, and 800 characters respectively and save
them as text files. Record and report the sizes of these files (in terms
of bytes). Note that it takes one byte to record a character. Explain in
your report the relationship between the number of characters and the file
sizes you see.
Step 3:
Measuring the sizes of pictures in the BMP file format.
- Press the print screen key on the keyboard to capture the
screen as a picture. Open up Microsoft Paint, paste the image into the
canvass, and save it as a 24-bit bitmap file ( .BMP file). Check the file
size. Explain in your report the relationship between the screen
resolution, the BMP file format, and the file size you see.
Step 4:
Step 5:
- Suppose the 40 bits (5 bytes) of information in Step 5 above
are stored as a part of a text file to encode the information of 5
characters (8 bits for each character) using the ASCII character set
encoding. Explain in your report what the five characters are.
Step 6:
Week 4: How well can the
computer perceive and act? Progress report due: Monday, Feb. 25.
Reading #4:
Lab
#4: (10 points)
Part I. Binary / decimal conversion using
Excel
- Right click to download this Excel
worksheet and save it in your computer. (i) Look at the syntax
of two EXCEL built-in functions used in this example: MOD and INT. (ii) Enhance sheet 1 of the document so that it can
convert any given integer in decimal format in the range of [0,1023] to
the corresponding 10-bit binary representation. (iii) Enhance sheet
2 of the document so that it can convert any given 10-bit binary
representation into the corresponding decimal format in the range of
[0,1023].
- Optional:
Here is a helpful YouTube video on the basics
of writing Excel formulas that may help.
Part II. More
reflection on artificial intelligence
- A
number of people observed that the brain-body relationship (instead of the
soul-body relationship) is a much precise analogy to the software-hardware
relationship. (For example, read the reflection comments quoted here.)
From this perspective, the software in the HAL
computer in Stanley Kubrick’s “2001: a space odyssey” is somewhat like an
extremely capable brain without a soul. After finishing Reading #4 this week, think about the following
question: what areas of and to what
extent do you think the imagined brain-like capability of the software in
the HAL computer (for example, things
mentioned here based on clips 1
and 2
and other scenes we saw in the movie) could or could not be implemented by
modern artificial intelligence research in the near future? Why or why
not? Please put down at least 200 words of your thoughts and
include them in your progress report.
Week 5: Information
transformation: cryptography and
security. Progress
report due: Monday, March. 3.
Reading #5:
Lab
#5: (10 points)
Part I. Excel formulas: deriving new data
from raw input data (Information transformation)
- Create an Excel document to (i) lay out your weekly
schedule in terms and the amount of time you spent in at least 5
categories in one week, (ii)
use the information above as raw input data and for each category define formulas that can automatically
determine the weekly totals and the weekly percentages of time you
spent in that category, (iii)
add one additional miscellaneous
category and for each
day of the week define a formula to automatically determine the
amount of time spent in the miscellaneous category on that day, and (iii)
create a chart that can
automatically present the distribution of time in these categories
over the week based on the data entered.
- Here is an example of how
the Excel worksheet may look like in the end, but please remember you have to
define formulas as described above instead entering everything as raw data.
Part II. RSA
encryption and security.
- Download
this Windows zip file, extract it to get RSA.exe,
and play with the RSA.exe encryption program under Windows.
- Here
is a text file lab5.txt containing a secret message
from me. The public key for decryption is n=18509 and d = 1087. Download
and save lab5.txt into the folder containing RSA.exe, use RSA.exe to
decrypt the contents, and include in your progress report what the
original message is about.
- Based
on Reading #5 this week and your experiences with lab #5, put down at least 200
words of your reflections on cryptography and information security.
Week 6: Database:
retirieval and management of information.
Progress report due: Wednesday, March. 12.
Reading #6: Basics of databases and HTML tags
Lab
#6: (10 points)
Part I. Exploring
very simple deductive databases for common-sense
reasoning on family relationships
- Examine the following Eclipse database logic programs: 1 2 about facts and
logical rules regarding family relationships.
- Download database logic program 1 and use Eclipse to
compile it and then run each of the suggested queries listed in the end of
it between /* and */. Report the outcomes you see.
- Download database logic program 2 and use Eclipse to compile
it and then run each of the suggested queries listed in the end of it
between /* and */. Report the outcomes you see.
Part II. Exploring a simple online
relation database with a web front end
- Insert a number of new books into an online database through
this insertion-of-new-books
web page.
- Search for the books you entered above based on
ISBN, Author, Title by querying the database through this online-catalog-query
web page.
- Examine the HTML code for
the insertion-of-new-books web page) and the HTML
code for the online-catalog-query web page. Note that to examine the
HTML code, get to the web page first and then right click the page and
select view source to view the underlying HTML code.
- Optional step:
you can also find and see the related PHP code here which connects to the database for
insertion and retrieval of information.
- Based on your reading, in your progress report put
down at
least 200 words to succinctly explain your understanding of the
purposes and/or effects of the HTML tags in the HTML code for the insertion-of-new-books
web page above.
Weeks 7~8: Review &
Test; Spring break. Progress report due: Monday,
March 31.
- Review section: Monday, March. 10.
- Test #1 solutions,
average score=55.6/70, standard deviation = 7.9 (Open-book in-class test
on all the subjects covered so far): Wednesday,
March. 12
Reading #8: Basics of the Internet and computer
networks Progress report due: Monday, March 31.
- Read Chapter
8 of the textbook on Networking and Digital Communication.
Week 9: More on database
management and the Internet. Progress report due: Monday. April 7.
Reading #9:
- Read the history section in this Wikipedia article
regarding the
Internet and TCP/IP.
- Read Chapter 9 of the textbook up to page 314.
- Watch the following YouTube videos on Internet and TCP/IP: 1
2
3
4.
- Put down at least 200 words of your reflections on the
reading in your progress report.
Lab
#9: (10 points)
- Step 1.
Do this
assignment to learn the basics of creating managing a single-table
database using Microsoft Access.
- Step 2. Download this zipped
sample database to your folder and extract it. Browse the fields (design view) and data
(data sheet view) of the Employees table in the database.
Create queries using the Wizard to retrieve from the following
information: (i) Find all employees
who were born after 12/31/1973
and hired after 12/31/2001.
Show the first name, last name, birthday, and hire date. (ii) Find all male employees who were born after 12/31/1973 and who
live in either Landis or Maldin. Show the first
name, last name, birthday, and city.
- Report in the progress report to what extent you
are able to accomplish Step 1 and Step 2.
- Optional:
The following are some optional YouTube videos on Access that you might
feel helpful for doing Lab 9: 1
2
Week 10: Intro to web
publishing on the Internet. Progress report due: Monday. April 14.
Reading #10:
Lab
#10: (10 points)
- Part I.
Do this
assignment for more practice on writing queries for a multi-table
Microsoft Access database. Report
in your weekly progress report the number of records retrieved by queries
#1-#6 respectively.
- Part II. See how
to publish web pages on BUBBS. Use Microsoft WORD to create an
autobiography document for introducing yourself to others. Save it as a
web page, biography.htm, instead of a
regular .doc word document on the desktop of your local machine. Publish
it to BUBBS by dragging biography.htm (and
also the folder with a similar name accompanying your index.htm if you
have inserted pictures in it) to your BUBBS web folder. In your progress
report, report to me whether you are able to publish this web page on
BUBBS and also inform me of the URL of your web page.
Week 11: Mission
conference. Progress
report due: Monday. April 21.
Reading #11:
- Read the introduction and the history and
development sections in the following Wikipedia article on geographic information systems
(GIS) such as the Google Map service as
an example of database applications.
- Read Chapter 7
of the textbook on database management.
Lab
#11: (10 points)
- Do this
assignment on a genesis
web page. In your progress report, report to me whether you are
able to publish this web page on BUBBS and also inform me of the URL of
your web page.
Weeks 12~13: Review and Test; Web project Proposal. Progress report due: Wednesday. April 30.
Lab
#12: (10 points)
- Do this assignment on a
landscape web
page. (See the very basics of image processing
using Photoshop if you use Photoshop for image editing.) In your progress report, report to me
the URL of your landscape web page.
- Read the requirements
and examples and the development
timeline and due dates for the final web project. Write up your
proposal regarding the subject of your website and the general outline
of what you will have in your web pages. For each perspective web page you
will create, shortly describe the contents of the page, the
images/graphics needed in the page, and how you will lay out the text and
images in the page. Include your
proposal in your progress report.
Test 2 solutions: average score=51
/ 60, standard deviation = 5.01.
Open-book in-class test, Monday, April 28 on the new subjects (Chapters 7~9 from the textbook + articles in the
readings + the use of Access and Excel) not covered by Test 1.
Week 14: Web project: Prototype development. Progress report due: Wednesday. May 7.
Lab
#14: (10 points)
- Create your web pages
according to your web project proposal and upload them to your website.
- Carefully check the
hyperlinks and pictures in your web pages to make sure they all work well.
Read this note about the basics of creating
hyperlinks.
- In your progress report,
inform me the URL of the homepage of your website.
Week 15: Web project: Demo and review. Progress
report due: Wednesday. May 21.
Lab
#15: (10 points): Demonstrate your prototype to the class. Review and
evaluate the websites of your group members based on the guidelines
and record the scores in your weekly progress report.
Final written test: 5:00~6:00PM,
Wednesday May 21.
Final Web Project:
·
Requirements
and Examples
·
Development
Timeline and Important Dates for Presentation and Review
·
Peer
Review Groups and the Process
|
Review Groups
|
Members of the group
|
|
Group A
|
Austin,
Brendan Charles
|
Dingman, Kyle
Evan
|
Morales, Natalee Aida
|
Schroeder,
Andrew J
|
|
Group B
|
Bagge,
Allan Ellis
|
Glazener, Jeremy Chad
|
Morin, Michael
Allan
|
Smith, Kevin
Mark
|
|
Group C
|
Barker, Michael
Joseph
|
Jones, Daniel
Wayne
|
Newberry, Julie
Nicole
|
Surma, Colleen Lisa
|
|
Group D
|
Barnett,
Daniel A.
|
Martin, Michael
Shane
|
Nixon, April Rose
|
Yao, Amy Yung Fen
|
|
Group E
|
Collier,
Jacqueline Rachel
|
Mitchell,
Kelsey Lauren
|
Salisbury,
Daniel Stephen
|
|
To the Top of the Page