CSCI 1300 Computer Science 1: Programming
Spring 2004
Karl Winklmann
Recent news items are below (all news items)
Thank you
Thanks everybody for putting in a lot of work during the semester. A special thanks to people who did demos in class.
|
|
CSCI 1300: Home page |
|
This page is on the web at www.cs.colorado.edu/~karl/1300.spring04.
The lectures will lead you through a sample project, discussing material from the book as needed. Your own project needs to end up being a significant variation of the project discussed in class and needs to use all the programming and language features listed in the grading guidelines below.
Michael Monday 3-5 ECCR 244 Jared Tuesday 11-12 ECCR 239 or 235 Joseph Tuesday 2-4 ECCR 252 Michael Tuesday 3-5 ECCR 244 Robert Tuesday 6:30-8:30 ECCR 239 (was 244) Curtis Wednesday 3-5 ECCR 239 Jared Wednesday 3-4:30 ECCR 239 or 235 Michael Wednesday 3-5 ECCR 244 Robert Wednesday 3:30-5:30 ECCR 244 (yes, back to 244) Yousef Thursday 5-7 ECCR 2nn (posted earlier, my mistake, as 3-5)
R111 0900AM-0950AM Wednesday Joseph Saliba R112 1000AM-1050AM Wednesday Robert Schreiner R113 1100AM-1150AM Wednesday Robert Schreiner R114 1200PM-1250PM Wednesday Jared Seehafer R115 0100PM-0150PM Wednesday Curtis Higgins R116 0200PM-0250PM Wednesday Jared Seehafer (there is no R117) R118 1000AM-1050AM Wednesday Karl Winklmann / Yousef AL-ALi R119 1100AM-1150AM Wednesday Michael Howe R120 1200PM-1250PM Wednesday Michael Howe R121 0100PM-0150PM Wednesday Michael Howe R122 0200PM-0250PM Wednesday Michael Howe
If you are comfortable with any text editor that's available in the labs feel free to use it to write your programs. Otherwise, you'll have to learn how to use an editor. A good choice would be EMACS, which is included in the above environment.
| Week | Class topics + reading assignments | Recitations | Programming Assignments + Project | |
|
| ||||
| 1. | January 13/15 |
Overview of course
Basics of C++ (Chapter 1) | Logistics | Assignment 1 posted (“Getting information from the user”) |
| 2. | January 20/22 | Flow of control (Chapter 2) | Working on Assignment 1 | |
| 3. | January 27/29 | Function basics (Chapter 3) | Finishing Assignment 1 |
Assignment 1 due Wednesday, January 28
Assignment 2 posted (functions for menu and for graphical output, “moving things around”) |
| 4. | February 3/5 | Parameters and overloading (Chapter 4, Sections 4.1 and 4.2) | Working on Assignment 2 | |
| 5. | February 10/12 | Arrays (Chapter 5), mouse, icons, buttons [This has changed from earlier versions.] | Finishing Assignment 2 |
Assignment 2 due Wednesday, February 11
Assignment 3 posted (“moving many things around”) |
| 6. | February 17/19 | Examples, questions, project ideas (no new material) [This has changed from earlier versions.] | Working on Assignment 3 | |
| 7. | February 24/26 |
Structures and classes
(Chapter 6)
Separate compilation (Section 11.1) [This has changed from earlier versions.] | Finishing Assignment 3 |
Assignment 3 due Wednesday, February 25
Assignment 4 posted (“different kinds of things moving and interacting”) |
| 8. | March 2/4 | Arrays of objects; constructors, friends, operators (Section 7.1 and Chapter 8 through page 335) | Working on Assignment 4 | |
| 9. | March 9/11 | Constructors, friends, operators, continued | Working on Assignment 4 | |
| 10. | March 16/18 | Strings and file I/O (Chapter 9 and Section 12.1) | Finishing Assignment 4 | Assignment 4 due Wednesday, March 17 (not March 10 as posted earlier) |
| March 23/25 |
Spring Break |
|||
| 11. | March 30/Apr 1 |
Recursion
(Chapter 13)
Pointers and dynamic arrays (Chapter 10) Testing and debugging (Section 4.3) |
Finalizing project description | Project description due Wednesday, March 31, in the lab (The completed project itself is due later, see below.) |
| 12. | April 6/8 | Various useful things (such as command-line parameters, inheritance, templates, exception handling, the Standard Template Library) | Working on Project | |
| 13. | April 13/15 |
April 13: Various useful things, continued.
April 15: Special Topic (not normally CSCI 1300 material). |
Working on project | |
| 14. | April 20/22 |
Course evaluation (Tuesday, April 20)
Demos |
Finishing project | Project due Wednesday, April 21 |
| 15. | April 27/29 | Demos, continued | Project demos | |
| There will be no final exam. | ||||
|
| ||||
Points are earned in these categories (some of which will be covered by the assignments and all of which need to be in the final version of your project):
Use of these language features (some of which will have to be done as part of the four assignments): Keyboard input, text output ........................ 40 (Assignment 1) Functions, parameters .............................. 40 (Assignment 2) Graphics ........................................... 40 (Assignment 2) Mouse handling ..................................... 40 (Assignment 3) Arrays ............................................. 40 (Assignment 3) Classes and objects Constructors ................................... 40 (Assignment 4) Input and output operators ..................... 40 (Assignment 4) Member functions and operators ................. 40 (Assignment 4) User-defined operators ............................. 40 (Project) Dynamically allocated arrays ....................... 40 (Project) File I/O ........................................... 40 (Project) Command-line parameters ............................ 40 (Project) Exception handling ................................. 40 (Project) Use of library classes ............................. 40 (Project) Useful comments, meaningful variable names, indentation that follows the syntax of the language .......... 40 (Project) Being able to explain all the workings of your program and make small modifications quickly in the lab .... 100 (Project) Sophistication of your project (including how different it is from the class demo) ............... 300 (Project) _______________________________________________________________ Total ....... 1000 Turning an assignment or the project in late ......... -20 per dayThere is no extra credit work.
Getting 900 or more points guarantees you an A, getting 800 or more points guarantees you at least a B, getting 700 or more points guarantees you at least a C, getting 600 or more points guarantees you at least a D, getting less than 600 points will get you an F. +/- grades will be given to raise some grades.
| © 2004 Karl Winklmann | 5:53 PM, Thursday, April 29, 2004 |