Course Outline: IL, Wheaton College

By: Higher Education

Abstract: CS 241: Introduction to Computer Science

Wheaton College
CS241
Introduction to Computer Science
Spring 1997


Professor: Dr. Harry Plantinga
Office: 116 Armerding, x5875
Email: Harry.Plantinga@wheaton.edu

Office hours: MWF 3:15 - 4:30; TR 1:30 - 2:30
Time, place: MWF, 12:45-1:50, 123 Armerding.

Textbook: C++: An Introduction to Computing, by Adams, Leestma, and Nyhoff.

Course content:
This course is an introduction to problem solving and programming. Most of the course time will be occupied with learning to translate algorithms into C++ programs. In addition, there will a little coverage of other areas of computer science, but a broad introduction takes place in CS 200, which is normally taken concurrently.

Prerequisites:
There are no formal prerequisites other than good familiarity with the use of computers and an interest in learning to program. An alternate course (CS242) is offered in the fall for students who have significant prior programming experience and want a faster-paced introduction to C++.

Homework:
There will be 8-9 programming projects including one or two larger ones toward the end of the term. These are to be done individually, although you may discuss them with other students. There will be a midterm and a final exam. In addition, there will be lab reports and a couple of quizzes, and readings will be assigned from the textbook. Note: because this course is being taught concurrently with CSCI 235 which is a quad course, the midterm exam will be the Wednesday of the last week of the A quad.

Handing in your programs:
Hand in a program information sheet, a printout of your program, and a floppy diskette with the source code and executable. Include any other files needed to run your program -- it should be possible to run the program directly from the diskette without modification. If the program doesn't compile and run, I may hand it back to you and ask you to re-submit it. Partial credit will be given for incomplete programs; late programs will be penalized 5% per weekday.

Make sure everything you turn in is labelled with your name and the program number, and fasten all of the items together (perhaps by putting everything in a gallon-sized ziplock bag). You'll need several diskettes and bags.

Grading:
The programs will count for 50% of the final grade. The lab reports and quizzes will count for 10%, and the exams for 15% and 25% respectively. Make sure you keep copies of the programs you turn in, in case I lose your diskette.

Programming environment:
We will be using Borland C++ for this class. For most of the programs (probably all but 3), you should be able to use a different programming environment, but for the graphical programs, you will have to use Borland C++ (or learn how to write graphics programs in your own environment on your own).

Programs

    1. Pizza comparator
    2. Square Roots (looping, numerical computation)
    3. Perfect Numbers (nested loop, conditionals)
    4. Hex calculator (menu, hexidecimal, library)
    5. Fractals (graphics, recursion)
    6. Game of Hangman (strings, files)
    7. RPN fractions calculator (classes)
    8. Game of Life (2D array) -- if there's time]
    9. Address Book (binary search tree)

Syllabus . .
1/13 Introduction Read 1.1 and 1.2 for next time
1/15 Intro to programming and C++  
1/17 Lab: C++ first program Read ch. 2 for next time
1/20 ML King day -- no class  
1/22 Program development Read 3.1-3.3
1/24 C++, Data types, cout, libraries Prog 1 out; read 3.4-3.8
1/27 Expressions  
1/29 Lab: Projects & debugging Prog 1 due; read 6.2
1/31 More on expressions; while Prog 2 out; read ch 4
2/3 Functions, libraries Read ch 5
2/5 If, switch  
2/7 Continue/break; precedence Prog 2 due; Prog 3 out; read 6.1-6.7
2/10 Loops  
2/12 Nested loops; controlling loops  
2/14 Menu-driven programs; text-mode graphics; hex Prog 3 due; prog 4 out; read 7.1-7.4
2/17 President's day -- no class  
2/19 Reference and value params Read 7.6-7.7
2/21 Lifetimes and storage classes Read 7.9
2/24 Recursion Prog 4 due
2/26 BGI graphics Prog 5 out; read 8.1-8.4
2/28 Files & streams  
3/3 Midterm review  
3/3 Midterm Exam  
3/7 Go over exam; prog. demos Program 5 due; read 9.1-9.5
Spring Break B Quad  
3/17 Strings  
3/19 Hangman program Prog 6 out (Hangman); read ch 10
3/21 Enum; typedef; operator overloading Read ch 11
3/24 Structs  
3/26 Class intro  
3/28 Good Friday -- no classes  
3/31 More on classes; Hangman demos Prog 6 due
4/2 Class libraries, stacks Prog 7 out (RPN); read 12.1-12.4
4/4 Arrays Read 14.1-14.3
4/7 2-D arrays Prog 7 due
4/9 Arrays and classes  
4/11 Mouse; prog 8 Prog 8 out (life); read 15.1
4/14 Strings, arrays, pointers Read 15.2-15.5
4/16 Pointers  
4/18 Pointers; dynamic memory Read ch. 16
4/18 Pointers; dynamic memory Read ch. 16
4/21 Linked lists  
4/23 Stacks, queues Prog 8 due; read ch 17
4/25 Binary trees Prog 9 out
4/28 Inheritance; object-oriented programming  
4/30 Virtual functions, late binding  
5/2 Exam review Prog 9 due
5/8 Final exam Thursday, May 8, 1:30 (last exam period...)

Server Response from: ETNASC03