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