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

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)
TA Contact Information

Course Information

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

Course Policies

Student Responsibilities
It is very important that you attend lectures (see Grading below). There will be considerable information given in class that is not available elsewhere. Attendance in lab is required. If you must miss a lab for some reason, make arrangements for a make-up session in advance. You are expected to arrive at labs and lectures promptly. Please turn off cellphones.
You will get the most out of this class if you actively participate in the class by asking and answering questions.
You are expected to check your W & L email frequently and check this web page and the schedule for new information.
Throughout this class (and life in general), keep in mind a cowboy's wisdom: "Good judgement comes from experience." You may ask, "How do I get experience?" Bad judgement works every time. My point? Don't be afraid to make mistakes in this class, but make sure you learn from them!

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 be available during office hours and by appointment. I will do my best to respond to questions via email within 24 hours.

Honor System
Programming projects, homework exercises, and exams should be written individually. The standard rules for citing the work of others apply to all your written work.

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 when appropriate and by being respectful of other students.
You are permitted three "sick days" for minor illnesses and one "personal day" which you may use for any 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.

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: