Link to CSU CS Department

CS115 -- Great Ideas in Computer Science
- Fall 2006


Weekly Schedule and Assignments (subject to change!)

This schedule will be developed and updated as the semester progresses.

Prep Work: Instead of using a textbook for this course, we are going to rely on you finding information on the Internet to develop our course materials. Prep work describes the topic we want to discuss that day in class; in order to enable you to have some information about the topic, you will need to find (and read) some information on the Internet and print the page out and bring it to class.
- Printing is free in the Weber lab and possibly in the computer lab specific for your major (open-option students have a lab in the Lory student center), not to mention the computer labs in the computer science department.
- Only 1 to 2 pages are required.
- You need not answer all the questions posed, but find an answer to at least one of them.
- You must write your name at the top as you will hand it in at the end of class (returned next time).
- Submissions may be copied and distributed to the entire class to enhance our course materials.
- You must compile all prep work and handouts in to a folder/notebook, to be checked at the end of the course.


Assignments Due: Assignments involve essays (perfect spelling and grammar!), programming projects and other work that you are required to do yourself.

Essays: Essays are the 50-point papers that are worth much more than your assignments.


Day Date Lecture Topics
1 Aug 21 Prep Work: Think about what you want to get from this course. (no need to hand in anything)

Assignments Due: none

Discussion: Who are you? Discuss why to take this course, what you want from it, and whether it is a good match for you.
Essay assignments and corrections-for-credit


Assignment 1: due Mon Aug 28 start of class (typed, with perfect spelling and grammar!):
What are your objectives for this course? What do you hope to get or learn from taking it?
What is computer science? How is it related to Art? to Science? How is it helpful to Art? to Science? to your major?
2 Aug 23 Prep Work: What is Problem Solving? What is a problem? How do we go about solving problems?

Assignments Due: none

Discussion: Problem Solving Review assignment. Problem solving. Computer drawing exercise. Programming intro (breaking tasks into simple steps).

Handout

If you ask for something, you are more likely to get it. If you don't ask, you are less likely to get it.


Assignment 2: due Aug 30 start of class:
Bring an "ID card" to class -- 4x6 card (available from instructor) with the following on one side of the card:
  • a good, visible picture of your face; and, legibly written:
  • your preferred name and surname
  • your email address
  • CS115
  • a fun fact about yourself (hobby, working 3 jobs, travel, pets...)
    Note: fun facts may be shared with class!
  • anything else you'd like to include (not shared with others)
Aug 24,25 Recitation
Log in, change password, email, Firefox browser, Linux
On the Internet, find out what areas of computer science the CSU CS department specialize in.
Search for other topics in CS that we could cover in this course.
3 Aug 28 Prep Work: What is an algorithm and how does it differ from a computer program? What is an example of an algorithm? What makes one algorithm more efficient than another algorithm? Why would we desire a more efficient algorithm than any algorithm that works? How does an algorithm relate to problem solving?

Assignments Due: Assignment 1

Discussion: Algorithms Definition, examples, efficiency and relation to problem solving

4 Aug 30 Prep Work: Answer one of these questions: What is a computer - what is it made up of? Who originally created the computer and what was the design? How has the pc progressed over the years (find some photos of old computers)? What other influential people helped in the development of the computer? How does the original design for a computer differ from the modern computer of today?

Assignments Due: Assignment 2 (ID Card)

Discussion: Computer What is a computer/pc/Internet, famous bad quotes, history of the computer


Assignment 3: due Sep 6 start of class:
50 point paper (perfect spelling and grammar):
I want you to think about the purpose of the computer and how it relates to problem solving. You are to write a proposal as a person in the early part of this century to convince the world of the importance of the computer. You will need to describe how a computer is to work (in a general sense) such that the people of that era can understand. You may support your argument with quotes from any of the following people (be sure to attribute the quote correctly!): Euclid and Archimedes, Blaise Pascal, Joseph Jacquard, Charles Babbage, Herman Hollerith, Vannever Bush, John Atanasoff and Clifford Berry, Konrad Zuse and Helmut Schreyer, Howard Aiken, Alan Turing, John Mauchley and J. Presper Eckert, John von Neumann
What political/social/economic effects will the computer have on society?
How could the computer potentially change the world? What would the world be like with/without computers in the future (e.g. 2006)?
Aug 31,Sep 1 Recitation
What is a computer? What are the best options when buying a computer?
What's inside a computer?
Parts
Inners
another
- Sep 4 Labor Day: No classes
5 Sep 6 Prep Work: Answer one of these questions: What is the difference between an analog signal and a digital signal? Why do computers use digital representation? Which is better for cell phones - analog or digital? What is binary numbering system (how do you count to ten in binary)? What is hex numbering system (how do you count to twenty in hex)? Machine code language

