University of Minnesota
Introduction to C/C++ Programming for Scientists and Engineers

CSCI 1113 - Introduction to C/C++ Programming for Scientists and Engineers

Fall 2017 Syllabus –Version 1 (It Will likely Change, so check it frequently)

Section 1 (Course Number 21599) - Day

Section 10 ( Course Number 21603) - Night



Dr. Dan Challou

Office: 587 Shepard Labs (This is very likely to change this semester)

Phone: 612-625-8207 

Office hours:      TBD


Lecture Meeting Days, Meeting Time, and Location  for Day  (Section 1)

Monday, Wednesday, Friday

3:35 – 4:25pm

Keller Hall 3-210


Lab Sections , Meeting Days, Meeting Time and Locations for Day (Section 1)

Sec. 2: Monday,                5:45pm  – 8:45pm            Keller Hall, 1-250

Sec. 3: Monday,                5:45pm  – 8:45pm            Keller Hall, 1-260

Sec. 4: Tuesday,                5:45pm  – 8:45pm            Keller Hall, 1-250

Sec. 5: Tuesday,                5:45pm  –  8:45pm           Keller Hall, 1-260

Sec. 6: Wednesday,        12:20pm – 3:20pm             Keller Hall, 1-262

Sec. 7: Wednesday,          5:45pm  – 8:45pm            Keller Hall, 1-260


Lecture Meeting Days, Meeting Time, and Location  for Night  (Section 10)


6:30 – 9:00pm

Molecular Cellular Biology 3-120


Lab Sections , Meeting Days, Meeting Time and Locations for Night (Section 10)

Sec. 11: Wednesday,       5:45pm  –  8:45pm           Keller Hall, 1-250

Sec. 12: Thursday,            11:15am – 2:15pm           Keller Hall, 1-250

Sec. 13: Thursday,            2:30pm  –  5:30pm           Keller Hall, 1-250

Sec. 14: Thursday,            5:45pm –   8:45pm           Keller Hall, 1-250

Sec. 15: Friday,                  8:00am –  11:00am          Keller Hall, 1-260

Sec. 16: Friday,                 11:15am – 2:15pm           Keller Hall, 1-260



Graduate Teaching Assistants



Final Exam Day (Section 1)  Final Exam: Tuesday December 19th , 10:30am– 12:30pm in Keller Hall Room 3-210


Final Exam Night (Section 10) Final Exam: Tuesday December 19th, 6:30am – 8:30pm in Molecular Cellular Biology Room 3- 120




Walter Savitch, Problem Solving with C++, 10th edition., Pearson, 2018.


Note: The use of e-books is discouraged for this class. You should obtain a new or used

hard-copy  of the textbook. Certain exams,  quizzes, or exercises may permit  "open-book"  access, however e-books or print-outs from electronic sources will not be allowed in these circumstances.


Course Description:

This course covers algorithm development and the principles of computer programming using the

imperative language C++. Topics include introduction to computers and computing, program

development, C/C++ programming language syntax, and elementary numerical methods for

scientists and engineers.



Csci 1113 does not assume any previous programming knowledge; however it does have a

prerequisite of Calculus I. Some material from Calculus I will be used in 1113; moreover, the

mathematical and logical reasoning skills used in Calculus I may also play a heavy role in this class.


Information about the class (Examples from Lecture, Lab & Homework Assignments, etc.):


All announcements and class information are provided via our class Moodle webpage. It's very

important to stay abreast of the information on the site because it often changes. The reading and

assignment schedule is actively updated and you should check it frequently.  To access the class

Moodle page use the following URL:



The class schedule is maintained on the class moodle site and subject to change without notice. You

should check the online schedule frequently for announcements and updates.


Office Hours

TA Office hours are available on a walk-in basis during numerous times throughout the week.


What you should expect to learn from this course


Upon completing this course you should be able to:


• analyze problems and design programming solutions to them,

• write well-structured, correct and efficient C++ code,

• use good program design techniques and programming style in the code you write,

• use numerical techniques such as numerical root finding and matrix manipulation in

   solving scientific and engineering problems.



Course material that is not covered in the textbook is covered during lectures, and that material is not generally made available outside lectures. Since you are responsible for this material it is very important

