CMSC 106 -- Intro to C programming

Spring 2010

Fear the Turtle!

CMSC 106

Introduction to C Programming

Fall 2010

 

 

 

Official course description and overview

Prerequisite: permission of department.  Pre-- or corequisite: MATH 140. Not open to students who have completed CMSC 131 or CMSC 114 or higher.  Design and analysis of programs in C.  An introduction to computing using structured programming concepts.  For further information contact the Undergraduate Education Office, A.V.Williams room 1119, Computer Science Department.

 

 CMSC 106 is an introduction to computing and program development in the C programming language.  This includes a brief introduction to basic computer concepts, an understanding of the UNIX operating system sufficient for writing class programming assignments, studying the syntax and semantics of the basic control structures of C, learning C's fundamental data types and structures, understanding the design and methodical construction of computer programs, learning how to test and debug programs, and lastly, practice in these through creating several programs in C.  The major topics to be covered can be found in the last section of this syllabus.

Class webpage

Various course materials will be made available on the class webpage, and any important announcements will also be made there, so students are responsible for visiting the class webpage frequently.  The class webpage is at the following URL: www.cs.umd.edu/class/fall2010/cmsc106. Accessing some materials on the web page requires an ID and password that will be provided in class.

Textbook

The Complete Reference C - Fourth Edition by Herbert Schildt.  McGraw-Hill Companies Copyright 2000. ISBN 0-07-323235-6.

Contact and office hours information

Email Contact

Although our email addresses are provided below, we will generally be unable to provide long explanations about the course material via email; these are more appropriate for class discussion or in-peson communication.   In particular, most types of detailed questions about the programming projects usually cannot be answered adequately via email.  Personal communication, either in office hours or before or after class (as time permits), is the preferred means of contacting us, as we will always be able to devote more attention and to give a much more detailed reply to any issue which is discussed in person.  Also, on class days, please try to bring questions to class to ask, or ask before or after class, rather than using email.

 

Instructor

Jan Plane    

jplane@cs.umd.edu

(301) 405--2754

Office: 1113 A. V. Williams

Office hours: Monday 11:30-1:30 and Thursday 9:30-11:00      (or by appointment)

 

Teaching Assistant(s)

Chris Neylan

caneylan@cs.umd.edu

Office: 1112 A. V. Williams

Office hours: Tues 10:00-12:00 & Wed 12:00-2:00

 

 Office hours and assistance with projects

The TA office hours will be held in 1112 A.V. Williams and the instructor office hours will be held in 1113 A.V. Williams.  Office hours are made available for any course content with which you would like more individual attention.  Note that assistance with and suggestions regarding project problems are provided during office hours, but it is the responsibility of each student to develop and to do most of the debugging of his or her own program.  You should not expect the instructional staff to take the primary responsibility for getting your project to work.

 

Course requirements and grading policies

Students are responsible for all material covered and announcements, policies, and deadlines discussed in lecture and discussion sections, even if they were not in class to hear the information.

 

Practice exercises and solutions will be made available via the class webpage; these will not be collected or graded, but allow you to test your knowledge of the material in preparation for exams, quizzes, and projects. read the relevant sections and work on the these exercises when topics are first covered to insure you are prepared when it is time to write the programming assignment requiring this material.  If you have trouble with the problems, be sure to come to office hours for assistance.

 

Quizzes will be given during the discussion (also called the lab) section and will be announced in an earlier class.

 

Coursework will count towards the final grade according to the following percentages:

    Quizzes: on reading, lecture, and discussion material 14%

    Programming projects: approximately six coding assignments 32%

    Midterms: two midterms exams  32% (16% each)

    Final: will be comprehensive 22%

 

Any request for reconsideration of the grading on any coursework must be submitted in written form within one week of the day that item was originally returned to the students, or it cannot be considered.  Exam regrading requests must be made in writing with the exam resubmitted with no modifications made to the exam paper itself.  Information about resolving any questions about project grading will appear in each graded project.  The instructional staff may regrade the entirety of any exam or project submitted for regrading which could result in a lower score in cases where warranted.

 

Dates related to exams are

   Exam #1: (Tentative) Friday, October 1, 2010, during lecture time in the lecture hall

   Exam #2: (Tentative) Friday, November 12, 2007, during lecture time in the lecture hall

   Final exam: Thursday, Dec 16, 8:00am-10:00am, location to be arranged

 

The exact dates for the midterms will be confirmed later, and may vary depending on lecture progress and other factors (you will be told in advance).  The final exam date is fixed by the University - we will have our final exam at the time associated with the lecture meeting time; it is not the common exam time that would be available to us if there were more than one section.  The final exam will be rescheduled only for students having another final at exactly the same time, or for students with more than three exams scheduled on the same day.  If either of these situations applies to you, you must inform the instructor at least two weeks before the final exam time.  Please also let the instructor know immediately if you have a conflict with any of the tentative midterm dates, or any other important date as the semester progresses.

 

