Prof. Richard Chang
Course: CMSC104 Problem Solving and Computer Programming
Days/Time: Tuesday & Thursday, 1:00pm - 2:15pm
Classroom: ENG 122/122A
Problem Solving and Program Design in C, 6th Edition
Jeri Hanly and Elliot Koffman, Addison Wesley, 2009.
This course is designed to provide an introduction to problem solving and computer programming that does not require prior programming experience. Elementary problem solving skills and algorithm development will be introduced. Students will be taught the basic use of a programming environment and basic programming constructs (including loops, control statements, functions, and arrays). This course also teaches students the fundamentals of using the UNIX operating system, and introduces general computer science concepts. Note: This course does not fulfill any of the computer science major requirements. Students who have taken and received transfer credit for, or who are taking concurrently any computer programming course in a high-level programming language, will not receive credit for CMSC 104. The list of such computer programming courses includes, but is not limited to AP Computer Science, CMSC 201, CMSC 202, and sections of CMSC 291 that cover programming topics.
The following is a list of the topics that will be covered:
- Introduction to Computer Organization and Architecture
- Data Representation and Memory Usage
- Introduction to Operating Systems (Linux)
- Introduction to Software Engineering Using Top-Down Design
- Programming in C
- Problem Solving and Algorithm Development
ObjectivesAfter completion of this course, students will:
- become familiar with the Linux operating system, especially UMBC's Linux environment.
- have a high level understanding of basic computer hardware and software.
- have gained basic programming skills using the C programming language.
Your final grade will be computed from the following components:
The initial schedule has 13 homework assignments listed. So each homework assignment would be worth approximately 2.77% of your grade. Similarly, 5 quizzes are planned, so each quiz would normally be worth 6% of your final grade. However, if changes are made to the schedule (e.g., due to snow days), homework assignments would still account for 36% of your grade and quizzes 30%. (Each homework or quiz would be worth more.)
The expectation is that approximately half to three-quarters of the class meetings will include submitted classwork. So, each classroom assignment is worth two-thirds to one percent of your final grade.
Your final letter grades will be based on the standard formula:
0 ≤ F < 60, 60 ≤ D < 70, 70 ≤ C < 80, 80 ≤ B < 90, 90 ≤ A ≤ 100
Depending upon the distribution of grades in the class, there may be adjustments in the students' favor, but under no circumstances will the letter grades be lower than in the standard formula. Grades will not be "curved" in the sense that the percentages of A's, B's and C's are not fixed. As a guideline, a student receiving an "A" should be able to produce correct programs for the homework assignments and quizzes with facility.
Grades are given for work done during the semester; incomplete grades will only be given for medical illness or other such dire circumstances.
You are expected to attend all classes. If you miss a class, you are responsible for getting the notes and any verbal information given during class from a fellow classmate. (If handouts were given out, you may come to my office to get them.) The slides provided online are not a substitute for attending class.
Classwork must be submitted by the end of class. If you miss a class, you cannot make up the classwork.
Please be on time! Habitual lateness is disruptive to the class. Repeating announcements given at the beginning of class wastes other students' time.
Responsibility for Class Material
You are responsible for all material covered in lecture, as well as in the lecture notes.
Use email in an appropriate and mature manner. See Making the Most of E-mail below.
As a student in this course, you should be courteous and respectful of your fellow classmates, as well as your Instructor. The following behavior is considered unacceptable:
- Wearing headphones at any time during class.
- Permitting your cell phone to ring during class. Please put your cell phone on silent or vibrate before class begins.
- Using the computer to answer email, play games, instant message your friends or browse the Internet for things unrelated to the course. We are in the computer lab so that you may take advantage of doing hands-on work and access the course Web page and notes. If you choose to do things not related to the course, you will be asked to discontinue your computer use.
Homework Submission and Grading
The critical programming skills cannot be learned simply by attending class. You should budget enough time to work on the programming assignments in homework.
Programs are graded not just on correctness (produces the correct output) — neatness counts. Here "neatness" means that your program is well formatted (see CMSC104 Coding Standards and CMSC104 Indentation Standards), the output from your program is nicely presented, and that the logic in your program is straightforward.
If you cannot complete a programming assignment, you should still submit your code. Partial credit will be given for reasonable effort. All homework is due before class. This is so we can discuss the homework in class. Late work will not be accepted.
Be aware that the GL system may go down from time to time. You are given ample time to complete your programs, so system downtimes are not necessarily an excuse for late submission.
You will be submitting your programs electronically. Details will be explained in class before you need to submit your first program.
Your Assignment Must Be Yours
All assignments should be completed by your own individual effort. You should not have a copy of someone else's assignment either on paper or electronically under any circumstance. You should not even look at another student's solution to an assignment. Also, you should never give a copy of your assignment, either on paper or electronically, to another student. This also means that you cannot "work" on the programming assignments together.
The following is a non-exhaustive list of violations of academic integrity:
- Emailing code in whole or in part
- Instant Messaging code in whole or in part
- Posting or obtaining code in whole or in part on the web including but not limited to forums, newsgroups, etc...
- Not taking the appropriate measures to protect your source code, including:
- Placing your code in a public directory
- Failing to lock your screen when away from your computer
- Allowing someone to copy code from your monitor
- Giving your password to another student
We will be using special software to check for cheating. The software is quite sophisticated and has "surprised" some students in the past. We will, of course, not release the details of the internal workings of this cheat-checking software, but you are forewarned that there is no difficulty in comparing every pair of programs --- even for programs submitted to other sections of this course.
Your homework and programs will be checked for similarities with all other students' programs. If your homework/program is found to be "substantially similar" to that of another student, both you and the other student will receive a grade of 0 for that homework assignment AND a reduction of one full letter grade in your final course grade. Furthermore, all parties concerned will have their prior homework and programs checked for cheating. A second incident will result in a grade of 'F' for the semester.
Any act of dishonesty may be reported to the University's Academic Conduct Committee for further action. Egregious cases of cheating will be written up as a "more serious" infraction. In this case, you will not be allowed to drop the course. Also, a "more serious" infraction would appear as a permanent part of your student record and would be seen by potential employers when they ask for an official copy of your transcript.
In-class quizzes are scheduled for Thursdays 10/6, 10/20, 11/03, 11/17 and 12/08. Please make every effort to attend — unexcused absences will result in a grade of zero for that quiz.
Each quiz will be held during the last 30 minutes of the class period. The topics on a quiz will be announced in class — these are not pop quizzes. A typical quiz will ask you to write a program or program fragment using a language feature that you have used in homework. The best way to study for the quiz is to do your homework and learn from it.
The final exam is the only exam in this class. It is scheduled for December 20, 1:00pm – 3:00pm, in ENG 122/122A.
General Academic Dishonesty
By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory.
Academic dishonesty includes, but is not limited to:
- Cheating in any manner on a quiz or test.
- Sharing projects either partially or wholly (see Your Assignment Must be Yours above).
Discussing quizzes or tests that you have already taken with students in other sections of 104.
- Copying solutions to assignments from the Internet.
For a more complete description of academic dishonesty, refer to the UMBC Undergraduate Student Academic Conduct Policy.
Making the Most of E-mail
E-mail is a great way to communicate. It can save both of us a lot of time and also allows you to receive answers to questions outside of class.
Using E-mail For This Class
In order to facilitate communication, please observe the following rules.
- Make sure that the subject line of the email message clearly identifies its content (e.g., mention CMSC104)
- Use your full real name in the "From:" field of your messages. I get a lot of junk email (spam). So, email from "Hot Stuff" or some other unidentifiable source gets deleted without being read.
- Write your message in the body of the email — do not include it as an attachment.
- Do not attach a program or any portion of a program unless requested to do so.
I do my best to answer my email in a timely and thorough manner. But backups do occur, especially around project due dates. Do not hold up turning an assignment in because you are waiting for a reply to your email.
When I reply to your email, I will reply to the address from which it was sent. However, if I initiate an email, it will be sent to your UMBC account. So, be sure to check your UMBC account regularly and frequently.
For your benefit, hold on to all email concerning policies and grades.