to attend all lecture sessions. Some lecture examples may be posted online, however lecture notes are

not posted and are not available from the instructor.  If a lecture is missed, it is your responsibility to

arrange to obtain notes from a classmate.


Weekly Labs

There are a total of 13 weekly computing labs for the night class and 14 weekly computing labs for the Day class . The labs include a variety of exercises that introduce key concepts through hands-on programming exercises in a mentored and collaborative setting. The exercises are designed to expose you to essential computer science concepts and language features that you will use to complete the homework assignments and on which you will be tested.

The lab exercises also expose you to interesting problems and provide a sense of the breadth of

computing applications. The core part of each lab is intended to be successfully completed by all

student pairs during a single 2-hour lab session. Most of the labs contain an optional part that explores the concepts at a deeper level; after you've completed the required core, you can go onto the optional part to enhance your learning and understanding.

Lab attendance is mandatory, as the weekly lab exercise must be completed and checked before the end of the lab session. Labs should be completed with a partner of your choosing, and that partner should have a computing background similar to yours.  Lab TA’s will assist you in finding a partner if necessary.  Lab exercises are graded on a "pass/fail" basis. Note, one of the criteria for passing the class is that you must pass a minimum of 11 of the 13 (Night Class) or 11 of 14 (Day Class) labs to obtain a passing grade for this class.

This is a course where you learn by doing. Class and  Lab exercises are designed to help you gain familiarity with new material in a supervised and freely collaborative setting where you may seek help from the TAs, other students, or any other reference material provided that you do not directly copy any other person's work or include any portion of someone else's work in your solution.


Individual Programming Assignments


25% of your final grade consists of independent programming assignments that vary in

complexity and difficulty. Unlike lab exercises, programming assignments are not collaborative

efforts and must be completed on your own without the assistance of anyone other than the course

Instructor or TAs. Each programming assignment consists of one or more computational problems

that must be solved and programmed in the C++ programming language. On average, you should

expect to spend 6 - 12 hours on each homework assignment.

Programming assignments are graded on correctness, completeness, and style. Correctness and

completeness refer to how well the program works. Style includes good design, readability

(proper use of indentation , descriptive names for variables and procedures, appropriate use of blank or “white” space, etc.), and useful comments.

Note that individual programming assignments are submitted electronically and are automatically scanned for plagiarism violations. It is essential that you carefully follow the submission instructions precisely or your assignment will not be accepted for grading.  Failing to properly submit an assignment will result in a score of zero.



There are two written midterm exams (20% each) and a comprehensive written final exam (25%).

The exams are not team efforts; all exam responses must be your own. No electronic devices are

allowed during exams. This includes calculators, cell phones, laptops, MP3 players, etc. All exams

for this class are closed-book with restricted notes. Restricted means that you may bring a single,

8.5 x 11 sheet of paper with handwritten notes only (one or both sides).  No printouts or xerox

copies are allowed.


In-class Quizzes and Exercises


Short unannounced quizzes and exercises will be periodically administered during lectures without prior notice. These quizzes will generally cover material from reading assignments, prior lectures and homework assignments.  Random in-class quiz and exercise scores selected by the Instructor will be included in your semester grade. Your lowest quiz or exercise score will not be counted in your grade.




Your final grade will be based on the following weights:


10%       Select In-Class Exercises and In-Class Quizzes

25%       Individual programming assignments

40%       Two Written midterm exams @ 20% each

25%       Comprehensive written final exam


Note in addition to the grading criteria specified below,  you must pass 11 of the 13 weekly lab exercises(day class) or 11 of 14 weekly lab exercises (night class)  -  AND also achieve a minimum score of 50% on the final exam to pass the course.  Failure to do so will result in a failing grade.


Grading is on an absolute scale. The grade cutoffs are as follows based on the total

weighted score for the course:


A     94 … 100

A-     90 … <94

B+   87 … <90

B     80 … <87

B-    78 … <80

C+   76 … <78

C     70 … <76

C-    68 … <70

D+   65 … <68

D     60 … <65

F      < 60


For S/N grading, a satisfactory grade (S) requires a weighted score of 68 or above.


