Main navigation | Main content
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
Instructor
Dr. Dan Challou challou@cs.umn.edu
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)
Tuesday
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
TBD
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
Textbook
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.
Prerequisites
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: https://moodle.umn.edu
Schedule
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.
Lectures
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 TAs 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.
Examinations
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.
Grading
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.
Incompletes
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.
Withdraws
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
examination).
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: http://ds.umn.edu
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 ds@umn.edu
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 http://www.mentalhealth.umn.edu/.
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:
http://regents.umn.edu/sites/default/files/policies/SexHarassment.pdf
The following link provides information on how to report Sexual Harrassment, Sexual Assault, Relationship Violence, or Stalking:
http://oscai.umn.edu/report-incidents/reporting-sexual-assault
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
misconduct.
The following is a partial list of actions that are specifically related to the activities of this class
that are deemed egregious misconduct:
Plagiarism
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 students
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