Comp 150 - Computer Programming 1
Fall 2008
Instructor: Brian Shelburne
Office: 329-E Science
Contact: x7862;
bshelburne@wittenberg.edu
Class times: Lecture - MWF 12:40 -
1:40; Lab - Tu 9:00 - 11:10 - Room 144 BDK Science
|
Python Programming: An Introduction to Computer Science; John Zelle |
Although the title of this course is "Computer Programming I", this course is not exclusively a programming course. While Python programming makes up the bulk of the material covered, the course also provides an introduction to many topics and areas of interest in computer science. These topics are broken down into seven areas
For more on these areas (and others), click here.
This
course will be graded on 1000 points as follows:
Three in-class tests each 100 points 300 pts
Graded Programming Assignments
450 pts
Lab
Grade 50 pts
Comprehensive Final
Exam
200 pts
--------
1000 pts
Links
to In-Class Demo and Lab Programs
4. Text File Demo Programs
(09/19/2008)
10. Lab13(11/20.2008)
11. Lab14(12/4/2008)
Links
to Supporting Material
1. Binary numbers, decimal to
binary and binary to decimal conversion, signed binary numbers (sign-magnitude
& twos complement representation), floating point representation, ASCII
character codes. Here are a number of links to documents on this topic
1.
Number Systems and Base
Conversions: An introduction to binary, octal, and hexadecimal numbers and
how to convert to and from decimal.
2.
Binary
to Octal to Hexadecimal and Back: Computers use binary. But binary integers
are awkward to work with. Hence the use of octal and hexadecimal notation which
is more compact and it’s easy to convert between binary, octal and hexadecimal.
3.
Signed Integer
Representations: How do you represent a signed binary integer. There are a
number of ways: sign magnitude and two complement.
4.
Floating Point
Representation: A brief introduction to floating point representation using
a “toy” 8-bit float point representation as an example.
5.
Binary
Numbers: A more complete overview of binary, octal, and hexadecimal numbers
including the representation of signed integers and floating point
representation.
6.
Another
more detailed explanation is presented in the .pdf
document The
Representation of Number on the Computer - Brief Version (01/27/06)
2. An Introduction to Encryption Methods:
Caesar & Vigenere Ciphers
3. Operating Systems: A Brief
Introduction. An Overview of MS-DOS, a command line
operating system.
4. Graphics
Module Reference – John M. Zelle – Version 32. Spring
2005: Documentation for Zelle’s graphics.py
library
5. Computing the Date for
Easter: A link to an Australian web-site which has lots of information on
the subject. It’s actually quite complicated!
6. How Python Implements Booleans:
Like many computer languages Python implements False as 0 and True as any on-zero value.\
7. The Boolean Data Type and Digital Logic Circuits.
Links to Notes on Areas of Interest in Computer Science
The programmer, like the poet, works only slightly removed from pure
thought-stuff. He builds castles in the air, from air, creating by exertion of
the imagination. Few media of creation are so flexible, so easy to polish and
rework, so readily capable of realizing grand conceptual structures. Yet the
program construct, unlike the poet's words, is real in the sense that it moves
and works, producing visible outputs separate from the construct itself. It
prints results, draws pictures, produces sounds, moves arms. The magic of myth
and legend has come true in our time. One types the correct incantation on a
keyboard, and a display screen comes to life, showing things that never were
nor could be. ... The computer resembles the magic of legend in this respect,
too. If one character, one pause, of the incantation is not strictly in proper
form, the magic doesn't work. Human beings are not accustomed to being perfect,
and few areas of human activity demand it. Adjusting to the requirement for
perfection is, I think, the most difficult part of learning to program.
- F. Brooks ("The Mythical Man Month", pages 7-8)