Skip to main content.

Announcements

Course Overview

Welcome to CS 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 CS 112.

Course Description

This course will cover

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

Objectives
After taking this course, you should be able to

Instructional Staff

Sara Sprenkle
Office: Parmly Hall 410
Office Hours: Wednesday 3:30-4:30 p.m., Thursday 12:30-3:30 p.m., or by appointment
E-mail Address:
Phone Number: (540) 458-8309 (it is better to email me than to call)

Student Assistant: Nicole Carter

Course Information

CS 111, Section 02
Lecture: MWF 2:30 p.m. - 3:25 p.m. in Sci Add G14
Lab: T 2:30 p.m. - 5:35 p.m. in Parmly 405

Textbook

An Introduction to Computer Science with Python by Dr. Lambert is available online to students in this course under password protection. Ask Professor Sprenkle if you haven't received the password.

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. However, sharing a solution, in the form of experimental results or the design or implementation of a program, is an honor violation. 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 and attendance
To receive full credit for class participation and attendance, you must have less than three unexcused absences from lecture and lab and 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.

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.

Late policy
All assigned work is due on the date specified. 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 50% of the total value for that assignment. 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.

Grading

Grades for the course will be computed as follows:

Programming Style

Programming is not a dry mechanical process but an art form. Well-written code has an aesthetic appeal while poor form can make other programmers and instructors cringe. Programming assignments will be graded based on correctness and style. Good programming practices usually include many of the following principles: