Syllabus

This course introduces fundamental computer programming concepts using a high-level language and a modern development environment. Programming skills include sequential, selection, and repetition control structures, functions, input and output, primitive data types, basic data structures including arrays and pointers, objects, and classes. Software engineering skills include problem solving, program design, and debugging practices.

Well, that's the official, boring description. The goal of this course is to open your mind to computational thinking, to educate you to leverage programs as tools in your field of study, and to empower you with a fundamental knowledge of programming. We will use C++, Visual Studio, a multimedia toolkit (called SFML), and an animated interactive textbook to reach these goals.

Required Textbook (electronic)

zyBook for Colorado School of Mines
CSCI 261 (Spring 2016): Programming in C++
To purchase book ($48):

  1. Go to zyBooks
  2. Create an account (use your mines.edu email address)
  3. Enter zyBook code: MinesCSCI261Spring2016
  4. Select your section/instructor
          A:5pm, B:9am, C:10am, D:11am, E:12pm, F:1pm
  5. Pay with a credit card

Optional Textbook (if you also want an actual book)

Cay Horstmann

C++ For Everyone

2nd edition, Wiley, 2010.
ISBN 0470927135.



Course Goals

The objectives of this course are to introduce you to:

Upon completion of this course, you should know:

Computer Facilities and Assistance

All students will need access to various campus computing systems this semester. If you do not have an ADIT account, you need to know your e-key (an identification code used to create your email account) and visit http://newuser.mines.edu/adit right away. See http://ccit.mines.edu/Getting-Started for more details. If you do not know your eKey, contact the Computer Commons Help Desk in room 156A of CTLM.

We will use Microsoft Visual Studio C++ 2015 for this course. It is already installed on all lab and computer commons machines. If you want to install it on your own computer, we recommend installing the Express edition, which is free. See the document “How to set up your development environment” for more instructions.

Student Evaluation

Your course grade consists of 1000 points, with the following components.

Component Points Weight
zyBook Use 70 7%
Lab/Homework (12) 300 30%
Final Project 70 7%
Quizzes (6) 60 6%
Exam I 150 15%
Exam II 150 15%
Final Exam 200 20%

Your final course letter grade will be based on a standard grading scale, with + and - grades on the highest and lowest third of each category. There is not a curve.

You must pass the final exam and the final project (at least 60% on each) in order to pass this course.

Assignments

Approximately 500BC, Confucius said "I hear and I forget. I see and I remember. I do and I understand." Assignments in this course have been created to ensure you understand.

First, we will assign several sections within our animated interactive textbook (zyBook); your grade for zyBook Use will depend on the textbook percent you complete. (See "How to Use zyBooks” for details.) Second, the labs, HW assignments, and final project give you the necessary ‘hands on’ programming experience for learning the material; all assignments will be submitted via Blackboard. Third, quizzes will cover the material presented in class as well as any material assigned in our zyBook; the purpose of the quizzes is to encourage you to keep up with the course material.

Grades will be entered in Blackboard within one week of submission. After assignment grades are posted on Blackboard, students have one week to review and contest an assignment grade. Assignments may not be re-submitted after they have been graded.

All assignments are due at 8AM on the date specified, unless stated otherwise. Lab/Homework assignments are due on Wednesdays at 8AM for full credit; submission by the following Monday (8AM) can only earn up to 50% of the points, unless an approved absence is submitted.

Expectations

You are expected to attend all classes, to come prepared, and to actively participate in the learning process. If you want to send email, post on Facebook, or play Solitaire, then stay home. Attendance is not tracked, but there is a high correlation between attendance and success in this course. If you need to miss a class, talk to a peer to learn what you missed. To do well in this course, you must keep up!

Support

See “How to get help” for CSCI 261 support. Information on other tutoring, academic enrichment workshops, and academic counseling can by found at http://casa.mines.edu. If you qualify for disability accommodations, meet with your instructor to ensure accommodations are met.

Collaboration and Academic Integrity

You are required to read and to abide by the CSCI 261 collaboration policy and the Mines Honor Code. See “Collaboration Policy” (under Resources) for more information.