Class Policies


Please read and understand the following policies. To be consistent and fair to all students in

the class, these policies will be strictly enforced without exception:


Computing Labs


All labs and programming assignments are intended to be completed on CSE Labs UNIX machines;

there are various CSE Labs throughout campus containing such machines available for your use. We

will be using the C++  programming language for this class. C++ is freely available for a variety of machines and you are welcome to do your individual work on the system of your choice -

however, your work will be graded using, and must function correctly on, the CSE Labs UNIX machines.

Therefore, if you work on your programming assignments using a different system, it is your

responsibility to ensure that your program works on the CSE Labs machines before submitting it. Note

that we do not provide any assistance for environments other than CSE Labs machines.


Grading Issues


Grading is performed by class TAs and supervised by the graduate TA. If you have a question about

grading, contact the graduate TA directly. It is your responsibility to report grading issues (missing

or incorrect grades) within one week of the original posting date. Grade issues reported more than

one calendar week (7 days including weekend days) following the posting date will not be considered. You are responsible for promptly verifying that your assignment and examination grades have been properly recorded on Moodle, so check your grades regularly.  It is your responsibility to provide proof of a missing/incorrect grade.


Make-up Labs and Examinations


Due to the physical limitations of the computer lab, make-up lab exercises cannot be provided

regardless the legitimacy of absence. To accommodate situations such as illness, religious

observance or University sponsored activities, up to 3 labs may be missed without penalty. If you miss or fail to pass more than 3 labs, you have failed to complete a significant portion of the course and will receive a failing grade.


Make-up exams will only be considered for legitimate absences defined by University policies. For a

make-up exam to be considered, the student must contact the instructor at least one hour prior to the

start of the exam. Failure to notify the instructor prior to the start of the exam will result in an

assigned grade of zero.


Late Policy for Homework Assignments


Completed Lab/Programming Assignments must be submitted on or before the assigned due

date/time. Late assignment submissions will not be accepted. This means that there is no sliding

grade penalty; late work will receive a score of zero. Programming assignments often take more time

than anticipated, therefore you should plan to complete the assignment as early as possible to allow

for contingencies such as illness, religious observance or other activities.




A grade of incomplete is generally not considered or granted. 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 poorer than expected performance. Verifiable documentation must be provided for the incomplete to be granted,

and arrangements for the incomplete should be made as soon as such an event is apparent.


Class Conduct

Students are expected to treat their fellow students in the class, the instructor, and the teaching

assistants in a respectful manner. This includes arriving at class on time and staying until the end of

class (arriving late and leaving early are distracting to your instructor and classmates, and

interferes / impedes group work). Talking to neighbors, reading newspapers, using a laptop for anything but course-related work, and sleeping during lectures are also distracting and disrespectful to others, thus refrain from doing so.



You are free to withdraw from the class up to the end of the day on Monday, November 13th. Withdrawing thereafter is up to the college and is not automatic. If you are not doing as well as you had hoped in the course and are considering withdrawing, you should do so before Monday, November 13th.


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. Students registered with Disability Services, who