Computing resources, project submission, and grading policies

 

Computing resources

Students will use the GLUE system (glue.umd.edu) for all projects.

 

Project submission

Projects will be submitted electronically and further instructions will appear on the assignments and be covered in discussion section.  Attempts to submit a project using any means other than that specified on the assignment, such as via email, cannot be considered.  Only the projects electronically submitted from a student's Glue account, according to the procedures provided, can be graded.  It is each student's responsibility to test their program and verify that it works properly before submitting.  Any project that does not work in the GLUE environment will be considered not working even if your development was done elsewhere.

  All projects will be due before 11:59 p.m. on the day indicated on the project assignment.  A project will be accepted up to 24 hours late with a 20 point deduction in credit.  The submission deadlines are firm and exceptions cannot be made.  Note there is no grace period for project submissions-- deadlines will be enforced at exactly the times indicated.  The system time on the machine accepting submissions will govern all submissions.

 

Project grading

All projects will be graded out of 100 points, but as the semester progresses they will be larger, and consequently will count more towards the final grade (in other words, the projects will not all be weighted equally).  The relative weights of the projects can't be given in advance, but will be given toward the end of the semester.

   Projects will be graded as follows.  All projects will be run on a primary input data set which will be made available with each project assignment.  The program's expected results when run on that primary input will also be given these are called the primary output.  Projects will also be run on various secondary inputs which will not be provided in advance.  A submitted program is considered to satisfy an input data set if, when run on that input, all the data values in each line of its output  match the data values in the corresponding lines of the correct output (and extra incorrect data values are not produced also).  A project's grade will be calculated in the following manner: 

1.       Any project which fails to compile on the submission machine will receive a grade no higher than 40 (with late penalty and penalties for bad style removed from the 40).  

2.       Any project which is a reasonable attempt to solve the assigned problem which compiles and runs but does not satisfy the primary input will receive a grade no higher than 50 (with late penalty and penalties for bad style removed from the 50). 

3.       Any project which satisfies the primary input will be graded as follows:  (1) correct results for primary input 50 points, (2) correct results for secondary inputs 30 points (prorated), (3) style and documentation 20 points (prorated)-  (less any late penalties).

4.       Projects not submitted by the end of the grace period will not receive any credit, so submissions for projects after the grace period will receive a 0 as their only possible grade.  As described above, all projects submitted will receive at least some partial credit, even those which do not produce correct results, so it is to your advantage to submit something for each project before the end grace period, even if it is incorrect or incomplete.  If more than one submission has been made by a student for any project assignment (for example, both an on--time submission as well as a two--day late submission) all submissions will be graded and the highest grade will be recorded.  Only the last submission in each time period will be graded, so for example any on--time submission made will overwrite or replace an earlier on--time submission by that student for that project, and any one--day--late submission made will overwrite or replace an earlier submission by that student for that project also made within the 24--hour one--day late period.

 


 

Late policies, and accommodations and excused absences

