University of Minnesota
CSci 1113: C++ Programming
CSci 1113 Syllabus

CSci 1113

Introduction to C/C++ Programming for Scientists and Engineers

Spring 2020

(Last revised 1/19/2020)

Day class: Lecture (001): 11:15 A.M. - 12:05 P.M. Monday, Wednesday, Friday Keller 3-210


Night class:Lecture (010): 6:30 P.M. - 9:00 P.M. Tuesday Tate Hall 101



Name James Parker
Email jparker (at) cs (dot) umn (dot) edu
Office Shepherd Laboratories 391
Office Hours Please see the "Office Hours" file on the class homepage (below).
Class homepage

TAs: There are a number of TAs for the course. Their names, contact information, and office hours are posted in the "Office Hours" page on the class homepage.

Text: Walter A. Savitch, Problem Solving with C++ Pearson, (10th edition). There may also be other resources linked to the class web page.

Notes about the textbook:

  • You do not need the access code that comes with some copies of the textbook.
  • There are not many differences between the 8th, 9th and 10th edition of the textbook. So if you have an 8th or 9th edition you may use it. However, that case you are still responsible for making any material that is in the 10th, but not the other editions.

Class Website: Announcements and information are provided through the class cs homepage and Canvas webpage. It's important to stay abreast of the information on the site as it is important and may change occasionally.

General course description: This course covers algorithm development and the principles of computer programming using the programming language C++. Topics include introduction to computers and computing, program development, C/C++ programming language syntax, and elementary numerical methods for scientists and engineers.

Prerequisites: CSci 1113 does not assume any previous programming knowledge; however, it does have a prerequisite of Calculus 1 (either Math 1271 or Math 1371 or Math 1571H or instructor consent). Some material from Calculus I will be used in 1113; moreover, the mathematical and logical reasoning skills used in Calculus I also play a significant role in this class.

Course Content and Components: The course involves 2.5 hours of lecture and 3 hours of "hands-on" computing lab per week. In addition you should expect to spend 5-10 hours per week on independent homework and reading assignments.

Here is further information about the different parts of this course. "Assignment and Grading Policies," "Tips for Doing Well," and Collaboration Rules."

  • Lecture: The weekly lectures will be used to augment or reinforce material in the textbook. Some classes will be lectures used to present material or show examples, some will involve in-class exercises. Lecture slides and code will be posted online. You are responsible for all the material and announcements made in lecture, and if you happen to miss lecture you should arrange to obtain notes from a classmate.
  • Lab: This is a course where you learn largely by doing. Most weeks in this class will have a 3 hour computing lab. The labs provide you a place where you can practice solving hands-on computing problems in a collaborative environment where there is much TA help readily available.
    The labs are mandatory, so expect to attend each week. You have until your next lab to turn in the previous week's lab work, but warmup problems must be done in lab for credit. Challenge problems are worth 0.25 points extra credit (all other lab problems are worth 1 point). No lab grade will be dropped.
  • Individual Homework Assignments: There are a number of independent homework assignments during the course of the semester. Each homework assignment consists of several computational problems that must be solved and implemented in the C++ programming language. The homework assignments are nontrivial; on average, you should expect to spend a number of hours on each assignment.
    Unlike lab exercises, homework assignments are not collaborative efforts and must be completed on your own (unless the problem description explicitly says you may work in a group). See the above rules on collaboration for more details. You must ensure your code works on the lab computers; you will not get credit if it compiles on your machine but not the cselabs machines. Late homework submissions are not accepted, but the lowest homework grade will be dropped (as most homework consist of two parts, we will drop the lowest two parts across all homework (e.g. 4A and 5A)).
  • Examinations: There will be a short quiz, two midterm exams, and a comprehensive final exam. Dates for these are listed below. All exams will be open book/notes. You may use electronic notes if you want, but you cannot: use the internet, use a compiler, or use a phone.
  • Office Hours: Office hours are a key component of success. They permit flexible one-on-one interaction not possible in class. The instructor and TAs encourage you to visit. Note: you are welcome to go to any of the TA office hours. That is, you are not restricted to the office hours of the TAs in your lab section.

What you should expect to learn from this course: Upon successfully completing this course you should be able to:

  • write well-structured, correct, and efficient C++ code,
  • use good program design techniques and programming style in the code you write,
  • analyze problems and design programming solutions to them,
  • use numerical techniques such as numerical root finding and matrix manipulation in solving scientific and engineering problems.


Here is the amount each of the items will contribute to your overall grade:

Labs                                                             15% 
Individual Homework                                              30%
Quiz (Week 5: Day 2/19, Night 2/18)                               5%
Midterm 1 (Week 7: Day 3/4, Night 3/3)                           10%
Midterm 2 (Week 12: Day 4/15, Night 4/14)                        15%
Final Exam (Week 15: Day 5/11 at 10:30am, Night 5/12 at 6:30pm)  25%

Please note the important dates above carefully, as make-ups will be given only under extreme circumstances.

Grading for this course is on an absolute scale, so that the performance of others in the class will not negatively affect your grade. Final grades will be assigned based the following scale:

      93.0% -- 100.0%   A
      90.0% --  93.0%   A-
      87.0% --  90.0%   B+
      83.0% --  87.0%   B
      80.0% --  83.0%   B-
      77.0% --  80.0%   C+
      73.0% --  77.0%   C
      70.0% --  73.0%   C-
      67.0% --  70.0%   D+
      60.0% --  67.0%   D
       0%   --  60.0%   F
For S/N grading, a satisfactory grade (S) requires a weighted score of 70 or above.

Incompletes: will be given only in very rare instances when an unforeseeable event causes a student who has completed all the coursework to date to be unable to complete a small portion of the work (typically the final assignment or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentations must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such the unforeseeable event is apparent.

Expected effort and participation: This is a four credit class that involves considerable effort. Most students find that this class requires 10 -- 15 hours of work during most weeks.

Withdraws: You are free to withdraw from the class up to the end of the tenth week of classes. Withdrawing thereafter is up to the college, and is not automatic. If you are not doing as well as you had hoped and are considering withdrawing, please do so by that date.

Scholastic conduct: The amount of collaboration allowed on assignments is detailed here. In general, you are free to discuss assignments with others, but you must work out and write your own solutions. Copying others' answers, or letting another person copy your answers is a serious situation and can result in failing the course. If you have any questions about what is and is not allowable in this class, please ask the course instructor.

Disability Accommodations: We desire to make learning rewarding and fun for all students and make every attempt to accommodate anyone who has a desire to learn. If you require special classroom or test-taking accommodations, you need to contact the University Disability Services and also notify the instructor as soon as possible at the start of the semester (no later than 3 weeks prior to the first examination).

Students Mental Health and Stress Managment: As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student's ability to participate in daily activities. University of Minnesota services are available to assist you with addressing these and other concerns you may be experiencing. You can learn more about the broad range of confidential mental health services available on campus via

Other: Please check your registration carefully for accuracy.