The course is based on the IEEE/ACM Computing Curriculum course CS 111i from http://www.acm.org/sigcse/cc2001/111I.html. The description for that course states:
Introduces the fundamental techniques of programming as a foundation for more advanced study of computer science. Considerable attention is devoted to developing effective software engineering practice, emphasizing such principles as design, decomposition, encapsulation, procedural abstraction, testing, and software reuse. Topics include standard programming constructs, problem-solving strategies, the concept of an algorithm, and fundamental data structures (strings, arrays, and records) along with an introduction to machine representation, and graphics.By the end of the semester, you will be able to design, implement and test programs that solve problems involving small collections of data, simulations of real-world objects, or the manipulation of pictures and other graphical objects. Some of the problems that you actually work on will be constructed specifically to teach concepts, but as much as possible, the problems will be taken from real-world applications.
The instructors will hold weekly evening help sessions at a time and place to be announced.
I expect and encourage discussion among students, particularly discussion about the design and testing stages of solving problems. I also encourage you to visit me or the TAs to discuss your work each week.
Students average about 8 hours per week of work outside the class to prepare for quizzes/exams and to do the homework; however, there is a lot of variation. Some students may spend as much as 16 hours per week outside of class. If you find yourself spending too much time, then you are expected to immediately come see Michael. In general: Don't spend more than about 30 minutes working on something without making progress. Once you get to that point, there is often some small technical detail that you've misunderstood, so it is best to come see one of the instructors.
A midterm grade and final course grade will be assigned on an absolute scale:
If you need to miss a lecture or recitation or you need a homework extension because of other committments, you must contact Michael at least one week ahead of time. If you miss a lecture quiz, then that will count as one of your three lowest scores (which are not part of your grade). Other missed work will receive a zero unless you have made arrangements aheead of time.
Date | Topic | Assignments and Links | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Week of Jan 15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | A First Sample Program |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Lab 1: Compiling and Running Programs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | Variables and Assignments
Input and Output Data Types Arithmetic Expressions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Week of Jan 22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | Short Daily Quiz: Arithmetic Expressions
Review Assignment Statements Boolean Expressions Warning: == vs = If-Statements If-Else-Statements |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Lab 2: Using the Debugger | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | A Hand Quiz
Review Simple Branching Sample Program: Quadratics Discussion: Bits and Bytes Last Minute Homework Questions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. Week of Jan 29 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | Short Daily Quiz: Boolean Expressions
While Loops Increment and Decrement Operations Sample Programs: Loops |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Lab 3: Loops and BGI Graphics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | More While-Loop Examples
Review of the Recitation A Graphics Program to Calculate Pi A Program to Find the Moose Quiz Coming on Tuesday: While Loops, Invariants Stump the Prof! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4. Week of Feb 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | Principles of Loop Design
Short Daily Quiz: While Loops Priming the Loop Loop Invariants
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Practice for Next Week's Programming Quiz on Chapter 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | Widening Our Input and Loop Experience
Catching Bad Input and Giving the User Another Chance Do-While Loops For Loops Nested Loops Example: Coloring the graphics screen What Kind of Loop to Use Loops That Read Input | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5. Week of Feb 12 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture |
Short Daily Quiz: For Loops A Little More Practice for the Lab Quiz Discussion of Next Homework: The Mandelbrot Fractal Introduction to Programmer-Defined Functions |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Programming Quiz on Loops and Nested Loops | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | Detailed Look at Programmer-Defined Functions
Color Program | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6. Week of Feb 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | First Exam | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Lab 4: More on Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | Void Functions and Reference Parameters
More Practice at Writing Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7. Week of Feb 26 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | Quiz on Writing Functions at the Class Start
This quiz also counts toward grade improvement in Exam 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Code Review for the Fractal Homework | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | Quiz on Writing Functions at the Class Start
This quiz also counts toward grade improvement in Exam 1 Program Design Example: The Lander Program | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8. Week of Mar 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | Introduction to Arrays
Continuation of the Lander Example |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Practice for next week's lab quiz | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | More Practice Writing Array Functions
Continuation of the Lander Example | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9. Week of Mar 12 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture | Quiz on Writing Functions at the Class Start
This quiz also counts toward grade improvement in Exam 1 Introduction to Structs Discussion of the Bird Homework Start Another Programming Example (Snake Game) |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation | Lab Quiz: Functions to manipulate arrays | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thursday | Quiz on Writing Functions at the Class Start
This quiz also counts toward grade improvement in Exam 1 Continuation of Snake Game | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10. Week of Mar 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tuesday Lecture |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wednesday Recitation |
Thursday
| Review for the Exam
| Stump the Prof 11. Week of Apr 2
| Tuesday Lecture
| Second Exam
|
Wednesday Recitation
| Practice for Third Lab Quiz
| Thursday
| Controlling a CD Player
| Sample Audio Program 12. Week of Apr 9
| Tuesday Lecture
| Reading and Writing Files
| File Dialogs Example File Programs Maps Phonebook Program Answers to Last Week's Practice
Wednesday Recitation
| Third Lab Quiz
| Thursday
|
| 13. Week of Apr 16
| Tuesday Lecture
| Operation Overloading, Matrixes and 2D Graphics
|
Wednesday Recitation
| File I/O Exercise
| Thursday
| 3D Graphics
| 14. Week of Apr 23
| Tuesday Lecture
| Exception Handling
|
Wednesday Recitation
| Part I: Vectors
| Thursday
| Third Exam
|
| 15. Week of Apr 30
| Tuesday Lecture
| Suzanne's Lecture
|
Wednesday Recitation
| Part II: Vectors
| Thursday
| Programming with the .NET Framework
| Semester Review Finals' Week
|
Comprehensive Final Exam at 7:30am on Thursday, May 10
| |
Michael Main (main@colorado.edu) |
|