CS 113 Course Information
Contents
Registration information
Name |
CS 113: Introduction to C |
Semesters Offered |
fall, spring |
Credit Hours |
1 |
Prerequisites |
COM S 100 or an equivalent course in Java or C++ |
Grade Option |
S/U only |
Course Description |
The goal of this course is to teach the fundamentals of the C
programming language. By the end of this course, a student should
have sufficient mastery so that details of the language not discussed
in the class can be learned independently by reading a book (such as
"The C Programming Language" by Kernighan and Ritchie). In addition,
by the end of the course students should feel comfortable writing
simple C programs, and have working experience with all major C
features.
|
Course Website |
http://www.cs.cornell.edu/courses/cs113/ |
Course Newsgroup |
cornell.class.cs113 |
A complete listing of course topics can be found at Lecture Notes.
Refer to posted advice for information about other
introductory programming courses if you need help in deciding
whether or not to take CS 113.
Staff
Instructor
|
David Crandall
crandall
["at"] cs.cornell.edu
340 Upson
office hours: Wednesdays 11-12, Fridays 1:30-2:30
or by appointment
|
Communication
The course staff will use a variety of means to communicate with students outside of lectures.
To ensure that you receive these communications, you have the following responsibilities:
- Attend all classes, where we will often make announcements.
- Monitor the website every day for new announcements.
- Monitor the newsgroup. If you have trouble, refer to the
USENET Information document for help on accessing the newsgroup.
- Read your e-mail regularly.
To reach a staff member, the best time is office hours. Please post general
questions to the newsgroup so that others can benefit from your question.
Someone will respond within one working day. Note that posts in USENET
are subject to the rules of academic integrity, so you should not post solutions.
Generally, rough algorithms or non-solution-specific code fragments are ok if
you need them to illustrate a point.
Reading and Textbooks
Reading assignments are posted along with the lecture notes and
examples on the Lecture Notes page.
The sources listed here will be on reserve in the Engineering
Library in Carpenter Hall.
Required Text
- Practical C Programming
by Steve Oualline. This book is available electronically (and for
free!) through the Cornell University Library website. You may buy a
hardcopy if you wish, but this is not necessary.
Optional Reading
- The C Programming Language, Second
Edition by Brian Kernighan and Dennis Ritchie. This is a classic
text that is found in nearly every serious programmer's library.
- C: A Reference Manual, by Samuel Harbison and Guy Steele. An
excellent reference book.
- More free books via Cornell's E-books.
Grading
CS 113 may only be taken S/U (pass/fail). You will receive an S if your final
course score is the equivalent of a C- or higher. You are guaranteed to receive
an S if your final course score is at least 70%.
We may choose to lower the cutoff based on the overall class performance on all
course work, but we will never raise it, which would be unfair to you.
There will be three homework assignments worth 75% of the final course score. There will also be one in-class quiz
worth 25% of the final course score.
Assignments
There will be three homework assignments for the
semester. Assignments will be posted on this website. Assignments
must be submitted on-line through the Course Management System
(CMS). Please see the assignment
submission requirements for instructions on using CMS.
Late policy
Late assignments will not be accepted. If you anticipate needing extra
time to complete an assignment, contact the instructor ahead of time.
We will consider extensions on a case-by-case basis.
Make sure to upload submissions
to CMS well before the deadline. Waiting until the last minute is
risky because CMS tends to lag near the deadline (as many people try
to access it at once).
Grading
Assignments receive scores out of 100 points. They are graded based
on correctness and completeness, as well as programming
style. Write clean, clear code. Include comments and choose
meaningful variable and function names. At the very least, your
code must compile without warnings or exceptions. If it does not,
we will not debug your code and you may receive a grade of zero.
If you feel we have made a mistake in grading, you may request a regrade.
Refer to the Regrades section for details.
Quiz
There will be one in-class quiz near the end of the semester, worth
25% of the total course score.
Regrades
For all graded work, you always have an opportunity to request a regrade
if you feel we have made a mistake in the grading or simply to request a
clarification. To make a regrade request, you need to explain in
words what you feel is wrong or what you do not understand. For each
assignment, there is a deadline for regrade requests, normally a few days
after the grading guide and solutions have been posted.
You may submit a regrade request on any graded assignment or exam to correct mistakes or request clarifications.
We reserve the right to regrade the entire submission.
Procedure
- Use CMS.
- Under CMS, view the Help screen for information on the regrade facility.
- In the regrade box, type your request clearly and succinctly. Refer to specific portions of your code and the grading guide.
- If you need to submit a file, or if CMS's text box does not suffice, write in
the text box that you need to communicate with the assignment supervisor.
- Do not contact the assignment supervisor directly unless the issue is time sensitive.
- Completed regrades can be viewed under CMS.
Academic Integrity
We take academic integrity very seriously. The utmost level of academic integrity is expected of all students. Please
read carefully the following information and documents.
AI is Your Responsibility!
- The rules contained
herein are based on the Cornell University Code of Academic Integrity and
the Department of Computer Science Code of Academic
Integrity. You must read and understand those documents in their
entirety, as well as the adaptations specific to CS113 that are
detailed below.
- You are responsible for understanding and
abiding by these policies. It is no defense to say that you did not
understand them, or that it was not done this way in another
course. If you are ever in doubt, ask an instructor.
Assignments
- Each assignment will specify whether you may work with a partner
or partners, and if so, how many. For assignments that allow partners,
only one assignment with all names is submitted.
- You may discuss homework problems with other students at a high level.
That is, you may discuss general approaches to a problem, high-level
algorithm design, and the general structure of code. However, you may
not share written code with any other students except your own partner, nor
may you possess code written by another student who is not your partner,
either in whole or in part, regardless of format.
- You may not remove your partner's name from an assignment unless you do not use each other's work.
- Unless otherwise posted, you must follow the rules for partners listed on the
Course Info page.
- When you are allowed to use additional resources such as textbook examples
or supplied code, you must credit those sources.
- When applicable, the programs and other work that you submit must generate the indicated output and/or results.
- Your name must not appear on more than one submission.
Penalties
- Penalties for violations are assessed on a case-by-case basis. The
penalty will usually be a grade penalty. It may be a point reduction, a
zero on the homework or exam, a grade reduction in the course, or failure in
the course, depending on severity. Repeated offenses will be referred
to the Academic Integrity Hearing Board of the College of Engineering and may result in suspension or
expulsion from Cornell.
- If you are suspected of a violation, we will send an email notification. If your online listing shows a local address, we will
mail an additional hardcopy of the notification. Refer to CIT's website
http://whoiam.cornell.edu/ for updating your local address.
Obtaining a C compiler
You will need access to a C compiler to complete the assignments for this course. It does
not matter which compiler you use, as long as it is ANSI C compliant. (Virtually all modern
compilers are.) Some suggestions:
- The CIT computer labs in Upson B7 and Phillips 319 have Dev-C++ installed. You can also download it for free:
http://www.bloodshed.net/devcpp.html
- Eclipse is an open source development environment that supports many languages, including C.
You can download it for free. You will also need to
download and install a C compiler for your platform.
- gcc (the GNU C compiler) is excellent and free. However it
is a console-based application, so you should have experience with
using command-line programs (or be willing to learn). The best way to
get it depends on your operating system:
- Microsoft Visual Studio is another good choice, and is available for purchase at the Cornell Store.
It is also available in the ACCEL lab.
Special Needs and Disabilities
In compliance with the Cornell University policy and equal access laws, we are
available to discuss appropriate academic accommodations that may be required
for students with special needs and/or disabilities. Requests for academic
accommodations are to be made during the first three weeks of the semester and
must be accompanied by official documentation. Please register with Student Disability Services
in 420 CCC to verify your eligibility.
This course information page is based on the CS 211 website.