SELF-ASSESSMENT CSCI-E113

Am I Prepared for CSCI-E113?

CSCI-E113 assumes students have a certain level of programming experience and knowledge. The course is an introduction to C/Unix and CGI, but it is not an introduction to programming.

There is no sure way to predict if the level and speed of the course will be too quick for you, but here are some problems to try. If you have trouble solving, coding, or getting working solutions to these problems, you should consider taking a more introductory programming class.

The Problems

  1. Write a program to read in a list of non-zero integers. The user inputs a zero to indicate end of input. The program then prints the average of all the numbers and the difference between the largest number and the smallest number entered.

  2. Write a program that finds the number of days between two dates in the same year. The user inputs one date, presses the return key, then enters another date. The input is of the form "Month day", for example, Jul 4 or Oct 31.

  3. Write a prgram that prints out a checkerboard design with #'s and _'s that looks like:
                 #_#_#_#_#_
                 _#_#_#_#_#
                 #_#_#_#_#_
                 _#_#_#_#_#
                 #_#_#_#_#_
    	
    Your program should accept a positive integer as input and print a checkerboard with that many lines and that many pairs of #_'s

  4. Write a program that sorts the words in a text file. In particular, the file contains one word per line. The user specifies the name of the file containing the words and the name of a file to put the result. The program reads the words from the input file and writes the sorted list into the output file.

  5. Write a program that reads an arbitrary amount of text from a file or from the keyboard and reports how many a's, b's, c's, d's, ... z's are in the text. The program should ignore whether the letter is upper case or lower case.

    version 2 Modify the program so the output lists the letters and the number of times each appears in frequency order: most frequent first, least frequent last.