Introduction to Computer Science
CSCI 170-01 (Goldweber)
Spring 2011 Semester
The course syllabus.
Instructor's Home Page and current
schedule.
The reading assignments.
Definitions etc.
Two of the key ideas in this course is the notion of abstraction
and the concept of an algorithm.
Other important definitions.
Here is a list of the algorithmic patterns and specific algorithms carefully studied during the semester.
A suggested guide to expressing one's algorithms in Python.
In addition to studying algorithms, we have also focused on computational complexity. Here are some links that help one understand this important concept
Webopedia - An useful
encyclopedia of computer (science) terminology.
The Spring 2011 XU Karel Contest:
As an extra credit opportunity consider participating in the Spring 2011 XU Monty-Karel Programming Contest. The contest deadline is Tuesday, April 26, 2011.
Homework Assignments:
Extra Credit Opportunities:
- For Homework 11, perform the red-eye elimination using a circle rather than a rectangle: specify a center point and radius instead of the upper left and lower right rectangle coordinates.
- For Homework 11, generalize the rotateLeft function to rotate any number of user specified degrees. (HARD!)
- Write a Python implementation of insertion sort and/or binary search - due Tuesday 4/12/11
- Write a Simple Computer implementation of selection sort, and/or insertion sort and/or binary search - due Tuesday 4/12/11
- Write a Python function to determine and return the second largest value in a list. - due Thursday 3/31/11
- Write a Simple Computer implementation of "Find Largest." The first input card contains the value n (the number of data cards to follow). Your program should output the value of the largest of the n data cards. An even harder version of the problem would be to output both the value AND its index in the input list. - due Tuesday 3/29/11
- Given the 1-bit adder developed in class, compute the number of transistors used in a 32-bit adder.
Show, using only NAND gates, how to construct an "AND" circuit, and "OR" circuit and a "NOT" circuit.
Show, using only NOR gates, how to construct an "AND" circuit, and "OR" circuit and a "NOT" circuit. - due Thursday 2/24/11
- Any of the problems worked on in 2/10/11's class: Problem 5, 28, or 21 from Chapter 6 of the Karel text - due Tuesday 2/15/11
- Problem 22 from Chapter 6 in the Karel text - due Thursday 2/10/11
- Read "Stranger in a Strange Land" by Robert Heinlein. When finished discuss the novel with the instructor. Towards the end of the semester, there will be an extra credit paper opportunity for those who have read this book.
- Write out your solution to the "Knights and Knaves" problem discussed in class - due Thursday 2/3/11
- Create a Monty Karel program to "leap" over three narrow obstacles. (i.e. A vertical bar.) The obstacles are situated just east of 3rd (i.e. between 3rd and 4th), 6th, and 9th avenues, and can be between one and four streets high. - due Thursday 2/3/11
- Read "The Hitchhiker's Guide to the Galaxy" by Douglas Adams. When finished discuss the novel with the instructor. Towards the end of the semester, there will be an extra credit paper opportunity for those who have read this book.
Software Environments
- JES - Download and Install. This is our Media Computation tool.
A listing of the relevant JES Commands.
- The Simple Computer
- Alternative Karel World Builder: For those Windows users for whom the supplied world builder does not work, there is an
alternative Karel world builder. Right-click the link to save the file to your desktop. Simply double click the file: "KareKJRobot.jar" to invoke the world builder.
Note: This is a java (jar file) program. You must have java installed on your machine for this to run.
- Monty Karel the Robot:
Install Python on your home/personal computer, and downlowd and extract MontyKarel onto your computer/USB key drive. Here are the instructions for installing Python and MontyKarel on your computer (or how to find Python on a public lab machine). Try running the included program firstKarelPgm.py -- found in the MontyKarel folder to test the installation.
Examinations:
- The mid-semester examination is tentatively scheduled for Thursday March 3, 2011.
- The final (cumulative) examination is will be administered on Tuesday May 3, 2011 (4:00-5:50).