CPSC 120: Fundamentals of Computer Science I

Fall 2009


Instructor:Dr. Jane Ingram Office Hours: Mon, Wed: 1:30 - 3:00 pm
Office: 365-A Trexler Tu, Th: 1:30 - 2:30 pm
Phone: 375-2446 Also by appointment or drop in
E-Mail: ingram@roanoke.edu
Course Web Page: http://cs.roanoke.edu/Fall2009/CPSC120A

Course Objectives: This course is the first in a three course sequence designed to introduce students to the fundamental concepts of computer science including the underlying foundations from discrete mathematics. The course focuses on the design of algorithms to solve problems, the basics of mathematical logic, and the implementation of the algorithms in the programming language Java. Students will gain familiarity with the Linux operating system and the Emacs text editor as they develop programs.

Intended Learning Outcomes: At the end of the course the successful student will be able to

  1. Design, implement (in the Java programming language), and test algorithms to solve small to moderate size problems, appropriate for an introductory course. In particular, to implement the algorithms the student will be able to
  2. Explain the fundamental concepts underlying objects, classes, and methods.
  3. Be able to use the Emacs editor and the Linux command line interface for creating, compiling, and running Java programs and navigating the Linux file structure.
  4. Be able to express integers in twos complement and vice versa and be able to perform and understand computer arithmetic.
  5. Be able to prove logical equivalences and correctly use logical equivalences in writing Boolean expressions in programs.

Prerequisites: There are no formal prerequisites for this course; however, a strong aptitude for math usually predicts success in the course. Prior experience with programming or with Linux is not necessary.

Text: Java Foundations: Introduction to Program Design & Data Structures, by John Lewis, Peter DePasquale, and Joseph Chase, Addison-Wesley, 2008. Chapters 1 - 5 and Chapter 7 plus some supplementary material on computer systems, number systems and data representation (some of this is in Appendix B), and logic will be covered.

Lab: This course has a required three-hour lab every Tuesday afternoon from 2:50 until 5:50. The purpose of the lab is to give the student a structured experience in software design, implementation, and testing, and to increase the student's ability to use and understand the tools available for software development in the Linux environment. For each lab, there will be a pre-lab assignment designed to prepare the student for lab. The assignment must be handed in at the beginning of lab. Unless otherwise specified, the lab itself must be done during the lab session and turned in before leaving. Associated with most labs will be a short post-lab assignment designed to reinforce lab concepts. Typically the post-lab assignment will be due the second class period following the lab. Late lab work (including pre-lab and post-lab hand-ins) will receive no credit.

Assignments: In addition to regular reading and lab work, there will be several graded assignments during the semester. These assignments are designed to give the student the opportunity to put into practice the problem solving and programming skills they have learned. As such they are one of the most important aspects of the course both for student learning and for assessment. The assignments, most of which involve writing programs, will vary in length and difficulty. You are encouraged to start on them immediately when assigned and get help from the instructor as needed.

Important: Assignments are to be done individually. You may ask class members, lab assistants, and others for help with system questions (e.g., "How do I run my Java program in Eclipse?", "How do I get a printout of my program?") or general information about a topic covered in class (e.g. "What is the symbol for boolean AND?") provided you can do so without divulging or receiving information specific to the solution of the assignment problem. You may not discuss any aspect of the design or coding of a program with anyone except the instructor. This policy will be strictly enforced; see the section on Academic Integrity below.

Late Policy for Assignments: Unless otherwise specified, assignments are to be turned in by 4 pm on the due date. If you anticipate being unable to meet a deadline, talk to me at least 24 hours before the deadline. In extenuating circumstances we may be able to make special arrangements. Please note that this must be discussed -- just sending an email does not automatically grant you extra time. If you have not been granted extra time ten percent per calendar day (24 hours) will be deducted for late work; work more than 2 days late will receive no credit.

Quizzes: Short quizzes will be given weekly to make sure you are understanding the concepts and keeping up with the reading. Usually the quiz will be on Friday unless otherwise noted. Quizzes will be at the beginning of class. The two lowest quiz grades will be dropped when final grades are calculated. No make up quizzes will be given.

