Syllabus

Computer Science 121

Computer Science I: Programming in C++



Instructor: Dr. Rick Coleman, former Senior Software Engineer, SAIC Inc. Now retired.
E-mail: rcoleman@cs.uah.edu
CS 221 Web Page: http://www.cs.uah.edu/~rcoleman
Office: N345, Technology Hall
Office Hours: By appointment

Sorry, but Dr. Coleman is not teaching this course
this Semester. He will also be retiring at the end of the
Fall 2019 semester and so will not be teaching this course again.



Course Catalog Description:

Review of hardware and software components of computer systems. Review of problem solving techniques and algorithm development. Principles of software design, implementation, and testing. Introduction to object oriented design and the C++ programming language. Extensive programming assignments to provide experience in the application of design and implementation principles. Prerequisites: CS 102 or other college-level programming course, MA 112 (Precalculus Algebra). Prerequisite with concurrency: MA 113 (Precalculus Trigonometry).

Textbook: This text is recommended but not required.
  • Programming and Problem Solving with C++ (Brief Edition),, Dale, Nell and Chip Weems,. Jones and Bartlet Publishers.
    If you can find an earlier edition at less cost please get it.

Course Objectives:

      When you have completed this course you should:
  • Have an understanding of what programming is and some techniques for planning and designing computer programs to solve problems.
  • Have a thorough knowledge of C++ syntax including but not limited to C++ data types, mathematical operators, conditional and logical statements, looping, and stream I/O.
  • Have a thorough knowledge of arrays, functions, and parameters passed to functions.
  • Have been exposed to functional versus object-oriented development techniques and unit testing techniques.
  • Be familiar with software design principles including proper use of internal program documentation.
  • Have experience planning, designing, and implementing programs in the C++ language using current development tools such as the Visual C++ development environment.
  • Be able to design, implement, and test a computer program to meet defined requirements.

Programming Assignments:
  • There will be 4 programming assignments each designed to provide experience in the topics being covered in class. Details of these assignments will be posted on the web site and discussed in class. One of these will be done mostly during class time under the direction of the instructor.
  • All programming assignments should be handed in on time, as specified in the course schedule.
  • The programming assignments are worth a varying number of points based on the difficulty of the assignment. Program 1 will be worth 10 points, Program 2 will be worth 20 points, Program 3 will be worth 30 points and Program 4 will be worth 40 points for a total of 100 points, the equivalent of one test.
  • A grace period beyond the due date for each programming assignment has been posted in the course schedule below. Programming assignments may be turned in without penalty up to that date. Programming assignments will NOT be accepted after that date (referred to as the DDD, Drop Dead Date).
  • All programming assignments turned in must be your own work – do not copy someone else's work or work together with another student! Copying someone else's work will result in a grade of zero on that assignment for both you and the person you copied from. This could result in you being removed from the class and reported to the Dean for cheating. Don't risk it.
  • Programs are due at the beginning of class on the posted due date! It's up to you to see that your program is ready on time, "my computer crashed" or "my disk is corrupted" are not acceptable excuses.
  • Your program must run under MS Visual Studio 2010 or 2012. The software is available in the Computer Science laboratories or you can find out how to download a copy for use on your home computer. Click here to learn how to download.
  • Programming assignments always take longer than you expect. Be sure to start early! The joke among professional programmers is that when someone tells you how long it will take to complete a project take their estimated time, multiply by two and increase to the next time unit, e.g. if told "one day", expect the project to be finished in "two weeks".

In-class Programming Activities:
  • There will be a number of in-class programming exercises to provide hands on experience with the current topic. You are strongly encouraged to bring your laptop to class so you can use it for the in-class projects. See the link above for instructions on how you can get a FREE copy of the Microsoft Visual Studio compiler to install on your own laptop.
  • Each in-class exercise must be turned in, via e-mail or copying to the K-drive, prior to the next class meeting after the exercise is assigned in class. Note that the received time on e-mails will determine if an exercise is received on time, not the time you sent it. All exercises submitted on the K-drive will be copied by the instructor up to about 15 to 30 minutes prior to the next class. If your exercise is not received before that time it will not be accepted.

GETTING HELP:

Here are some resources in case you need outside assistance: the class Teaching Assistant on duty in the lab (N329), the Computer Science Department Help Desk, or the instructor. Even your classmates can help in a limited way.

Acceptable help from classmates:
  • Discussing in general terms the concepts involved in an assignment to be sure you understand.
  • Asking questions about language syntax, or program error messages
  • Getting help with specific program bugs (NOT "My program won't run; please find the error").
Unacceptable help:
  • Getting someone else to write all or part of your program
  • Copying all or part of someone else's program, or copying a program from a textbook or the Internet
  • Working so closely with someone else that the instructor can tell that your programs are similar or identical, and for someone with his experience this is surprisingly easy to do.
ACADEMIC INTEGRITY (Statement of the UAH Policy):

