Introduction to Computer Science

Instructor: Jeremy Gottlieb
Office: Lentz Hall 307
Phone: x5943
E-mail: jgottlieb@carthage.edu
My Schedule


Take-home Midterm

Due at NOON on Wednesday, May 4, 2005.



Purpose of the course

Computer programs are all around us. The web browser you are using to read this web page is a program. The operating system running on your computer is a program. Your e-mail reader and instant messager are both programs.

The purpose of this course will be to understand how to write computer programs to solve problems and accomplish tasks. To accomplish this, we will be learning the C++ programming language.


Submitting assignments

Assignments must be submitted through e-mail. They must be submitted with a filename that consists of your first initial followed by your last name followed by the assignment you are submitting. Finally, the extension on the file must be .cpp.

For example, if I am submitting HW 5, I would name the file: jgottlieb.hw5.cpp

If Eric Clapton was going to turn in Lab 8, he would name the file: eclapton.lab8.cpp


Assignments labeled as "Pre:" are generally readings to be done before class.
Assignments labeled as "Lab:" were done in class and must be submitted to me through e-mail.
Assignments labeled as "HW:" are homework assignments to be done on your own. These must also be submitted to me through e-mail.

Course Calendar

DateTopicAssignment
Feb. 2 Programming as Problem solving Do a functional decomposition of a simple, every day task, such as tying your shoes or brushing your teeth.
Feb. 4 Modular Programming and Functional Decomposition Pre: Read Chapter 1 and Section 4.9 (pp. 166-176)
Feb. 7 Introduction to Visual Studio.NET

Output in C++

Lab 0: Hello, World!
Feb. 9 The Structure of a computer program:
Variables, blocks, and assignment

Input in C++

Pre: Chapter 2
Lab 1: Input variables
HW 0: Exercise 2.3 (p. 93)
Feb. 11 Structure of a computer program:
Declarations, Data Types, and Expressions
Pre: Chapter 3
Lab 2: Reading into variables from the keyboard
HW 1: Exercise 3.1
Feb. 14 Expresssions Lab 3: Programming Warm-up Exercise 3.6a-d (p. 136)
Feb. 16 Functions 1: Calling functions Lab 4: Programming Warm-up Exercise 3.6e-f (p. 136)
Feb. 18 Using Files Pre: Chapter 4
HW 2: Working with files
Feb. 21 Changing the Flow of Control, part 1:
The if() statement
Pre: Chapter 5
Lab 5: If statements
Feb. 23 More about if() HW 3: Problem 5.2 on Page 246; Along with the functional decomposition, I want you write the program, too.
Feb. 25 Catch-up day Work on previous assignments
Feb. 28 Flow of control, part 2:
While Loops
Pre: Chapter 6
Lab 6: While loops
HW4: Exercises 5, 6, and 7 on p. 297
Mar. 2 For loops Pre: Chapter 9.3 (pp. 426-430)
Lab 7: Factorial!
HW5: Using loops
Mar. 4 Nested loops Lab 8: More Factorial!
Mar. 7 Functions 2: Writing your own functions. Pre: Chapter 7
Lab 9: Functions
Mar. 9 Visual Studio Lesson
Using the debugger.
HW6: Craps
Mar. 11 Programming Problems 1
Integrating what we've learned
HW7: Blackjack
Mar. 14 Programming Problems 2
More integration
Mar. 16 Exam review
Mar. 18 MIDTERM EXAM
Mar. 30 Exam recap
Apr. 1 Enumerated Data types Pre: Chapter 10
Lab 10: Problem 10.1 on page 515.
Apr. 4 Structured data types Pre: Sections 11.1 and 11.2
Lab 11: struct
Apr. 6 Using structs with functions Pre: Section 11.7
HW8: Structs
Apr. 8 NO CLASS
Apr. 11 Introduction to Classes Pre: Sections 11.4-11.6
Lab 12: Classes
Apr. 13 We're a classy class. HW9: Using classes
Apr. 15 Constructors and Destructors. Pre: Section 11.8 and remainder of Chapter 11.
HW 10: Problem 11.5 on page 585.
Apr. 18 Introduction to Arrays Pre: Sections 12.1-12.3
Lab 13: Arrays
Apr. 20 Introduction to Pointers Pre: Section 15.1
Lab 14: Pointers
Apr. 22 More Arrays and passing by reference. Pre: Rest of chapter 12
HW11: Arrays with functions
Apr. 25 Programming Problems HW12: Hangman!
Apr. 27 Ketchup day
Apr. 29 Exam review All homeworks and labs due (except hangman)
TAKE HOME MIDTERM handed out
May 2 NO CLASS
May 4 Introduction to Grafix
Discussion of final projects.
TAKE HOME MIDTERM DUE
No exceptions.
Lab: Install Grafix and go through the Basic Lessons.
HW: Choose your game for your final project. Write a functional decomposition of it for Friday.
May 6 More Grafix - Advanced Lessons Hangman Due
May 9
May 11
May 13 Work on Final projects.
May 18 FINAL PROJECTS DUE Present projects from 8:00-10:00