CPSC170A
Fundamentals of Computer Science II

Syllabus

A summary of the course objectives, content, policies, and schedule.

Instructor: Dr. Durell Bouchard
Office Hours: MWF: 2:30-3:30, TTH: 3:00-4:00, also by appointment or open door
Office: Trexler 365-C
E-Mail:
Phone: 375-4901

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 C++ programming language), and test algorithms to solve problems. In particular, to implement the algorithms the student will be able to
  1. explain the fundamental concepts underlying objects, classes, and methods.

  2. analyze and compare the asymptotic performance of algorithms.

  3. use the Linux command line interface for running C++ programs and navigating the Linux file structure.

  4. express integers in twos complement and vice versa and be able to perform and understand computer arithmetic.

Course Content


Prerequisites: CPSC120

Text: How to Think Like a Computer Scientist: C++ Version, by Allen B. Downey, Green Tea Press, 2012.

Lab: This course has a required one-hour lab after every class (MWF 4:30PM – 5:30PM). 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. Associated with most labs will be post-lab assignments designed to reinforce lab concepts. Post-lab assignments are due before the beginning of class. Late lab post-lab assignments, will receive no credit.

Projects: In addition to regular post-lab assignments, there will several larger programming projects. These projects are designed to give students the opportunity to put into practice designing and implementing larger programs. As such it is one of the most important aspects of the course both for student learning and for assessment. You are encouraged to start on them immediately when assigned and get help from the instructor as needed.

Quizzes 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. No make-up quizzes will be given. One midterm exam and one comprehensive final exam will be given.

Test Dates: Midterm Friday, March 2
Final Exam Monday, April 30 (6:30PM-9:30PM)


Co-curricular: The Department of Mathematics, Computer Science, and Physics is offering a series of lectures designed to engage the campus community in discussions of ongoing research, novel applications, and other issues that face these disciplines. You are invited to attend all of the events but participating in at least two is mandatory. Within one week of attending an event you must submit a one page, single-spaced, paper (to Inquire) reflecting on 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.

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

Grade Weights: quizzes……10% projects………..30% midterm exam…24%
post labs…10% co-curricular…2% final exam……….24%

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


Course Policies


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 Assignment Policy: 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. Unexcused late work 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 quizzes and exams at the scheduled times. 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.

Academic Integrity: It is accepted that you have read and understood the standards for academic integrity at Roanoke College. All tests 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 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.

Subject Tutoring: Subject Tutoring, located on the lower level of Fintel Library (Room 5), is open 4 p.m. – 9 p.m., Sunday – Thursday. We are a Level II Internationally Certified Training Center through the College Reading and Learning Association (CRLA). Subject Tutors are highly trained Roanoke College students who offer one-on-one tutorials in a variety of general education and major courses such as: Business, Economics, Mathematics, INQ 240, Modern Languages, Lab Sciences, INQ 250 & Social Sciences (see all available subjects at http://www.roanoke.edu/tutoring). Tutoring sessions are available in 15, 30, or 45-minute appointments. Feel free to drop by for a quick question or make an appointment at http://www.roanoke.edu/tutoring for a longer one-on-one appointment. For questions or concerns, please call 540-375-2590 or .

Accessible Education Services: Accessible Education Services (AES) is located in the Goode-Pasfield Center for Learning and Teaching in Fintel Library. AES provides reasonable accommodations to students with documented disabilities. To register for services, students must self-identify to AES, complete the registration process, and provide current documentation of a disability along with recommendations from the qualified specialist. Please contact Dr. Sue Brown, Director of Academic Services and Acting Coordinator of Accessible Education Services, at 540-375-2247 or by e-mail at to schedule an appointment. If you have registered with AES in the past and would like to receive academic accommodations for this semester, please contact Dr. Brown at your earliest convenience to schedule an appointment.

Course Schedule


This course expects you to spend at least 12 hours of work each week inside and outside of class.

Week of Topic
Jan 15 Introduction to Linux and C++
Jan 22 Conditionals
Jan 29 Recursion
Feb 5 Structs
Feb 12 Vectors
Feb 19 Classes
Feb 26 File I/O
Mar 5 Spring Break
Mar 12 Arrays
Mar 19 Pointers
Mar 26 Linked Lists
Apr 2 Searching
Apr 9 Hash Tables
Apr 16 Binary