Unless otherwise specified, all assignments submitted for grading must be totally your own work.
Violation of this policy will be punished by at least a grade of zero on the assignment. This applies to programs, homework, quizzes or tests. Flagrant or repeated violations of the academic integrity policy will be reported to the University Judicial Committee for further action. A person who allows his or her work to be copied is as guilty as the person who does the copying. It is your responsibility to protect your programs, in particular. If someone submits a copy of your program, you will both be held equally responsible.

Final Grade:
Tests(3) 100 pts each 300
Class attendance and participation 50 pts 50
Programming assignments(4) 10, 20, 30, 40 pts 100
Final Exam 200 pts 200
  TOTAL 650
Note on WX grade:
The administration of UAH has established a grade of WX or faculty initiated student withdrawal. Basically, this allows the instructor to withdraw a student from class without any request from the student. It's primary purpose is to allow a faculty member to remove a student from class who is not attending class or putting forth any effort to complete the class work. This grade will not be used to avoid a grade of F for the course.


UAlert Emergency Notification System:
UAHuntsville has implemented the UAlert emergency notification system. UAlert allows you to receive time-sensitive emergency messages in the form of e-mail, voice mail, and text messages.

Everyone who has a UAHuntsville e-mail address will receive emergency alerts to their campus e-mail address. In order to also receive text and voice message alerts, you are asked to provide up-to-date phone contact information. Participation in UAlert text and voice messaging is optional, but enrollment is strongly encouraged. You can’t be reached through UAlert unless you participate. The information you supply is considered confidential and will not be shared or used for purposes other than emergency notification.

To review your UAlert account, add or update phone and alternate e-mail addresses, and set the priority for your contact methods, please visit the UAlert web site: http://ualert.uah.edu.




Topical Outline and Reading Assignments
This Schedule is Subject to Change

===== Course Outline not available. =====


OFFICIAL UAH COMPUTER SCIENCE DEPARTMENT POLICIES AND PROCEDURES
  1. Responsibilities of the teacher
    1. Provide a detailed syllabus. This syllabus should list office hours, course objectives, textbooks, references, prerequisites, and grading policy/method of assessment.
    2. Come to class prepared, on time, and make full use of the class time.
    3. Provide timely and adequate feedback on grades. Return graded material promptly.
    4. Conduct final exam at the time designated in the class schedule.
    5. Not assign new work (i.e. not listed on syllabus) that is due in last two weeks of classes.
    6. Avoid leaving the examination room without a proctor. Provide paper for exams.
    7. Make reasonable use of the assigned textbook.
    8. Check students have proper prerequisites. Instructor does not waive assigned prerequisites.
    9. Report all incidences of academic misconduct (cheating) to the Department Head and Vice President for Student Affairs.

  2. Responsibilities of the student (see also, Student Handbook Article II)
    1. Come to class with the proper prerequisites, well prepared, on time, and make full use of the class time.
    2. Provide adequate notice of anticipated absences and take full responsibility for finding out about missed work, announcements, and assignments.
    3. Submit assessment material on time and submit only your own work (see Integrity).
    4. Do not allow other students to copy your work.
    5. Read and understand the syllabus and follow announced policies.

  3. Integrity
    We expect CS instructors and students to conduct themselves in a professional manner. Students are subject to all the provisions in the UAH Code of Student Conduct, which is available free from the Office of Admissions and Records. Information on plagiarism and other forms of misconduct is presented in the Student Handbook Article III. Departments are obliged to report all student misconduct to the Office of Student Affairs.

  4. Complaint Procedure
    If you have difficulties or complaints related to this course, your first action should be to discuss them with your instructor. If such a discussion would be uncomfortable for you or fails to resolve your difficulties, you should ask for a meeting with the Chair of the Computer Science Department in Technology Hall N-300, info@cs.uah.edu, telephone 256-824-6088. If you still are unsatisfied, you should discuss the matter with Dr. Emanuel Waddell, Associate Dean of the College of Science.  The Associate Dean's office is MSB C207, telephone number 256-824-6844 and email address adeancos@uah.edu..

  5. Students with disabilities
    Your instructor would like to hear from anyone who has a disability that may require a modification of seating, testing, or other class procedures. Please see instructor after class or during office hours to discuss appropriate modifications. You should also contact Student Disability Services in in WH 317 (Ph. 824-1997) or online at http://www.uah.edu/health-and-wellness/disability-support/requesting-services for further assistance.

  6. Student computer account
    Students enrolled in any CS course are entitled to an account on the departmental computer network. Use of such an account is subject to departmental and university policies. To apply for an account, and see the current policies, go to the departmental web site at http://www.cs.uah.edu/account/

  7. Examination policy
    In response to past student complaints about problems during examinations, the Computer Science Department has developed the following guidelines for in-class examinations in all courses.
    1. Come to the exam prepared to complete it without a break. If you think you will need a break, please inform the proctor before the exam if possible.
    2. Do not communicate with other students. Talk only to the instructor.
    3. Whenever you leave the exam room turn in your exam.
    4. Use only the paper provided by the instructor for all writing.
    5. If assigned a specific seat, remain in that seat.
    6. Unless specifically permitted by the instructor, use no books or other reference materials. Do not bring calculators, computers, pocket-organizers, cell phones, pagers, or other electronic devices to the exam.