Description. This course is an introduction to computer programming for students with little or no previous experience. Students will learn to read, write, and reason about computer programs. Topics include data types, conditionals, loops, arrays, functions, graphics, and sound.
Lectures. Lectures meet at 1:30–2:50pm on Mondays and Wednesdays at McDonnell 105. Lectures introduce new material.
Precepts. Precepts meet at 1:30–2:50pm on Tuesdays and Thursdays at McDonnell 105. Precepts review the material from the corresponding lecture.
Labs. Labs meet at 10:30–1pm on Fridays at McDonnell 105. Labs are intended as a way for students to begin the week's programming assignment.
Sebastian Caldas Faculty Instructor |
Marcel Dall'Agnol Faculty Instructor |
Ammaar Alam Undergraduate Course Fellow |
Erik Lawani Undergraduate Course Fellow |
Programming assignments. There are 6 weekly programming assignments. For policies on due dates and late days, please see below.
Quizzes. There are 6 weekly quizzes. For instructions on how to register for PrairieLearn, please see below.
Final exam. The final exam will be on Wednesday August 14th.
Participation. Participation in this course is fundamental to engaged learning. You are expected to attend each lecture, precept, and lab on time and ready to participate fully. The first two absences to lecture are automatically waived. Similarly, the first two absences to precept are automatically waived. This is intended to account for illnesses, religious observances, and technical issues with your iClicker app. Please do not request a waiver unless you will be exceeding this limit. To request a lecture attendance waiver, contact the instructors.
Course grades. Your grade for the course will be based on the following components: programming assignments (45%), final exam (25%), quizzes (15%) and participation (15%).
While final letter grade cutoffs will be determined at the end of the semester, a 93.0% will guarantee an A, 90.0% for an A–, 87.0% for a B+, 83.0% for a B, 80.0% for a B-, 77.0% for a C+, 73.0% for a C, 70.0% for a C-, or 60.0% for a D. You risk course failure if you earn below 60.0% of the available points. Staff discretion may be applied to adjust borderline cases.
Course website. This course website includes links to course content, including lecture slides, precept lessons, and programming assignments.
Textbook. Computer Science: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne. Addison–Wesley Professional, 2016. ISBN 978-0134076423. The assigned readings are required.
Booksite. The booksite contains many useful resources while programming.
Canvas. We will post grades in Canvas.
acknowledgments.txt
file.
acknowledgments.txt
All assignments must include a file named
acknowledgments.txt
, which includes your
acknowledgement of original work
(as specified in Rights, Rules, Responsibilities),
any citations, names and dates of those who provided help, etc.
Submitting the acknowledgments.txt
indicates that you have stopped working on your assignment
and your submitted work is ready to be graded.
Your assignment solution will only be graded if the acknowledgments.txt
is submitted.
Penalties for late submissions. Late assignments are assessed a penalty equal to 10% of the possible points on the assignment per day (or partial day) late. The penalties for your first two late days are waived automatically. This is intended to account for illnesses, religious observances and travel. To request an extension beyond that, post in the appropriate Ed Discussion forum. Please do not contact course staff if you need to utilize one (or more) of your automatically waived late days.
Late Days and partners. If you are working with a partner, any late penalties apply to the group. The number of free late days a group can use is the minimum of the number of free late days each member has remaining.
your partner | course staff | COS 125 alums | classmates | AI Chatbots | Other | |
---|---|---|---|---|---|---|
discuss concepts with... | yes | yes | yes | yes | yes | yes |
acknowledge collaboration with... | yes | yes | yes | yes | yes | yes |
show your code/solutions to... | yes | yes | yes | no | no | no |
view any code/solutions of... | yes | no | no | no | no | no |
copy any code/solutions of... | yes | no | no | no | no | no |
Collaboration acknowledgment.
You must acknowledge all collaboration in the acknowledgments.txt
file for that week’s assignment.
Please include the names (and dates) of the instructors, course fellows, students, etc. who provided assistance.
You must also indicate if you helped another student.
Discussing concepts. Discussing general concepts includes asking what is the syntax of a for loop, or explaining how to input a sequence of numeric values. It does not include a discussion about specific code-related solutions to programming assignments.
Collaboration with an AI chatbot. You may not use AI composition software (such as ChatGPT or GitHub Copilot) to create or debug programming assignment code.
Collaboration with classmates. We encourage you to discuss common concerns with classmates either in private via personal interactions or publicly in the Ed Discussion course forum. These discussions must be kept at a general level, without exposing your solutions.
For example, you may discuss: | But, you may not: |
---|---|
How to interpret an error message. For example, “What does IndexOutOfBoundsException mean?” |
Look at another classmate’s solutions (or show another classmate your solutions). |
How to use a feature in IntelliJ. For example, “How do I start the embedded terminal?” | Lead a classmate step-by-step through any part of the assignment (or allow a classmate to lead you step-by-step through any part of the assignment). |
Collaboration with course staff. You are welcome to discuss your solutions with course staff members (instructor and course fellows) in office hours or via private Ed Discussion posts. Do not post code on Ed or email us your code; instead, submit your code via TigerFile - the course submission system.