Course Information (Spring 2008):
 
Course Description: Computer programming in a contemporary language such as C++ or Java, using software engineering techniques. Problem solving, program design, documentation, debugging practices. Language skills: input/output, control, repetition, functions, files, classes and abstract data types, arrays, and pointers. Introduction to operating systems and object-oriented programming. Application to problems in science and engineering.
Current Session:
Course Schedule
Lab Assignments
 
SectionDayTimeRoom Instructor Email
A:MW9:00GC 249Keith Hellman khellman@mines.edu
F9:00CTLM 129
B:MW10:00GC 257Tracy Camp tcamp@mines.edu
F10:00CTLM 129
C:MW1:00MH 375Keith Hellman khellman@mines.edu
F1:00CTLM 129
D:MW2:00GC 257Chris Turiano cturiano@mines.edu
F2:00CTLM 129
Course Format: The course will be conducted in a lecture format on Mondays and Wednesdays and a lab format on Fridays.  There will be 12 labs with required submissions and a larger final project. The final project will include more problem solving than the other labs, and will provide a brief introduction to program design. Lab descriptions will be added to the course web page as the course progresses. (See Lab Assignments link above.)

Some labs may be completed during the Friday lab session; most labs will require additional homework time.  The deadline for all labs will be 11:59 pm on the due day.  All assignments must be submitted electronically.  Procedures for electronic submission will be explained during the first lab.

A teaching assistant (TA) will grade all labs and the final project; the instructor will grade all exams. All grade discussions should be directed toward the instructor.

Course Goals: The objectives of this course are to introduce students to (1) C++, a contemporary programming language, (2) software engineering techniques, and (3) programming skills for solving science and engineering problems. To achieve these objectives, we will use Microsoft's Visual C++ Express.

Upon completion of this course, you should know:

  • How to write a respectable computer program
  • The basics of the C++ programming language
  • How to solve a variety of science and engineering problems with computer programs
Required Textbook: Delores Etter and Jeanine Ingber, Engineering Problem Solving with C++ Prentice Hall, 2003.
 
Computer Facilities and Assistance:
You need an ADIT account to use the lab machines in the Computer Commons, library, and CTLM, which most students create during EPICS. If you do not have an ADIT account, you need to know your eKey (personal identification code used to create your webmail account) and visit http://newuser.mines.edu/adit prior to the first lab. If you do not know your eKey, contact the Computer Commons Help Desk in room 156A of CTLM.

Friday lab sessions will be held in room 129 of the CTLM. Work for this course outside of Friday labs can be done at the Computer Commons (room 156 of CTLM), at the library, or on your home computer.

Help: Teaching Assistants (TAs) will be available in the Computer Commons (room 156) for additional help with labs. For Spring 2008, TAs will be available each Monday from 4pm-8pm according to the following schedule.

 
4-5:30pm5:30-6:30pm6:30-8pm
TinaAlanDoug & Matt

Note: Tina will also be available electronically from approximately 9:30pm to 11pm. Email your instructor for her contact information.
 
Student Evaluation
Labs and Final Project Exam I Exam II Final Exam
40% 15% 15% 30%


NOTE: YOU MUST PASS (60% OR HIGHER)
THE FINAL PROJECT AND FINAL EXAM TO PASS THIS COURSE


Late work: The general policy for this course is that late work is not acceptable. To do well in this course, you must keep up with the assignments. The late policy for this course follows.

  • 20% deduction for one day late (e.g., by 11:59 pm Tuesday for a lab due at 11:59 pm Monday)
  • 40% deduction for two days late (e.g., by 11:59 pm Wednesday for a lab due at 11:59 pm Monday)
  • You need instructor approval to submit a lab more than two days late
 
Collaboration Policy for Programming Projects in MCS Courses
The following policy exists for all CS courses in the MCS department. This policy is a minimum standard; your instructor may decide to augment this policy.
  1. If the project is an individual effort project, you are not allowed to give code you have developed to another student or use code provided by another student. If the project is a group project, you are only allowed to share code with your group members.
  2. You are encouraged to discuss programming projects with other students in the class, as long as the following rules are followed:
    1. You view another student's code only for the purpose of offering/receiving debugging assistance. Students can only give advice on what problems to look for; they cannot debug your code for you. All changes to your code must be made by you.
    2. Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical or otherwise] of the discussion.
  3. Any material from any outside source such as books, projects, and in particular, from the Web, should be properly referenced and should only be used if specifically allowed for the assignment.
  4. If you are aware of students violating this policy, you are encouraged to inform the professor of the course. Violating this policy will be treated as an academic misconduct for all students involved. See the Student Handbook for details on academic dishonesty.


                   All labs for CSCI 261 are to be individual efforts
                            unless explicitly stated otherwise.