Assignments Due: Assignment 3

Discussion: How computers work - analog vs. digital, decimal vs binary vs hex

Sep 7,8 Recitation
Linux and Linux/UNIX commands
Linux Commands
6 Sep 11 Prep Work: How do computers generate random numbers - are they truly random? What is a pseudo-random number and how can it be calculated? How do industries like video games, bingo, lottery and casinos generate random numbers to prevent people from figuring out the system? Find a true story of people "beating the system" by figuring out the random sequence (it has happened!)?

Assignments Due:

Discussion: Review of 50-point papers returned, How to get truly random numbers

7 Sep 13 Prep Work: Types of computer languages:
What's the difference between machine language and assembly language? What's the difference between assembly language and high-level language?
What's the difference between procedural languages and object-oriented languages? What's the difference between procedural languages and functional languages?
What are examples of programming languages of each of the above types?
What is a database, and what language is usually used?

Assignments Due:

Discussion: computer languages


Assignment 4: due Sep 20 start of class:
50 point paper (perfect spelling and grammar):
Double-spaced, 11-pt font, 1-inch margins, 4 pages long
Explain how a large email message with photo attached gets sent from you in Fort Collins to your friend in Nepal.
You must start off your paper with an analogy to something that kids would understand. Explain your analogy of how email messages get transferred in 1 full page of your essay.
Then transition to the rest of the paper to explain in detail how it works.
You may only quote or direct paraphrase from other sources three times total in your paper. The rest will need to be put in your own words. Since plagiarism is a serious offense, you will be given a zero on the assignment if you (a) directly quote from a source and do not properly cite your source (b) paraphrase from a source and do not properly cite your source (c) copy from a source and do not properly cite your source. Your three citation quotes may only be up to 2 sentences long each. You should not quote any more than that. You should learn to write it yourself.
Sources should be cited by using a superscript number after the quote, references a set of end notes at the end of the paper. The endnotes should contain the following:
[#] Author. "Title of the article or book", Publisher, year.
Example:
[2] J. Lewis and L. Loftus. "Java Software Solutions", McGraw Hill, 2006.
For websites:
[#] Author. Title of web page, month and year you viewed the web page, URL.
Example
[3] R. Ralph. "HTML Reference Guide", Sept 2006, http://www.netstrider.com/tutorials/HTMLRef/index.html.
Sep 14, 15 Recitation
Machine language, assembly language http://diwww.epfl.ch/mantra/aeonline/course/6/1/index.html
8 Sep 18 Prep Work: Print out the source code of your favorite web page. To do so, you can select in your browser: "View -> Page Source" or something similar.

Assignments Due: none

Discussion: HTML
Check out an HTML Reference Guide (some commands only work on particular platforms), and HTML fonts Reference Guide (and go up a level or two to see more).
HTML Overview (slides)
Color Table and how colors may appear on some people's computers: Bad dithering


Assignment 5: due Sep 29 by 2:30pm:
Complete the following requirements for your personal homepage (as started during recit Sept 21, 22)
  • index.html contains your name and a photo of yourself
  • index.html links to two other pages that you create, and three external links (external link begins with http and is not a page in http://www.cs.colostate.edu)
  • each page that you create must have a link to connect back to the others via a navigational bar
  • Must contain a header tag
  • Must contain a list of at least 3 items, using ol or ul
  • Must contain a header tag
  • Must contain a table with at least 3 rows or columns
  • Must use at least 3 colors (text, background, etc.)
  • To turn in your assignment, you must email me your URL.

NOTE: You must write Assignment 5 using HTML NOT using a helper application.
You need to redo your assignment if you used a helper application.
The point is to learn how to program in HTML, not just to learn how to create a web page.
OPTIONAL: Interested in doing a *real* website? Excellent resume booster! We need two people for two different websites: one for the CS Symposium www.cs.colostate.edu/symposium (make it look like a conference web site, enable people to upload binary files and store on server, ...) and one for the UPE, a computer science honor society (www.cs.colostate.edu/upe).

9 Sep 20 Prep Work: none

Assignments Due: Assignment 4 (50 point paper)

Discussion: HTML

Sep 21,22 Recitation
Web Pages
Work on your web page to make it more fun and interesting!
Play with your web page. Add at least two elements from examples in: Making Your Web Page More Fun or
By the end of class have a working web page with some personality. Include at least: your full name, color, at least one image, at least one kind of special formatting, and at least one link.
10 Sep 25 Prep Work: Find a web page that contains Javascript in the head tag and print it out, bring to class

Assignments Due: none

Discussion: JavaScript
JavaScript Stuff

11 Sep 27 Prep Work: Bring in an idea of something you want to learn about how to do on a web page. Flash program is not acceptable, nor are any of the things listed in the JavaScript Stuff lecture notes from Monday.

Assignments Due: Due friday: Assignment 5

Discussion: JavaScript


Assignment 6: due Oct 4 by 2:30pm:
Complete the following requirements for your personal homepage (add to what you already have)
  • Add one script to your homepage from either hotscripts.com or javascript.internet.com except the one done in recits and lecture (no fairy dust).
  • Add the last modified date script to the bottom of your index.html page.
    e.g. this should work automatically when you update your web page, you should not manually put the date in there - MUST use JavaScript
  • Remove the underlines on all your links in your index.html page.
Sep 28,29 Recitation
ssh and sftp
JavaScript: mouse over on images,
incorporating scripts others wrote e.g. hotscripts.com, javascript.internet.com
12 Oct 2 Prep Work: none

Assignments Due:

Discussion: ALICE (www.alice.org)

13 Oct 3 Prep Work: Questions about the exam

Assignments Due:

Discussion: Mid-Term Review, how to submit in WebCT (for HW 7), HW7


Assignment 7: due Oct 13 by 2:30pm:
ALICE project: You may use any world you like, and create a movie that interacts with the user. You may not use the ice skater from recits/tutorial.
Minimal Requirements:
  • 3 beings (human, animal, fairy...) in your world
  • 3 objects (trees, buildings, bridges, etc.)
  • 3 things need to happen at one time
  • When the user clicks on the arrow keys, one of your beings must move around respectively
  • When the user clicks on the space bar, one of your beings needs to say something
  • When the user clicks on the letter w, your being that can be moved by the user using the arrow keys must turn towards the camera and either wink or have the head turn left and right (about 1/4 revolution) towards the camera
  • Be creative - creativity counts towards your grade here.
  • Two of the beings must do the same dance together with at least 5 different steps/movements involved.
    NOTE: If you don't want to dance, you can ask permission to substitute for something else that's elaborate, but you need to get permission before you submit it!
  • You must submit your assignment on WebCT
Oct 5,6 Recitation
ALICE
Go through first tutorial
Add an object to the world
Use a "Do..Together" block
14 Oct 9 MID-TERM in class
> > > > > > > > > >       Study Guide < <<<<<<
15 Oct 11 Prep Work:

Assignments Due: ALICE Assignment #7 is due FRIDAY by 2:30pm, late period until Monday. Submit via WebCT.

Discussion: Robot API

Oct 12,13 Recitation
Robots
Meet in North lab in the back, where the robot play area is
16 Oct 16 Prep Work: See assignment 8 below

Assignments Due:
Assignment # 8 is: Answer the following questions yourself. Each answer should be at least 200 words written in your own words (no quoting anyone!). Also provide a URL for more information about each robot. Answers must be typed and submited at the beginning of class. If you include the question below as part of your answer, it does not count towards your 200 words.

  • Identify and describe an intelligent robot system currently used in education, why does it work for educating? What level is it good for (kids, middle school, college level...)
  • Identify and describe an intelligent robot system used for defense outside of the USA (e.g. cannot use the DARPA challenge described in class). What makes it good for use in defense?
  • Identify and describe an intelligent robot system used for entertainment purposes. What are the pros and cons of such a robot?

Discussion: Discuss robots, review exam, don't forget to work on your web pages, it will be worth 50 points later this semester that you have a good well-developed set of web pages!

17 Oct 18 Prep Work: Find 3 search engines excluding Google, Yahoo, Microsoft, AltaVista, HotBot, Dogpile and write at least 400 words comparing and contrasting the ones you found. For example, what is unique about it?

Assignments Due: none

Discussion: Search engines

Oct 19,20 Recitation
Search engines
Meet in regular recit lab room
Google yourself. What happened?
18 Oct 23 Prep Work: What is the difference between depth-first search and breadth-first search? What is an example of each from the CS dept web page: http://www.cs.colostate.edu? How do these search techniques relate to game programming?

Assignments Due: none

Discussion: Search techniques
View top 3 Alice programs
http://www.cogsci.ucsd.edu/~batali/108b/lectures/search.html
http://www.cs.ubc.ca/labs/lci/CIspace/Version4/search/index.html
look at the 8-puzzle
Breadth/Depth Search demo

19 Oct 25 Prep Work: What is "artifical intelligence"? What is the Turing Test? Does Eliza or Parry pass the Turing Test? What would be a good test for determining a machine to be artifically intelligent?

Assignments Due: none

Discussion:


Assignment 9 Web sites (50 points): due Nov 14 11am Check out some of the Webby awards for some ideas.
Add the following to your website on your CS accounts:
  • Your website must fufill the requirements from HW #5 and #6 (will be rechecked)
    This means your extra pages must not be blank or just a link back to your home page. You must have sensible content in your web pages.
  • Make a picture be a link to another web page.
  • an ImageMap (Tutorial, Another tutorial, Yet Another tutorial) My Example
    Your image map must link to at least 3 other web pages (internal or external).
    You can use the program xv in the Linux computers in the CS labs. Hold down the middle mouse button on the image to see the x and y coordinates on the image.
  • A background image (Background Image Tutorial) OR use a Background Edge Image (Bkground Image examples)
    use <BODY BACKGROUND="image.gif">
  • Randomly select a quote to print at the bottom of your index.html page, such that each time a user goes to or refreshes your page, a new quote is randomly selected to be displayed.
    Use JavaScript, an array, and random A Tutorial
  • Password-protect one of your web pages (NOT index.html). Create a user "CS115" with password "intro" so we can test your web page.
    Tutorial
  • Be creative and make it look good! If you have a really busy background that makes the text hard to read, you will lose points! Make sure all your images appear correct - make sure there are no broken links either.
Nice Buttons

Extra Credit #1 Top 3 web sites will receive extra credit and candy.

Extra Credit #2 Create/install a working bulletin board on your website, such that internet users can fill in a simple form and their entries as well as everyone elses is available on the web page.

Oct 26,27 Recitation
Play Eliza Eliza
20Q 20Q
How do these work to pick an appropriate answer?
Work on Web sites
20 Oct 30 Prep Work: none

Assignments Due: none

Discussion:
AI Overview
Genetic Algorithms GA demo       Another demo
Program: gaHelloWorld.cpp Download,
    type " g++ gaHelloWorld.cpp " (without the quotes)
    then type " a.out "

Problems with Vision in AI

Why did the programmer confuse Christmas and Halloween?


Assignment 10 AI (50 points): due Nov 8 at 11am
50 point paper (perfect spelling and grammar):
Double-spaced, 11-pt font, 1-inch margins, 4 full pages long (including references)
Must reference 3 references - no more, no less.
You may only quote or direct paraphrase from other sources three times total in your paper. The rest will need to be put in your own words. Since plagiarism is a serious offense, you will be given a zero on the assignment if you (a) directly quote from a source and do not properly cite your source (b) paraphrase from a source and do not properly cite your source (c) copy from a source and do not properly cite your source. Your three citation quotes may only be up to 2 sentences long each. You should not quote any more than that. You should learn to write the concepts in your own words.

Topic: What is a good test for determining whether a machine is intelligent or not? Discuss the problems with the Turing Test as an indicator of an intelligent machine. What other tests are proposed? What test do you think would work the best? Would the Eliza program, 20Q program or the Philip K. Dick android pass the test that you propose is the best for identifying an intelligent machine? Does your test fulfill the 5 things we identified in lecture 10/25 as to what is 'artificial intelligence'? Does it need to fulfill all 5?

21 Nov 1 Prep Work:

Assignments Due:

Discussion:

Logic Logic notes
Gates and Circuits

Nov 2,3 Recitation
compile and run the cpp program, change Hello World to something else
CGI program, cgi link
22 Nov 6 Prep Work: How does the operating system interact with the hardware in the computer?

Assignments Due:

Discussion:
Finish gates
Operating Systems     General OS Notes   More notes
What is the purpose of an OS?
What are the 4 main layers of a computer system?
How does a computer multi-task and/or handle multiple users when there's only one processor?
How is memory handled for partition selection? What are the 3 algorithms we discussed?
What happens when your computer is thrashing? Why does this happen?
What are some CPU scheduling algorithms and how do they work? Are they pre-emptive? non-preemptive?

23 Nov 8 Prep Work: Bring in a list of 10 different Operating Systems

Assignments Due: AI (Assignment #10) (50-pt paper)

Discussion: Finish OS. Why are there so many different types of OS? What are the differences between them?
Why are some free? What is "open-source"?

Nov 2,3 Recitation
Gates and circuits Lab Create a gate with an and, or, not and XOR.
Draw out the diagram on paper that you created.
Write out the boolean algebra of the equation.
Fill in a truth table for it.
24 Nov 13 Prep Work: Describe the types of security problems related to computers at the hardware, software and data levels. Why is open-source a potential for security problems, and why is open-source ideal for preventing security problems? What types of threats are there? How do you defend security attacks/threats? Reading: Virus, Worms and Trojan Horses

Assignments Due: Due Nov 14: websites (50 pts)

Discussion: Security
Security Slides
Security Types
Worms & Virus Slides


Assignment 11 OS (10 points): due Nov 17 at 11am
Submit your answers to the lecture questions posed from 11/6 (you can submit the handout if you like, does not need to be typed) Either bring to lecture on Wed, or my office hours on Friday, or put under my door, or drop off at the main office if open, OR email to grader: osheim@cs.colostate.edu
25 Nov 15 Prep Work: What types of encryption algorithms are there? Describe how various encryption algorithms work. Where/when is encryption necessary?

Assignments Due: due Friday, 11/17 at 11am HW 11

Discussion: Encryption
Encryption Example Is this encryption any good? Look at the source!
Encryption

Nov 16,17 Recitation
Security/Encryption
very good PGP tutorial
FALL BREAK - HAPPY TURKEY DAY
26 Nov 27 Prep Work: What is the "Dining Philosophers Problem" and how does it relate to computer science? What is deadlock? What is starvation? What is a race condition?

Assignments Due: none

Discussion: Dining Philosophers:
Slides
Here's an example.: Deadlock.java
cs115 > /usr/local/java/bin/javac Deadlock.java
cs115 > /usr/local/java/bin/java -cp . Deadlock

27 Nov 29 LECTURE CANCELLED
Too much snow/ice!
Stay home, stay SAFE.
Liz's Office hours cancelled for today
Nov 30, Dec 1 Recitation What is the N x N Queens problem? How many solutions are there to 8 x 8 Queens problem? What are these solutions? What is the algorithm to try to solve the problem? slides
28 Dec 4 Prep Work: Attend the seminar "The Spatial Web: Visions For A Geographically Enabled World"
Monday, December 4, 2006
Lecture: 11:00 a.m. to 12:00 noon
Shepardson room 118
Find me to sign an attendance sheet
Slides

Assignments Due: none

Discussion:


Assignment 12 Seminar Essay (10 points): due Dec 8 at 11am
Questions for you to answer (answer all):
  • Explain what the spatial web is and some examples, including geoportal websites (200 words)
  • What are the implications? How can these help people? (200 words)
  • What are some of the issues with spacial webs? (200 words)
You MUST email your assignment to the grader: osheim@cs.colostate.edu
29 Dec 6 Prep Work: none

Assignments Due: Assignment 12 due Friday 11am

Discussion: Review for final exam
Questions posted - see Final Exam below


Assignment 13 Lecture Material Notebook (10 points): due Dec 13 at 8am
Hand in your notebook of all your prep works and lecture handouts
Dec 7,8 Recitation
It is your responsibility to ensure all grades are correct.
All of the following grades are available to you via WebCT.
If for any reason you cannot see a particular grade, you must contact the instructor/GTA by Dec 8 (your recit).
THis is your last chance to argue any of the following grades
  • Homeworks: 1,2,3,4,5,6,7,8,9,10,11
  • Labs: attendance for 1-5, 6-10 and completions for 1-5, 6-10
  • Prep work: 1-5, 6-10
  • Participation: 1-5, 6-10
  • Mid-term
There will not be time to change any of the above grades once finals week starts.
Spend part of recit ensuring your grades are all listed correctly!

The following grades will not be available to you until finals week: HW 12, 13, Labs attendance and completion 11-15, Prep 11-15, Participation 11-15, final exam

Dec 13 8am FINAL EXAM in 110 UNVSC building (where lectures are)
Final is cumulative, with emphasis on the material not covered on the mid-term
Mid-term Study Guide         > > > > > > > > > >       FINAL Study Guide < <<<<
You must bring in your notebook (Assignment 13)
"compile all prep work and handouts in to a folder/notebook, to be checked at the end of the course."

to Home