Co-Curricular Requirement: The Department of Mathematics, Computer Science, and Physics (MCSP) is offering a series of discussions that appeal to a broad range of interests related to these fields of study. These co-curricular sessions will engage the community to think about ongoing research, novel applications, and other issues that face our disciplines. You are invited to attend all of these events but participation in at least 2 is mandatory. Within one week of attending an event you must submit a one page paper reflecting on (not just summarizing!) the discussion. If you do not turn the paper in within the one week time frame you may not count that event as one you attended. The MCSP discussions are generally scheduled for Wednesdays at 5:30 or Tuesday or Thursday at 7:00. A schedule will be provided soon and will be posted on the course web page. Please discuss scheduling conflicts with the instructor ASAP.

Attendance Policy: Class attendance and coming to class prepared are very important to a student's success in this course. The student is expected to attend every class and lab and to have done all assigned reading and study questions in preparation for class. A detailed schedule of readings for the first two weeks is on the back of the syllabus. This schedule is posted on the course web page and will be updated as the semester progresses. The student is fully accountable for any missed classes and labs.

Grading Policy: The course grade will be based on 3 tests, weekly quizzes, lab work (including pre-lab and post-lab assignments), assignments, two co-curricular activities, and a comprehensive final examination. The course grade is determined using the following weights:

tests.....32%       lab.......15%       quizzes.....10%     co-curricular.... 3%    
assignments.......20%       final exam......20%

Test Dates: Test #1 Monday, September 21
Test #2 Monday, October 26
Test #3 Monday, November 23
Final Exam Thursday, December 10 (8:30 - 11:30 am)

Grading Scale: 93-100A        83-86B        73-76C        63-66D
90-92A-        80-82B-        70-72C-        60-62D-
87-89B+        77-79C+        67-69D+        below 60F

Make-up Policy: Everyone is expected to take tests, quizzes, and the exam and do labs at the scheduled time. Make-ups will be given only for legitimate, documented absences that the instructor has been notified of ahead of time. Make-up tests, if given, may be oral. There will be no make-up quizzes.

Special Needs: If you are on record with the College's Special Services as having special academic or physical needs requiring accommodations, please meet with me as soon as possible. We need to discuss your accommodations before they can be implemented. Also, please note that arrangements for extended time on exams and testing in a semi-private setting must be made at least one week before the exams. If you believe you are eligible for accommodations but have not yet formally contacted Special Services, please call 375-2248 or drop by the Center for Learning and Teaching in Fintel Library.

Academic Integrity: All tests, exams, and assignments are to be the work of the individual student. You are encouraged to get help from the instructor if you need help with any aspect of the course including programs and assignments. Student assistants, tutors, and classmates may help you in the operation of the computer but not with the substance of any work, other than lab work, that is to be turned in for a grade. They may help you understand course concepts but may not show you how to do any particular aspect of an assignment. Students may discuss lab work (including the pre-lab and post-lab assignments) and help each other out but in all cases the work you turn in must be your own. Copying someone else's work or turning in someone else's work is NEVER allowed. Using someone else's work or ideas as your own is plagiarism and an academic integrity offense. Examples of academic integrity violations include copying a program or part of a program (even one line) from someone else, writing code for someone else, telling someone else how to solve a problem or having someone tell you how to solve a problem. Discussion among students about programming projects should be limited to general concepts, not specific aspects of how to complete the work.

Electronic Devices and Academic Integrity: All cell phones and other electronic devices (including pagers, IPods, Blackberrys, and so on) must be turned off prior to entering the classroom or lab. Laptops may be used during class only for taking notes or other class activities. The use of any electronic device during a test or quiz is prohibited. Any use of such a device during a test or quiz will be considered a breach of academic integrity. Handheld calculators may be used only with the permission of the instructor, and when permitted, may not be shared by students (each student must have his/her own).

Computer Use Policies: All students must abide by the Computer Use policies of Roanoke College. Failure to do so will result in involuntary withdrawal from the course.