CS 171: Intro to C++ Programming for Engineers
Spring 2008
Syllabus

 

Course description: This two-credit course provides an introduction to programming using C++.  Emphasis on structured programming concepts, with a brief discussion of object-oriented programming.  Control structures, expressions, input/output, and arrays.

 

Pre-requisites:  You must have successfully completed MATH 113 or MATH 115. 
 

Professor: Rebecca Bates

Computer Science

Wissink Hall 231

Phone: 507-389-5587

Fax: 507-389-6376

Email: bates@mnsu.edu

 


Course Website

http://bates.cs.mnsu.edu/cs171
Check the website regularly for announcements and updates. 


Course Hours and Location

Lectures T 3-4:30pm

TR E225

Lab 01: Th 3-3:50

WH 119

Lab 02: Th 4-4:50

WH 119


Office Hours

Monday

Tuesday

Wednesday

Thursday

Friday

by appointment 1-2:30, 4:30-5:30 1:30-2:30* 1-2:30* 2-4**

*will be in WH 283 so that you can work on the machines while I am there.
**will be held in the ACC or WH231.  See class notes for canceled days.
***There will be additional hours on Friday afternoon with the graduate assistant.  Check webpage for times.

 

If things that are useful for the entire class come up, they will be posted on the announcement section of the class webpage so please check it regularly.

 

Tutoring Hours

C++ tutoring will be available each day in WH 283.  The schedule will be posted outside the room.


Course Materials

Required Text: Engineering Problem Solving with C++, Delores M. Etter & Jeanine A. Ingber, Prentice Hall, 1st editon (2003) or 2nd edition (2008).


Course Goals

This course will provide a general understanding of the use of a programming language for the solution of engineering problems.  In particular, students will gain experience programming in C++ using the Microsoft Visual Studio development environment.  Object-oriented programming concepts will be introduced.  Students can expect to have a basis for learning more complex programming and problem solving concepts.  Students will also have a collection of programs that can be used as a basis for future programming projects. 

 

Course Objectives

  1. Students will be able to describe programming concepts such as functions, variable declaration, assignment operations, selection structures (e.g., if-then-else statements), repetition structures (e.g., for loops), and arrays.
  2. Students will be able to develop algorithms that use the above concepts.
  3. Students will be able to construct and interpret flow charts.
  4. Students will be able to solve numeric and statistical problems using C++.
  5. Students will be able to write, compile, run and debug C++ programs.

Class Schedule
This schedule is subject to change. It generally follows the course text.  Specific assignments and objectives will be added to the course web page.  

  1. Ch. 1: Introduction & Problem Solving

  2. Ch. 2: Simple C++ Programs: Data types, operators and standard input/output

  3. Ch. 3: Control Structures: Algorithms, logical operators, selection and repetition structures

  4. Ch. 4: Working with Data Files

  5. Ch. 5: Modular Programming with Functions (introduction only)

  6. Ch. 6: One-Dimensional Arrays: Arrays and C++ classes

  7. Ch. 7: Two-Dimensional Arrays and Matrices

  8. Spreadsheet use

Grading
Homework and Lab work: 40%
Midterm Exams: 40%         These exams will be written and practical (lab based).
Final exam: 20%


Exam Dates

Midterm 1:  Written February 26
                  Practical February 28

Midterm 2:  Written April 8
                Take home exam assigned April 9, due 4pm April 11

Final: Monday, May 5, 2:45-4:45pm


Homework and Exams

    The homework for this course will include problems from the book as well as programming projects.  Lab work will often require some preparation before class.  All programs must be thoroughly commented for full credit.  We will discuss commenting code before any programming assignments are due.  Expect to spend at least 4 hours per week outside of class on reading and assignments.  Homeworks will be due at the beginning of each lab class.  Lab work will be due by 5pm on Fridays.  Electronic submission of your code and results is required.  Details for submission will be discussed in class and on the website.

    Your exams will be based on information gained through both homework and lab experience as well as material covered in lectures and the book.  There will be short-answer and discussion questions as well as problem solving and actual programming.  Exams will have a lab component as well as a written component.


Grading Policy

Homework will be graded on a 0-4 basis, where:
    •  4: complete and mostly correct with strong attempts at all problems
 
   •  3: mostly complete, good approach, some mistakes
    •  2: incomplete or poor approach
    •  1: incomplete and poor approach
    •  0: nothing turned in

Exams will be graded based on correctness and completion.  Point values and/or rubrics will be distributed with the exams.  The final course grade will be assigned based on the above grading distribution. 

 

Expectations of Students

Course Tools

Disabilities
Students who may need accommodations for a disability can make an appointment to see me during my office hours to discuss your needs.

 

Academic Honesty
By staying enrolled in this class, you agree to abide by the University's Policy for Academic Honesty which appears in the Student Handbook under the section heading "Academic Honesty". If you have questions about the policy please contact me, your advisor, or another faculty member PRIOR to engaging in a "dishonest" act. Failure to abide and respect the Academic Honesty Policy will result in severe penalties as allowed by the University.  I want to point out to you the following expectation, which comes directly from the University's Statement of Student Responsibilities:

In order for an academic community to teach and support appropriate educational values, an environment of trust, cooperation and personal responsibility must be maintained. As members of this University community, students assume the responsibility to fulfill their academic obligations in a fair and honest manner. This responsibility includes avoiding such inappropriate activities as plagiarism, cheating or collusion. Students found responsible for one or more of these activities may face both academic sanctions (such as lowering a grade, failing of a course, etc.) and disciplinary sanctions (such as probation, suspension, expulsion).

It is the intent of Minnesota State University, Mankato to encourage a sense of integrity on the part of students in fulfilling their academic requirements. To give students a better understanding of behaviors that may constitute academic dishonesty, the following definitions are provided:

 

Plagiarism – Submission of an academic assignment as one's own work, which includes critical ideas or written narrative that are taken from another author without the proper citation. This does not apply only to direct quotes, but also to critical ideas that are paraphrased by the student.

Plagiarism includes but is not limited to:

Cheating — Use of unauthorized material or assistance to help fulfill academic assignments. This material could include unauthorized copies of test materials, calculators, crib sheets, help from another student, etc.

 

Collusion — Assistance to another student or among students in committing the act of cheating or plagiarism.