Computer Science I

COMS 261 - Fall 2024

Announcements

Course Description

This is an introductory course on computer science and algorithmic problem solving using the programming language Python. We will cover the topics listed in the schedule below. We will also focus on writing, running, debugging, and documenting computer programs.

Tentative Schedule

Week Topic Notes Projects
1 Variables, expressions, & statements Week 01 Project 1
2 Functions Week 02 Project 2
3 Conditionals Week 03 Project 3
4 Recursion Week 04 Project 4
5 More on functions Week 05
6 Iteration, Midterm 1 Week 06 Project 5
7 Strings Week 07 Project 6
8 Lists Week 08 Project 7
9 Dictionaries Week 09 Project 8
10 Tuples Week 10 Project 9
11 File Week 11 Project 10
12 Classes and objects Week 12
13 Classes and functions, Midterm 2 Week 13
14 Classes and methods Week 14
15 Inheritance Week 15

The schedule above is tentative, and may be subject to change. Changes will be announced in class, and you are responsible for knowing about any changes even if you miss the class when they are announced.

Attendance Policy

Attendance in this class is required. Repeated absences may result in a forced withdrawal from the course. You are responsible for any material you miss due to absence. Please let me know ahead of time if you know that you will not be able to attend class.

Grading Policy

The term grade will be based on the following factors.

Component     Proportion    
Midterms 30%
Projects 45%
Final Exam 25%

I use the following grading scale for projects and exams.

Letter Grade Percentage
A 96 - 100
A- 92 - 95
B+ 88 - 91
B 84 - 87
B- 80 - 83
C+ 76 - 79
C 72 - 75
C- 68 - 71
D+ 64 - 67
D 60 - 63
F 0 - 59

In-Class Labs

Programming is something that you can only learn by doing. During most class periods you will be asked to write short pieces of code. If you aren’t able to finish a task, then you should try to figure it out later on your own or come to office hours for help. These in-class programming exercises won’t be collected, although similar questions are likely to appear on tests and projects.

Projects

There will be several programming projects throughout the semester. You must complete these projects on your own. Do not ask AI or other students in this class for help on projects. If you include any code from another student or from the internet, that is plagiarism and will be treated as such. To avoid plagiarizing other students, you should avoid looking at other students’ code because you cannot “unsee” it. You should also never share your code with other students. If you need help with a project, see me or one of the student tutors for this course.

Projects will be graded based on several factors. Code should be written following the Python PEP-8 style guide with clear comments. It should make sense, and it should run correctly on all test cases. These factors will be graded holisticly using the following rubric.

All projects will be posted at least 4 days before they are due.

Exams

There will be two in-class midterm exams and a cumulative final. These exams will be announced in advance, and you will know exactly what concepts will be covered on each exam.

Office Hours

My office hours are shown on my weekly schedule. I am also available by appointment. If you can’t stop by during my regular office hours, just ask me after class or by e-mail, and I’ll be happy to make an appointment that works for both of us.

Special Accommodations

Students who think they may need accommodations in this course because of the impact of a disability are encouraged to meet with me privately at the beginning of the semester. Students also should contact Melissa Wood, Title IX/504 Coordinator (mwood@hsc.edu, 434-223-6061) to verify their eligibility for reasonable accommodations. Early contact will help to avoid unnecessary inconvenience and delays.