have a letter requesting accommodations, need to contact the instructor early in the semester to discuss the accommodations outlined in their letter (no later than 3 weeks prior to the first



Disability Services (DS) is the campus office that works with students who have disabilities to

provide and/or arrange reasonable accommodations. The DS website is:

Students who have, or think they may have, a disability (e.g. mental health, attentional,

learning, vision, hearing, physical or systemic), are invited to contact DS to arrange a

confidential discussion at 612- 626-1333 (V/TTY) or


Student Mental Health and Stress Management

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, etc. 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


Sexual Harassment

Sexual harassment means unwelcome sexual advances, requests for sexual favors, and/or other verbal or physical conduct of a sexual nature. Such conduct has the purpose or effect of unreasonably interfering with an individual's work or academic performance or creating an intimidating, hostile, or offensive working or academic environment in any University activity or program. Such behavior is not acceptable in the University setting. For additional information, please consult Board of Regents Policy:


The following link provides information on how to report Sexual Harrassment, Sexual Assault, Relationship Violence, or Stalking:




Scholastic Conduct:


Academic dishonesty is a very serious matter, and consequences for academic dishonesty can result in failing the course and/or more severe disciplinary action. Academic integrity is essential to a positive teaching and learning environment. All students enrolled in University courses are expected to complete coursework responsibilities with fairness and honesty. Failure to do so by seeking unfair advantage over othersor misrepresenting someone else's work as your own, can result in disciplinary action. The

University Student Conduct Code defines scholastic dishonesty as follows:


•  submission of false records of academic achievement

•  cheating on assignments or examinations

•  plagiarizing, altering, forging, or misusing a University academic record

•  taking, acquiring, sharing or otherwise using course materials without faculty permission

•  falsifying records or dishonestly obtaining grades, honors, awards, or professional

    endorsement, either acting alone or in cooperation with another

•  use of a prohibited device during an examination


Group Work


In the context of this course, we will specify whether assignments are individual or group work.

For the rest of this section, “you” refers to you as an individual or you as a group, as appropriate,

and “others” refers to other individuals or groups. The work you turn in for a graded assignment

or exam must be your own. This means that on written assignments you must create and write your

own work, and on programming projects you must design, implement, debug, and test your

program on your own without the assistance of anyone other than the course instructor or TAs. In

addition, copying, assisting, or collaborating on an exam is misconduct, as is changing your

answer after the exam is returned and then asking for re-grading. Claiming emergency when none

exists, in order to obtain special consideration on homework or exams, is also considered



The following is a partial list of actions that are specifically related to the activities of this class

that are deemed egregious misconduct:




Webster's online dictionary defines plagiarism as: "a piece of writing that has been copied from

someone else and presented as being your own work" or "the act of appropriating the ideas and

language of another, and passing them for one's own".

Note that copying any portion of someone else's program for a homework solution, or submitting any portion of program code obtained from "outside" resources such as Internet web sites without including a proper citation is considered plagiarism and is a serious breach of ethical academic

conduct. Doing so will result in sanctions ranging from a grade of zero for the assignment coupled with the reduction of a student’s final letter grade by one letter (e.g. from an A to a B), to failing the course.  If you copy work and cite it on an assignment you were supposed to do by yourself, you will receive a grade of zero, and your final grade will be reduced by one letter.




Unauthorized Disclosure/Distribution of Course Materials


The University of Minnesota definition of Scholastic Dishonesty includes, "taking, acquiring, sharing

or otherwise using course materials without faculty permission". Note that the materials provided in

this course (including problem descriptions or portions of problem descriptions) are the property of

the instructor and may not be shared with others or posted to Internet web sites without instructor

authorization. Doing so is considered academic misconduct and will result in failing the course.


Aiding Others in Academic Misconduct


Aiding and abetting another student in an act of scholastic dishonesty is a very serious offense.

This includes showing or otherwise providing your program code or test solutions to another student.

Note that you are required to electronically submit homework assignment solutions to be graded and

checked using a software similarity measurement system.


If the exam or program source code you've submitted is subsequently determined to be a copy of another submission, all parties associated with the identified exams or program codes will, at a minimum, receive a grade of zero for the entire exam or homework assignment regardless of whom actually did the work, and a reduction of their final grade by one letter grade (e.g., if the student was to receive an A, they will receive a B).  A second violation of this policy will result in an assigned grade of 'F' for the class.


Simply stated, do not share your exam or homework solutions with anyone.


Sharing Passwords


In no case should your CSE Labs account and/or password be shared with anyone. Divulging your

private account password to anyone else (including a lab partner) is a violation of the acceptable use

policy for CSE Labs accounts and will result in account termination. In addition, knowingly

divulging an account password to another person in order to share solutions to assignments, quizzes

or examinations is a serious violation of acceptable scholastic conduct and will result in an assigned

grade of 'F' for the class.

This is a partial list of specific examples and not intended to be complete. Any other egregious act

of Scholastic Misconduct will result in failing the course.


It should be re-emphasized that cheating, including two different people or groups sharing

code for a programming assignment, will result in severe penalties, typically failing the

course and a notification being sent to the CS Department and the CSE Dean. If you have

any questions about what is and is not allowable in this class, please ask the course instructor