Fundamentals of Computer Science I


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

Instructor: Dr. Durell Bouchard
Office Hours: MWF: 1:20-2:20, TTH: 2:40-3:40, also by appointment or open door
Office: Trexler 365-C
E-Mail: bouchard@roanoke.edu
Phone: 375-4901

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 Python. 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 Python 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

    • use the basic control structures (conditionals and loops), data structures (lists and dictionaries), and modules provided by the Python language.

    • implement Python classes.

  2. explain the fundamental concepts underlying objects, classes, and methods.

  3. use the Linux command line interface for running Python 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.

  5. prove logical equivalences and correctly use logical equivalences in writing Boolean expressions in programs.

Course Content

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: Python Programming in Context, Second Edition, by Bradley N. Miller and David L. Ranum, Jones & Bartlett, 2013.

Lab: This course has a required one-hour lab after every class (MWF 3:30PM – 4: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. Unless otherwise specified, the lab itself must be done during the lab session and turned in before leaving. Associated with most labs will be pre-lab and post-lab assignments. The pre-lab assignments are designed to prepare students for lab. The post-lab assignments are designed to reinforce lab concepts. Both pre-lab assignments and post-lab assignments are due before the beginning of class. Late lab work, including pre-lab and post-lab assignments, will receive no credit.

Assignments: In addition to regular reading and lab work, there will be weekly programming assignments. 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 will vary in length and difficulty. You are encouraged to start on them immediately when assigned and get help from the instructor as needed.

Quizzes, Tests and Exams: Three tests and one comprehensive final exam will be given.

Test Dates: Test #1 Monday, September 22
Test #2 Monday, October 27
Final Exam Tuesday, December 9 (2:00PM-5:00PM)

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: pre & post labs….19% tests…………20% final exam……..20%
assignments……..20% labs………….19% co-curricular……2%

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. 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.

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

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.

Electronic Devices: All cell phones and pagers must be turned off prior to entering the classroom or lab. The use of any electronic device during a test or quiz is prohibited. This includes cell phones, personal media players, personal digital assistants, and laptops. Any use of such a device during a test or quiz will be considered a breach of academic integrity.

Disability Support Services: The Office of Disability Support Services, located in the Goode-Pasfield Center for Learning and Teaching in Fintel Library, provides reasonable accommodations to students with identified disabilities. Reasonable accommodations are provided based on the diagnosed disability and the recommendations of the professional evaluator. In order to be considered for disability services, students must identify themselves to the Office of Disability Support Services. Students requesting accommodations are required to provide specific current documentation of their disabilities. Please contact Rick Robers, M.A., Coordinator of Disability Support Services, at 540-375-2247 or e-mail robers@roanoke.edu.

If you are on record with the College’s Office of Disability Support Services as having academic or physical needs requiring accommodations, please schedule an appointment with Mr. Robers as soon as possible. You need to discuss your accommodations with him before they can be implemented. Also, please note that arrangements for extended time on exams, testing, and quizzes in a distraction-reduced environment must be made at least one week before every exam.

Course Schedule

Week of Topic Assignment/Test
Aug 27 Introduction to Computer Science, Linux, and Python
Sep 1 Variables, Expressions, and Statements
Sep 8 Functions Drawing
Sep 15 Repetition Animation
Sep 22 Graphics Test 1
Sep 29 Conditionals 2D Game
Oct 6 Strings Mouse Game
Oct 13 Fall Break
Oct 20 Binary Word Game
Oct 27 Lists Test 2
Nov 3 Dictionaries Platform Game
Nov 10 2D Lists Chatbot
Nov 17 Classes Level Editor
Nov 24 Thanksgiving Break
Dec 1 Object Orientation Final Project