Skip to the content.

COMP141 - Computer Science I: Programming Fundamentals (Spring 21)

Official Course Description

An introduction to the fundamental concepts and practices of procedural programming. Topics include data types, control structures, functions, arrays, files, and the mechanics of running, testing, and debugging. Emphasis is placed on program design and problem solving techniques. The course also includes an introduction to the historical and social context of computing and an overview of computer science as a discipline.

Unofficial Course Description

CS 141 is a required course for computer science majors and should be taken during the first year. It is the first course in the sequence for majors and offers an introduction to the fundamental principles of programming, abstraction, and design.

This course is aimed at helping students acquire the reasoning and abstraction skills needed to design algorithms and implement them as computer programs, while also illustrating some of the “big ideas” of computer science. This course teaches one how to think as a computer scientist, by teaching the process of building abstractions to hide implementation details, and of controlling the intellectual complexity of designing large software systems by decomposing problems into simpler sub-problems. We will explore the joy and beauty of computing and see how computing skills are applicable in everyday life.

Though computer science is more than just programming, knowing how to translate your thoughts into code is an important skill for a computer scientist to have. This course will use the Python programming language as the vehicle for exploration of fundamental computer science concepts. However, this is not a course about Python; it is about the structure and interpretation of computer programs.

Course Objectives

At the end of this course, you should be able to

Course topics

Not necessarily in this order:

Textbook

Programming in Python (online textbook by zyBooks), customized version for our class.

Supplemental materials will be distributed in class. The textbook is designed to serve as a reference and there may be material discussed in class that the textbook does not cover.

Prerequisites

None. This course does not assume any previous programming or computer science experience. You are expected to have a reasonable high-school mathematics background to appreciate the use of the mathematical notation.

Coursework

Topic Tentative weight
Programming projects 30%
zyBook assignments 7%
Programming labs 7%
Midterm 1: Date TBD 16%
Midterm 2: Date TBD 20%
Comprehensive final exam 20%

Grades of A–, B–, C–, and D– are guaranteed with final course grades of 90%, 80%, 70%, and 60%, respectively. If your final course grade falls near a letter grade boundary, I may take into account participation, attendance, and/or improvement during the semester.

Office Hours

Scheduled office hours will be on the course website. Outside of these hours, I am available by appointment. Generally, I will be in my office during the day, and you can feel free to stop by any time–my door is always open!

Workload

It is important to stay current with the material. Learning to program takes regular practice, and you should be prepared to devote at least 2–3 hours outside of class for each in-class lecture. In particular, you should expect to spend a significant amount of time for this course working on a computer trying example programs and developing programming assignments. Do not wait to the last minute to start your programming assignments.

Programming assignments

Coding Style

Designing algorithms and writing the corresponding code 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. To receive full credit for graded programs, you must adhere to good programming practices. Therefore, your assignment must contain the following:

Class Conduct

Students With disabilities

If you have a documented disability and wish to receive academic accommodations, please contact the Office of Student Accessibility Services as soon as possible.

Collaboration

All programming assignments done outside of class, both the major Python assignments and the zyBook exercises, should be completed on one’s own. Occasionally there will be collaborative assignments completed during class, but all homework assignments must be completed individually. Put very simply, do not discuss any programming assignment solutions or share code with anybody else. I will be checking for similar assignments and will turn violations over to the honor council.

Academic Integrity

Plagiarism, cheating, and similar anti-intellectual behavior are serious violations of academic ethics and will be correspondingly penalized. If you are concerned about a possible violation of this kind, please talk with me. I understand that being a student at Rhodes can be stressful sometimes and you will have many demands on your time. However, I would much rather have you turn in a partially-completed assignment or do poorly on a test than have you violate the Rhodes Honor Code. I can — and very much want to — help you if you don’t understand the material, but violations of academic integrity will be dealt with harshly.

Unless otherwise specified, everything you submit in this course must be your own work and represent your individual effort. These are all included in the definition of reportable Honor Code violations for this course: copying all or part of a solution to a problem, downloading a solution from the internet and submitting it as your own, having someone else provide the solution for you, or allowing someone else to copy from you. If you have any doubt about what type of behavior is acceptable, please talk with me.

Diversity

A diverse learning community is a necessary element of a liberal arts education, for understanding of self requires understanding of others. We are committed to fostering a community in which diversity is valued and welcomed. To that end any discrimination or harassment on the basis of race, gender, color, age, religion, disability, sexual orientation, gender identity or expression, genetic information, and national or ethnic origin, will not be tolerated in the classroom.

We are committed to providing an open learning environment. Freedom of thought, a civil exchange of ideas, and an appreciation of diverse perspectives are fundamental characteristics of a community that is committed to critical inquiry. To promote such an academic and social environment we expect integrity and honesty in our relationships with each other and openness to learning about and experiencing cultural diversity. We believe that these qualities are crucial to fostering social and intellectual maturity and personal growth.

Intellectual maturity also requires individual struggle with unfamiliar ideas. We recognize that our views and convictions will be challenged, and we expect this challenge to take place in a climate of open-mindedness and mutual respect.

Sexual misconduct disclosure

Rhodes is committed to ensuring a safe learning environment that supports the dignity of all members of the Rhodes community. Rhodes prohibits and will not tolerate sexual misconduct, which includes, but is not limited to, dating/domestic violence, sexual assault, sexual exploitation, stalking, sexual harassment and sex/gender discrimination. Rhodes strongly encourages members of the Rhodes community to report instances of sexual misconduct immediately. All Rhodes faculty, staff, Peer Advocates, and Resident Assistants are Mandatory Reporters (exceptions are confidential resources: Counseling Center, Chaplain, and Student Health Center) and are required by the College to report any knowledge they receive of possible violations of this policy to the Title IX Coordinator. If you choose to share information related to sexual misconduct with me, I am required to report it to the Title IX Coordinator; however, you will control how your report is handled and you are not required to pursue a formal claim. The goal is to make you aware of the range of options and resources that are available to you. For more information about Rhodes’ sexual misconduct policy or to make a report please see www.rhodes.edu/titleix.

FERPA

Federal law prevents me from discussing your grade in my course with anyone other than you. The Family Educational Rights and Privacy Act (FERPA) has also been strengthened by recent court cases so that it is not permissable to discuss grades via email. If you want to talk about your grade in the course, please talk to me in person.

I reserve the right to alter this syllabus as necessary.