Introduction
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.
Prerequisites
MATH115. Restriction: Must not be in Computer Science program; and must not have completed any courses from CMSC131-499 course range.
Course Coordinator
| Name | Office |
|---|---|
| Nelson Padua-Perez | AVW 1203 |
For office hours and other contact information, visit the staff link.
Textbook (Recommended)
The Complete Reference C - Fourth Edition by Herbert Schildt. ISBN: 9780072121247.
Course Topics (Subject to Change)
- Introduction to computer programming
- Basic program syntax
- Data types, declarations, expressions, variables
- Input/output
- Conditional statements
- Iteration statements
- User-defined functions, standard library functions, scope, call-by-reference
- Storage classes
- Arrays (single and two-dimensional arrays)
- Strings, character and string library functions
- Structures, structures as parameters, array of structures
- Miscellaneous
Grading
Final grades will be computed according the following weights:
| 35% | Projects(around 5) |
| 15% | Quizzes/Lab Exercises |
| 30% | Midterms(3) (10% each) |
| 20% | Final Exam |
Project Deadlines
All projects are due at 6pm on the specified day in the project description. You have until 9am of the next day to submit your project with a 20% penalty. Projects are to be submitted electronically using the submit server and not via e-mail.
Which Project Gets Graded
Your grade for an project will be based on the greater value of two scores: (1) The score on the very last compilable submission prior to the deadline; (2) The score minus 20% on the very last compilable submission prior to the late deadline.
Good-Faith Attempt
You must satisfy a minimum set of requirements for each project (Good Faith Attempt) otherwise you will not pass the course (automatic grade of F). Each project will define its own good faith attempt criteria and a deadline to provide an implementation that satisfies it. Additional details will be provided in the project description.
Closed Projects
Unless stated otherwise by the instructor, all programming assignments are to be written individually. Cooperation between students on exams, quizzes, or projects is a violation of the Code of Academic Integrity.
About Graded Material
Once we have graded any class material (e.g., exams, projects, etc.) we will post an announcement that the specific assignment has been graded, and the deadline by which you must submit any regrade request (if necessary). It is your responsibility to submit regrade requests by the specified deadline; no regrade requests will be processed afterwards.
Class Announcements
Class announcements are located at Class Announcements. You should check announcements often (at least once every day).
Computing Environment
OIT Grace Cluster
Programming will be done on the OIT Grace Cluster, in particular Linux machines that can be accessed at linux.grace.umd.edu. Students will use their own Glue (also known as TerpConnect) accounts to access the Grace cluster and do coursework, so students who don't have a Glue account yet should request one online immediately by going to the following link:
Project Submissions
Project submission will be done using the submit and testing server available at:
Information on how to submit projects will be provided during lecture/lab.
While students may use other environments to develop their programs, to be judged correct, a project must build and work correctly on the Linux Grace systems, with the compilation method and compiler options specified for that project.
About Project Submissions
Projects must be submitted electronically using the CMSC project submission and testing server. Attempts to submit a project using any other means (such as an emailed project) will not be considered. Only the projects electronically submitted via the submit server can be graded; it is each student's responsibility to test their program and verify that it works properly before submitting, and to check a project's results on the public tests on the submit server after submitting it.
Project extensions will not be given to individual students as a result of system problems, network problems, power outages, etc., so do not leave submitting a project until just before it is due. It is strongly suggested you finish and submit your program at least one day early, to allow time to reread the project assignment and ensure you have not missed anything that could cause you to lose credit on the project.
Any hardcoding in a project assignment will result in a score of zero for that project. Hardcoding refers to attempting to make a program appear as if it works correctly and actually calculates and computes correct results, when for some reason it actually does not do so. Examples would include a program that prints the desired output instead of computing it, or a program that works only because it takes advantage of properties that the public test cases happen to have, etc. These are only a few examples; if you have any question about whether a particular situation would constitute hardcoding be sure to ask ahead of time.
Use of Laptops/Phones/Electronic Devices
- Please, bring your laptop to your discussion (lab) session. If you don't have one we will pair you up with a classmate.
Academic Honesty
Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. You are allowed to use the Web for reference purposes, but you may not copy code from any website or any other source. In short, all submitted work must be your own.
Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct. Without exception every case of suspected academic dishonesty will be referred to the Office. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact your TA or the course coordinator.
The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council. This code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu
To further exhibit your commitment to academic integrity, remember to sign the Honor Pledge on all examinations and assignments: "I pledge on my honor that I have not given or received any unauthorized assistance on this examination (assignment)."
Excused Absence and Academic Accommodations
Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall:
- Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
- Upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(h) of the Code of Student Conduct (V-1.00(B) University of Maryland Code of Student Conduct) and may result in disciplinary action.
- This self-documentation may not be used for the Major Scheduled Grading Events as defined below and it may only be used for only 1 class meeting during the semester.
Any student who needs to be excused for a prolonged absence (2 or more consecutive class meetings) or for a Major Scheduled Grading Event, must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. No diagnostic information shall be given. The Major Scheduled Grading Events for this course include midterm(s) and final exam.
It is also the student's responsibility to inform the instructor of any intended absences from exams for religious observances in advance. Notice should be provided as soon as possible but no later than the Monday prior to the exam for both the midterm(s) and the final.
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services within the first two weeks of the semester.
Evaluation System (CourseEvalUM)
Your participation in the evaluation of courses through CourseEvalUM is a responsibility you hold as a student member of our academic community. Your feedback is confidential and important to the improvement of teaching and learning at the University as well as to the tenure and promotion process. Please go directly to the website (www.courseevalum.umd.edu) to complete your evaluations. By completing all of your evaluations each semester, you will have the privilege of accessing online, at Testudo, the evaluation reports for the thousands of courses for which 70% or more students submitted their evaluations.
You can find more information, including periodic updates, at the IRPA
course evaluation web site
https://www.irpa.umd.edu/Assessment/CourseEval/fac_faq.shtml
Learning Assistance
If you are experiencing difficulties in keeping up with the academic demands of this course, you may contact the Learning Assistance Service, 2202 Shoemaker Building. Their educational counselors can help with time management, reading, math learning skills, note-taking and exam preparation skills. All their services are free to UMD students.
Copyright
All course materials are copyright UMCP, Department of Computer Science © 2012. 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.