Besides the policies in this syllabus, various University policies may apply to students during the semester.  Various policies which may be relevant appear in the Undergraduate Catalog at www.umd.edu catalog.  If you experience difficulty during the semester keeping up with the academic demands of your courses, you may consider contacting the Learning Assistance Service.  Their educational counselors can help with time management issues, reading, note--taking, and exam preparation skills.  It is the University's policy to provide reasonable accommodations for students observing religious holidays which conflict with exams, but it is the student's responsibility to inform the instructor in advance of any intended religious observances.  Written notice must be provided immediately upon an exam date being announced or confirmed in order for accommodation to be made.

      There will be no makeups for missed quizzes-- in the case of a reason such as religious observation, documented medical excuse, or documented family or personal emergency, (such as a serious automobile accident or close relative's funeral) the score for a missed quiz will be counted by averaging the student's scores for the other quizzes.  The score for an excused absence for an exam will at the instructor's discretion be determined either by averaging a student's scores for the other exams (possibly a weighted average), or by giving a makeup exam.  However, unless immediate notice is given as early as possible of the reason for any missed coursework, an excused absence may not be granted, even in the case of one of the causes mentioned where proper documentation is available.  If you might miss an exam for any reason other than those mentioned above (such as attendance at a required University function), you must contact the instructor in advance to discuss the circumstances.  An instructor is not under obligation to offer a substitute assignment or to give a student a makeup assessment unless the failure to perform was due to an excused absence.

      Students claiming a excused absence must apply in writing and furnish documentary support (including the phone number of a contact person) for any assertion that the absence qualifies as an excused absence.  For an absence due to medical reasons for example, documentation would be from a health care professional who treated the student.  Simply being seen by a health professional is insufficient-- medical documentation must state that you were incapacitated for an excused absence to be considered.  For medical absences the documentation must explicitly indicate the exact dates or times of incapacitation due to illness.  Self--documentation of illness is not itself sufficient support to excuse an absence.  For medical absences, the dates of incapacitation on the documentation must include the date of the missed exam or quiz; an illness preceding an exam or quiz will not be considered to be an excused absence.  Excused absences will not be given unless documentation as described is provided.

      Projects will be assigned with sufficient time to be completed by students who have a reasonable understanding of the necessary material and who begin promptly.  In cases of extremely serious illness of lengthy duration (such as, for example, an illness requiring hospitalization), the instructor may consider extensions on project assignments, depending upon the specific circumstances.

 

Students with disabilities

Students with disabilities who have been certified by Disability Support Services as needing any type of special accommodations should see the instructor as soon as possible, during the schedule adjustment period.  All arrangements for exam accommodations as a result of disability must be made and arranged with the instructor at least three business days prior to the exam date, or accommodations cannot be made.

 


 

Academic integrity statement

Cooperation on programming projects is considered a violation of the University's Code of Academic Integrity.  Any evidence of unacceptable use of computer accounts, cooperation on exams, quizzes, or projects, or other violations of academic integrity policies, will be submitted to the Student Honor Council, which could result in an XF for the course, suspension, or expulsion.  Note specifically that

projects are to be written individually.

·         In learning the course concepts students are welcome to study together or to receive help from anyone else.  Students may discuss with others the project requirements, the features of C, what was discussed in class, and general syntax errors.

·         When it comes to actually writing a project assignment, other than help from the instructional staff it must solely and entirely be a student's own work.  Working with another student or individual, or using anyone else's work in any way, will be considered a violation and will be reported to the Honor Council.  Students may not discuss design of any part of a program which is to be submitted with anyone except the instructional staff.  Students may not use any disallowed source of information as a basis for or in creating either their project design or code.

 

If you have any question about a particular situation or source then consult with the instructor in advance.  Should you have difficulty with a programming assignment you should see the instructional staff in office hours, not solicit help from anyone else in violation of these rules.

 

Students are welcome and encouraged to study and compare their implementations of the programming projects with others after the particular project has been graded and returned.

 

Violations of academic honesty include, but are not limited to:

·         Failing to do all or any of the work on a project by yourself, other than assistance from the instructional staff.

·         Using any ideas or any part of another person's project, or copying any other individual's work in any way.

·         Giving any parts or ideas from your project, including test data, to another student.

·         Allowing any other students access to your program on any computer system.

·         Transferring any part of a project to or from another student or individual by any means, electronic or otherwise.

 

It is the responsibility, under the university's honor policy, of any student who learns of an incident of academic dishonesty to report it to their instructor.

 

Every semester the department has discovered a number of students attempting to cheat on project assignments, in violation of academic integrity rules.  Every project submitted is checked for violations of the above  requirements.  Students' academic careers have been significantly affected by a decision to cheat.  Think about whether you would want to join them before contemplating cheating, or before helping a friend to cheat.

 


 

Course topics (subject to change)

  This chart gives the estimated time for each chapter of the text, but in a few cases coverage of material will deviate from the exact order of the chapters.

Topic

Chapter

Approximate time

Course introduction, and introduction to computer programming

 

1 lecture

Getting started in C programming: introduction to basic program syntax

Printing messages, data types and declarations, numeric and character data, expressions, printing results, and variables

 

3 lectures

Processing and interactive input: assignments, counting, and input and output of data

 

3 lectures

C's conditional statements

 

3 lectures

C's looping statements

 

3 lectures

Modularity using functions: user--defined functions, parameters and return values, standard library functions, scope, call--by--reference

 

3 lectures

More modularity using functions: scope, storage class, and call--by--reference

 

3 lectures

Arrays: single and two--dimensional arrays, initializers, array parameters

 

3 lectures

Character strings: processing strings using loops, some character and string library functions

 

3 lectures

Structures: structure concepts, structures as parameters, arrays of structures

 

3 lectures

Additional or miscellaneous topics other material as time permits

 

2 lectures

 

Right to change information

 

  Although every effort has been made to be complete and accurate, unforeseen circumstances arising during the semester could require the adjustment of any material given here.  Consequently, given due notice to students, the instructor reserves the right to change any information on this syllabus or in other course materials.

 

Copyright

All course materials are copyright Jandelyn Plane 2010.  All rights reserved.  Students are permitted to use course materials for their own personal use only.  Course materials may not be distributed publicly or provided to others (excepting other students in the course), in any way or format.

Web Accessibility