CPSC170A Fundamentals of Computer Science II

CPSC170A Fundamentals of Computer Science II
Spring 2016


Instructor: Mr. Scotty Smith
Office Hours: M - Th 6 - 7 PM
Office: Trexler 365-B
E-Mail: chssmith AT roanoke DOT edu
Phone: 375-4962

Course Objectives


This course is part two of a two part introduction to the discipline of computer science. The course focuses on object oriented design and implementation of programs. Programming topics include inheritance, polymorphism, abstraction, lists, maps, trees, searching, sorting, and recursion.

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

  1. design, implement (in the Python programming language), and test algorithms to solve problems. In particular, to implement the algorithms the student will be able to
    • use inheritance, abstraction, polymorphism, exceptions, and recursion.
    • implement linear data structures and associated algorithms.
  2. explain the fundamental concepts underlying objects, classes, and methods.
  3. analyze and compare the asymptotic performance of algorithms.

Course Content


Text:

Work Load: Students should expect to spend 15 hours combined on in-class and out of class assignments and activities.


Lab: For three hours every week, students will complete lab exercises during the scheduled times. The purpose of the lab exercises is to give the student a structured experience in software design, implementation, and testing. The lab exercises will also increase the student's ability to use and understand the tools available for software development in the Linux environment. Unless otherwise specified, the lab exercises must be done during the scheduled time, and turned in before leaving.

Assignments: In addition to regular reading and lab work, there will be weekly 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 Python program in Windows?", "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. In addition, looking up solutions (either full or partial) to assignments/lab activities on Google or Stack Overflow is completely prohibited. This policy will be strictly enforced; see the section on Academic Integrity below.

Quizzes, Tests, and Exams: Short quizzes will be given to make sure you are understand the concepts and are keeping up with the course work. Quizzes will be at the beginning of class. The lowest quiz grade will be dropped when final grades are calculated. No make-up quizzes will be given. Two tests and one comprehensive final exam will be given.

Test Dates: Test #1 Friday, Februray 5
Test #2 Friday, March 4
Test #3 Friday, April 8
CPSC 170 A Final Exam Tuesday, May 3rd (2:00PM - 5:000PM)

MCSP Conversations: 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.

Grading: Course grades are assigned based on the following weights and scale:

Grade Weights: quizzes.............14% tests............30% final exam.......19%
assignments......25% labs............10% co-curricular......2%
Grade 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

Course Policies


Academic Integrity: It is accepted that you have read and understood the standards for academic integrity at Roanoke College. All tests, quizzes, assignments and exams 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 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 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. This includes using code attained from Google searches and StackOverflow. Discussion among students about programming projects should be limited to general concepts, not specific aspects of how to complete the work.

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.

Attendance Policy: Class attendance is vital to your success in this course; material covered during missed sessions is the responsibility of the student. Conversations held in class illuminate the published class materials and are subject to evaluation on subsequent tests and quizzes. Moreover, quizzes and in-class assignments are not available for make-up.

Late Assignments: Unless otherwise specified, assignments are to be turned in before the start of class 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 (including weekends and holidays); work more than 2 days late will receive no credit. Electronic "glitches" do not waive your responsibility to submit your work in a timely manner.

Make-up Policy: Everyone is expected to take tests, quizzes, and the exam 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.

Electronic Devices: All cell phones must be muted prior to entering the classroom or lab and kept away at all times. Unless otherwise noted, cell phones that are visible will be confiscated to be collected at the end class. The use of any unauthorized electronic device during a test or quiz is prohibited. This includes cell phone, MP3 Players, and any other non-educational devices. Any use of such a device during a test or quiz will be considered a breach of academic integrity.

Special Services: If you are on record with the College's Special Services as having special academic or physical needs requiring accommodations, please meet with me during my regular office hours or schedule an appointment 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 every test or exam. 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.