Skip to main content.

Course Overview

Welcome to CSCI 111, Fundamentals of Programming I! In this course, you'll do more than just computer programming: you'll learn the fundamental problem-solving ideas in computer science.

This course is appropriate for all students who want to learn how to write computer programs and think like computer scientists. It is the usual first course for computer science majors. A deeper coverage of these topics will be presented in CSCI 112.

Course Description

This course will cover

Structure
Classroom work will consist of lecture, discussion, and lab experimentation. Written work will consist of weekly programming projects, several exams, and weekly analyses of articles about CS-related issues.

Lecture: MWF 8:30 a.m. - 9:30 a.m. in Parmly 405
Lab: T 8:30 a.m. - 11:30 a.m. in Parmly 405

Objectives
After taking this course, you should be able to

Instructional Staff

Sara Sprenkle
Office: Parmly Hall 410
Office Hours: Wednesday 2-4 p.m., Thursday 10:30-11:30 a.m. and 1:00-2:30 p.m. or by appointment
E-mail Address:
How to Email a Professor
Phone Number: (540) 458-8309 (it is better to email me than to call)

Student Assistants:

Evening Help Schedule

Course Information

Textbook

Course Policies

Student Responsibilities

Instructor Responsibilities

I will try to make this course and its material as exciting for you as it is for me. I will be respectful of student questions and misunderstandings. I will give prompt, constructive feedback from assignments. I will be available during office hours and by appointment. I will do my best to respond to questions via email within 24 hours.

Honor System

You may discuss programming assignments informally with other students/people. However, sharing a solution, in the form of experimental results or the design or implementation of a program, is an honor violation. For example, if you look at another student's code to find out "how you did that", that is an honor violation. Similarly, a student should not tell another student exactly how they solved the problem, dictating the lines of code. Rather, students should talk through the problem-solving process, asking and answering questions to improve understanding of both parties.

You should not use AI-based assistants (e.g., ChatGPT or GitHub Co-Pilot). You will not have access to AI-based assistants on an exam. While using AI-based assistants can improve productivity of programmers with sufficient levels of experience, you are not at that level.

Students should know where to draw the line between getting legitimate outside assistance with course material and outright cheating. Students who obtain too much assistance without learning the material ultimately cheat themselves the most. If you have any uncertainty about what this means, consult with me before you collaborate. All written assignments should be done individually.

Participation, attendance, and professionalism

To receive full credit for class participation, attendance, and professionalism, you must be actively engaged in the classroom by answering and asking questions each class when appropriate and by being respectful of other students. The average grade for participation is a B-.

The schedule, including important dates, is posted at the beginning of the semester. You should plan accordingly. If there are acceptable conflicts, tell me at the beginning of the semester and then remind me about a week in advance.

You are permitted three sick/personal days for minor illnesses or any other reason (e.g., family occasion). No documentation is needed or requested for these absences. Unexcused absences beyond these will result in deduction in your participation grade. Excused university absences (e.g., for intercollegiate athletics, documented by a note from a faculty or staff member) do not count towards your sick days or personal days.

General grading policies

Programs turned in with syntax errors will receive no credit. "Roll back" your program (often by commenting out the new trouble spots) into a state where it does not have syntax errors.

You are responsible for keeping track of your grades and calculating your grade.

Late policy

Any assignment turned in after the due date/time but on the same day will be penalized 10%. Any assignment turned in after the day on which it is due will be penalized an additional 10% for each school day it is late. No assignment will be accepted that is more than three school days late. If you turn an assignment in late, you must indicate this on the top of the paper.

Extensions are rarely granted. You have three hours in lab to complete the assignment with help from the instructor and student assistants, plus a few days to finish up if you need more time. If you leave lab before the period is over, you will not be granted an extension for any reason.

Academic Accommodations

Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student’s responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.

Students who have approved academic accommodations must make arrangements to use those accommodations directly with the instructor no later than the last day of class. Students approved for extra time will receive that time at the tail end of the morning exam period or before the beginning of the afternoon exam period (for example, ending at 1:30 PM for a morning exam or beginning at 12:30 PM for an afternoon exam).

How to Succeed in This Course

Grading

Grades for the course will be computed as follows: