Course: CMSC104 Problem Solving and Computer Programming
Days/Time: Tuesday & Thursday, 1:00pm - 2:15pm
Classroom: ENG 122/122A
Days/Time: Tuesday & Thursday, 4:00pm - 5:15pm
Classroom: ITE 240
There is no textbook required for the course. If you would like to have a textbook, I would suggest the following book:
John Pollock, McGrawHill/Osborne Publishing, 2004
You will not be responsible for any information from the suggested textbook. It will not be referred to in class or in the lecture notes. It is merely a reference for those that prefer to have a textbook.
The homepage for this course can be found at:
- Introduction to Computer Organization and Architecture
- Data Representation and Memory Usage
- Introduction to Operating Systems
- Problem Solving and Algorithm Development
- Introduction to Software Engineering Using Top-Down Design
- Reuse Based on Algorithm Selection and Design Techniques
Your final grade will be broken down as follows:
4 Homeworks (4% each) = 16% 3 Projects (8% each) = 24% 3 Exams (20% each) = 60% Total = 100%
Final letter grades will be determined as follows:
90% <= A <= 100% 80% <= B < 90% 70% <= C < 80% 60% <= D < 70% 0% <= F < 60%
An average of .5 and above will be rounded up. For example, 89.5% would be rounded up to 90%. Final grades will NOT be curved.
A grade of "I" (Incomplete) will only be given in the case of a verifiable medical emergency or other such dire circumstance.
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.
Please be on time! Class begins at the scheduled time. Being late is disruptive to the class. Most of the important announcements (such as project extensions!) are given at the beginning of class. On days that we have labs, instructions are given out at the beginning of class as well. Habitual lateness will not be tolerated.
Responsibility for Class Material
You are responsible for all material covered in lecture, as well as in the lecture notes.
Use e-mail in an appropriate and mature manner. See Making the Most of E-mail below.
Classroom EtiquetteAs 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.
Project Submission and Grading
The critical programming skills cannot be learned simply by attending class. You should budget enough time to work on the projects as well. Programming projects will be graded based on the following:
- Logically correct and neatly formatted psueodocode (if pseudocode is required)
- Adherence to the CMSC 104 Coding Standards
- Adherence to the CMSC 104 Indentation Standards
- Correctness of program output
- Format of program output
- be error free, and
- produce reasonable output.
You must attempt to do the majority of each project. Any project showing a lack of effort to complete the majority of the project will receive no credit.
All projects are due before 11:59 p.m. on the date listed in the Lecture Schedule. No late projects will be accepted.
Be aware that the linux system may go down from time to time. You are given ample time to complete your projects, so such downtimes, no matter how long and when, are no excuse for your project being late. For those using the network via ResNet, ResNet being down is no excuse for a late project either. If ResNet goes down, get to a computer lab and complete your project.
You will be turning your projects in electronically. Details will be explained in class before you need to submit your first project.
Your Assignment Must Be Yours
All assignments must be completed by your own individual effort. You should never 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 project 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
I 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 projects --- even for projects submitted to other sections of this course.
Your homeworks/projects will be checked for similarities with all other student projects. If your homework/project 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/project AND a reduction of one full letter grade in your final course grade. Furthermore, all parties concerned will have their prior homeworks/projects 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.
The exams will be closed-book and closed-notes. There will be a total of three exams. The third exam will not be cumulative, though it will be given during final exam week. The test dates for the exams are listed in the Lecture Schedule. In the case of a verifiable medical excuse or other such dire circumstance, arrangements must be made with your instructor for a makeup exam.
General Academic Dishonesty
Academic dishonesty is serious and will be dealt with severely, including the possibility of being reported to the University's Academic Conduct Committee. Academic dishonesty includes, but is not limited to:
- Cheating in any manner on a quiz or test.
- Sharing projects either partially or wholey (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 e-mail's subject line clearly identifies its content (i.e. mention CMSC104)
- Use your real name. I get a lot of junk e-mail (spam). So, e-mail from "Hot Stuff" or some other unidentifiable source gets deleted without being read.
- Write your message in the e-mail's text box. Do not include it as an attachment.
- Do not attach a programming project or any portion of a programming project unless I request you to do so.
- Give your name in the email.
I do my best to answer my e-mail 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 e-mail.
When I reply to your e-mail, I will reply to the address from which it was sent. However, if I initiate an e-mail, 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 e-mails concerning policies and grades.