CS 303E: Fall, 2026
Elements of Computers and Programming

Instructor: Dr. Bill Young

Unique numbers: 54625, 54630, 54635
Class time: Hybrid (class meetings F 9am, 10am, 11am); Location: ART 1.102
This website: www.cs.utexas.edu/users/byoung/cs303e/syllabus303e.html
Instructor Office: GDC 7.810; Phone: 512-471-9782; Email: byoung at cs.utexas.edu
Instructor Office Hours: Wednesday 1-3pm (GDC 7.810) and by appointment
TAs: Find TA office hours on the class Canvas page.
Greyson Baker: akagbaker at utexas.edu
Tarun Dasari: TDasari9 at utexas.edu
Shalini Dhar: shalinidhar at utexas.edu
Arnav Jain: aj35685 at my.utexas.edu
Anika Kasat: anika.kasat at utexas.edu
Yejune Kim: yk9487 at my.utexas.edu
Srikar Kolipaka: sk62334 at my.utexas.edu
Erika Salvador: erikasalvador at utexas.edu
Colin Stack: cps2633@eid.utexas.edu
Leo Xiao: lx2925 at my.utexas.edu
Alex Xu: alex.xu.gp at gmail.com
Raymond Zhu: rayz at utexas.edu




Class slides, videos, assignments, and other information may be linked on Canvas or Ed. They will always be linked on this webpage. So use this page as your first place to look for class information.

Down the page are:


Important Class Announcements:

All announcements, class materials, scheduling matters will be posted on or linked from this webpage. It should be your go-to source for information. Some items may also be posted on Canvas or Ed; but don't count on it. Go here first!

Individual TAs are associated with groups of students. That information is posted below: Jump to find your TA. Remember that "your" TA is the one who will be grading your submissions; go to him/her for questions about your grades. But you can go to any TA for help.

Weekly homeworks will be posted here, but also down the page: Jump to weekly assignments. They will appear here for a week or two, but always available down the page in the Weekly Homeworks section.

HW -1 (minus 1): You are required to fill in this Acknowledgement of Proper and Improper Use of Generative AI in this class: acknowledgement form.. You can initial and sign the pdf electronically,or you can print it, initial and sign it. Upload a scan or photo of the completed form to the available assignment on Canvas. You won't get grades for anything else until this is done. Also, carefully read this syllabus and this additional document: How to Succeed in CS303E. Yes, I know these are long, but they'll answer in advance most of the questions that typically come up about this class.

Week-1 (week of 8/24): Make sure you've done HW -1. Read Lecture 0: Why Computing Matters (there is no associated video). View the videos for Lecture 1: What is Python. Also, attempt weekly homework 0: HW0: Getting Started. You won't turn in the homework, but it will get you started in using Python, so do it. If you encounter problems, ask questions on Ed. Note that you also have HW1 due on Wednesday of next week. So you probably want to get started viewing the Week-2 videos.

Week-2 (week of 8/31): view the videos for Lecture 2: Simple Python. Do weekly homework 1: HW1: Print Initials (due 9/2). Here's a short video I made that may help you with HW1: how to approach HW1.

Each week, you'll also be expected to complete the weekly worksheet. These are relatively simple and don't count much. But they are excellent preparation for the exams; so do them carefully. After week N, Worksheet N will be due the following Monday. Upload your answers to the appropriate Canvas assignment. Here's the first one: Worksheet2 (due 9/7). BTW, there is no Worksheet 1.

In the Friday class (9/4) we're going over a solution to this problem which was HW2 from a previous semester: Easter Sunday problem. Feel free to try it on your own. Here's the solution we'll discuss in class: Date of Easter Solution Code.

Week-3 (week of 9/7): view the videos for Lecture 3: More Simple Python. Do weekly homework 2: HW2: Prefixes (due 9/8).

Finally, note that HW3 will be due on Monday, 9/14: HW3: Bowling Handicap (due 9/14). Also, do Worksheet3: Worksheet3 (due 9/14).

Beginning 9/8/26, Supplemental Instruction Sessions (Sanger Learning Center) will be held at these times:

  1. Wednesdays, 6-7pm @ GAR 2.128
  2. Fridays, 2-3pm @ MEZ 1.212
Our SI Leader Alex Corley will notify you of any changes.

I was asked to post this: Natural Sciences Council was founded in 1972 to serve as a liaison between the students and the faculty in the College of Natural Sciences (CNS). We help direct feedback of programs in the college and work to resolve the problems students face in their daily academic and social communities. Through our events and programs, we connect students to the resources they need to succeed here and beyond, including campus entities, students of similar interests, faculty members, and organizations around UT and Austin. We constantly seek feedback from CNS students regarding functions and programs in the college and focus on how we can improve in order to enhance the CNS student experience. See their flyer here: Flyer

Dr. Young's office is in the south wing of GDC. You have to take the south elevator, because the two towers don't connect on the 7th floor.

Feel free to email me at byoung at cs.utexas.edu or click this link: (Send me an email message). Please don't send me emails via Canvas.



About this Course:

CS303E is the first course in the Programming and Computation series (previously the Elements of Computing series) for non-CS majors. Computing is an integral part of many disciplines. This is especially true of STEM fields, but being able to think computationally and write programs is useful across the board. This course will introduce basics of programming within the context of a popular and powerful programming language, Python. We will study the syntax and special features of Python, develop our own algorithms, and translate them to computer code. We will learn problem solving techniques for a wide variety of problems amenable to computer solution. No prior programming experience is required or assumed. Despite the name, this is almost entirely a programming class; we won't be covering the structure of computers.

Students in this class come from a wide variety of majors and backgrounds. If you have previous significant programming experience in high school classes, other college classes, or on your own, you may get bored in this class. Consider taking the available exam to test-out of this course and begin with CS313E instead. You can find information on testing out of the class here: Testing Out. On the other hand, beginning students without much programming experience are often dismayed to find that this class is rather challenging. If you're expecting a class where you don't have to work, this isn't the class for you.

Here's some advice on how to succeed in this class: How to Succeed in CS303E. Read this. It's a bit long, but contains a lot of useful information, and will likely answer most of the questions you'll have about this class, including many you wouldn't think to ask.

During the height of COVID-19, this class was moved entirely online. I found that it worked pretty well in that format. It's now considered a hybrid class, with a weekly Friday in-class section, but is still largely online. Many students love the flexibility, but others don't do as well in this format. If you don't feel that you have the self-discipline to do well in a class that is largely online, I suggest that you sign up instead for the other sections of this class that are taught in a face-to-face format.

It will be helpful for you to come to the Friday sessions. They give you the opportunity to ask questions and to see the development of programs in real time. We'll take roll so that students who come can receive a very small extra credit boost to their grade, but there is no penalty for not attending, except that you may not learn the material as well as you otherwise would.

Most course content is delivered online via the recorded lectures, which you can view at your convenience, as long as you've viewed them by the week for which they're assigned. Videos and the accompanying slides will typically be made available a week or two before they are due. Make sure to keep up. The recorded lectures and associated slides will be made available to you below on this website: Jump to slides and videos. Despite the largely asynchronous nature of this class, this is not a self-paced course. You are responsible for having viewed the videos the week they are assigned.

If you have some special circumstance that makes internet access difficult or impossible, let me know as soon as possible and I can work with you.

Class Schedule:

The following link is to a schedule that is my best estimate of everything you'll be responsible for this semester: schedule. Homeworks and projects will be posted on this webpage; and may also be posted on Ed or Canvas. Turn in homeworks and projects on Canvas.

Questions about Grading:

Weekly homeworks and projects are graded by the TAs. Each TA grades for a specific alphabetic range of students' last names. You can find your TA in the chart below. You will establish a connection to this specific TA; but don't hesitate to attend other TAs' office hours as well. Exams are graded collectively by all of the TAs and the instructor. If you have questions about the grading on homeworks and projects, please contact "your" TA. In general, Dr. Young didn't grade your work and won't know why you lost specific points.

If you have a personal emergency and need additional time on an assignment, contact your TA as soon as possible. Again, the TAs have been asked to be lenient and understanding, but don't abuse this.

To find your TA, see the TA associated with the alphabetic range containing your last name below. You can find TA emails in the header of this page.

TA Name Student Names
Tarun Dasari:A - Bel
Shalini Dhar:Ber - C
Arnav Jain:D - Gok
Anika Kasat:Gom - Je
Yejune Kim:Ji - La
Srikar Kolipaka:Le - McC
Erika Salvador:McM - Ok
Colin Stack:On - Red
Leo Xiao:Rey - Stee
Alex Xu:Stew - Vei
Raymond Zhu:Vel - Z

Some of the TAs hold their office hours on Zoom (or equivalent) and others in person. You can access Zoom via the Zoom link on the class Canvas page. We will also communicate via email or, preferably, Ed. The schedule of the TAs office hours will be available via Canvas. Please don't send email via Canvas.

BTW: you may not realize it, but most of you have an email of the form your_EID@my.utexas.edu. If I need to send you an email, that's likely the one I'll use, because it's the only email I have for you; it's the one listed on the registrar's official roster for the class. It's also the one by which UT will send you official messages. So if you didn't know that you have such an email, you should find it and check it periodically or risk missing some very important information.

Using Ed Discussion:

We will be using Ed Discussion for much of our class communication. You should be enrolled automatically in the class Ed feed within 24 hours of enrolling. You are encouraged to post your questions on Ed. However, don't post code and other items on Ed that give away solutions to homework or projects, unless you post them privately (visible only to yourself and the instructors.)

Please use the same email on Ed, Canvas, GradeScope, and elsewhere in the class. Otherwise, we may not be able to figure out who you are and record your grades correctly.

Using Canvas:

Canvas is a learning management system used in most classes on campus. You will submit most assignments on Canvas and that's also where your assignment, quiz and test grades will be posted. You should be enrolled automatically in Canvas for the class; if you're not, let us know ASAP. It is your responsibility to check grades on Canvas and verify their correctness. If you think there is an issue or omission, call it to our attention immediately. A week after they are posted, we'll assume that the grades are OK.

The running averages on Canvas definitely will not be correct, and may confuse you. Don't rely on them.

Information regarding tests will be posted on this webpage, but possibly also via Canvas mail and via Ed. This page should be your go-to location for information.

Please don't update the "sortable name" field on Canvas. It messes up data exporting.

Please don't send me emails via Canvas. Instead, email me directly at byoung at cs.utexas.edu. There are two reasons for this: 1. I can't respond to a Canvas email without going to Canvas; if I try from my mail client the response always bounces. 2. Canvas doesn't show the "thread" of the email; so if your message is part of a longer conversation, I may not be able to reconstruct the context. When I get a Canvas message that says "I agree" or "What did you mean by that?" I don't want to have to spend an hour trying to figure out what the heck you're talking about. Remember that you're one of around 600 students in the class.

Text:

The optional textbook for this course is Starting Out with Python (6th edition), by Tony Gaddis. For this edition of the book there is only a digital version which you can purchase here:
Gaddis book. Earlier editions of the book have been used at UT for some time so there are likely physical copies of edition 5 available. Those are fine, if you prefer a hard copy. No class content will come only from the book.

Class content is all available via the recorded lectures and accompanying slides. View the book as a supplemental source that can be helpful if you're having trouble grasping some concept. Alternatively, there are vast resources for Python available online.

Class Lecture Videos and Accompanying Slides:

All of the class lecture videos and accompanying slides will be made available via links below as we cover new material. Note that I tinker with the slides as I find typos or find ways to explain things better. So some slides may differ in small ways from what you see on the videos. That's nothing to worry about.

Class Recordings: Class recordings and slidesets are reserved only for students in this class for educational purposes and are protected under FERPA. The recordings should not be shared outside the class in any form. Violation of this restriction by a student could lead to a Student Misconduct proceedings.

Lecture 0: Consider Computing 4up-PDF PDF
Note that I didn't record a video for Lecture 0. Please just read through the slides.

Lecture 1: What is Python 4up-PDF PDF
Video1.1 (16 minutes).
Video1.2 (26 minutes).
Video1.3 (13 minutes).

Lecture 2: Simple Python 4up-PDF PDF
Video2.1 (29 minutes).
Video2.2 (31 minutes).

Lecture 3: More Simple Python 4up-PDF PDF
Video3.1 (27 minutes).
Video3.2 (21 minutes).
Video3.3 (28 minutes).

Assignments:

The only way to learn a programming language is to write programs. Shorter programming homeworks will be assigned nearly every week. You will also have three larger programming projects assigned over the course of the semester. All assignments/projects are due at the end of the due day (11:59pm). Answers must be submitted on Canvas in the form of a Python code file. You can turn in weekly homeworks and projects up to two days late with a penalty of 10% per day. They generally won't be accepted after that; but check with your TA if you have some personal emergency.

All assignments must be your own work; do not do team coding, share code or allow others to see your code, or use an automated assistant such as ChatGPT or Claude. You can always get help from the instructor or TAs; but make sure you always do your own work. We take cheating very seriously and have very sophisticated tools to detect cheating or collusion.

By the way, most of the work in writing a program is in the design. So if you and a friend were to write pseudocode together and each then individually code from that, our tools might still flag that as cheating. You're much better off doing your work completely on your own. It's much safer to get help from the TAs or instructor than from a friend.

There will be weeks during the semester where you have an weekly homework due and also an exam or project due. That's just the way it is. Plan ahead! If you wait until the last day to study or work on a project, you have no one to blame but yourself.

If you submit an assignment multiple times, Canvas renames your file from Filename.py to Filename-1.py, then Filename-2.py, etc. Don't worry about that; we always grade the latest version.

The assignments are designed to build your skills methodically in the use of particular aspects of Python programming. Later in the semester you will learn Python features that would have made some of the earlier assignments quite a bit easier. Some of you have previous programming experience and may know about these features. But don't use constructs on assignments or exams that we haven't covered in class yet. You will lose points! If you have questions about what you can use, just ask (preferably on Ed so everyone will see the answer).

Weekly Homeworks and Projects:

Links to weekly homeworks and projects will appear here and recent ones will also appear in the Important Class Announcements at the top of this page. Homeworks are always due by 11:59pm on the due date.

All videos and the associated slidesets are linked above on this page.

HW -1 (minus 1): You are required to fill in this Acknowledgement of Proper and Improper Use of Generative AI in this class: acknowledgement form.. You can initial and sign the pdf electronically,or you can print it, initial and sign it. Upload a scan or photo of the completed form to the available assignment on Canvas. You won't get grades for anything else until this is done. Also, carefully read this syllabus and this additional document: How to Succeed in CS303E. Yes, I know these are a bit long, but they'll answer in advance most of the questions that typically come up about this class. They are fair game for questions on a quiz!

Week-1 (week of 8/24): Make sure you've done HW -1. Read Lecture 0: Why Computing Matters (there is no associated video). View the videos for Lecture 1: What is Python. Also, attempt weekly homework 0: HW0: Getting Started. You won't turn in the homework, but it will get you started in using Python, so do it. If you encounter problems, ask questions on Ed. Note that you also have HW1 due on Wednesday of next week. So you probably want to get started on the Week-2 material.

Week-2 (week of 8/31): view the videos for Lecture 2: Simple Python. Do weekly homework 1: HW1: Print Initials (due 9/2). Here's a short video I made that may help you with HW1: how to approach HW1.

In the Friday class (9/4) we're going over a solution to this problem which was HW2 from a previous semester: Easter Sunday problem. Feel free to try it on your own. Here's the solution we'll discuss in class: Date of Easter Solution Code.

Week-3 (week of 9/7): view the videos for Lecture 3: More Simple Python. Do weekly homework 2: HW2: Prefixes (due 9/8).

Finally, note that HW3 will be due on Monday: HW3: Bowling Handicap (due 9/14).

Weekly Worksheets and Practice Problems:

Former TA Dewayne Benson has put together some worksheets that will provide additional practice. Worksheet K will be due the Monday after week K and should be submitted on Canvas. The good thing about these is that they ask some questions similar to what you'll encounter on the exams. (Dewayne has a quirky sense of humor, so some of the questions are a bit tortured!)

We'll also post practice problems on HackerRank or CodingBat for each week. These also will not be collected, but they provide excellent practice related to the material for the week. It is suggested to do as many of these as you have time for. We won't post solutions, but you are welcome to ask questions on Ed.

There are no practice problems for Week 1.

Week2 Practice Problems
Week3 Practice Problem

Exams:

There will be three exams this semester. All are in-class exams of about one hour each given at the regular time and place of our Friday class. Since you've signed up for this class given at that time, you're expected to be available for the exam. No general makeups are planned, but we'll try to accommodate emergencies. If you do take a makeup, it will likely be at my office.

Getting help:

It is a good idea to post your questions on Ed, so that others can comment and also see the answer. But please don't post homework or lab solutions or large code fragments except in private messages to the instructors. The TAs will manage and grade the projects and homeworks and they are your best source of information on those. General questions about class material or tests should be directed to Dr. Young.

FERPA prohibits instructors from discussing grades with students over email. However, it allows doing so if you provide explicit permission. So, if you ask via email for an update on your grades or how you're doing in the class, please understand that I can't do it unless you explicitly say that you're OK with me providing an email response.

If you are having personal issues that are affecting your performance in the course, feel free to reach out to Dr. Young or to the TAs, if you feel comfortable doing so. This will allow us to provide any resources or accommodations that we can. If immediate mental health assistance is needed, call the Counseling and Mental Health Center (CMHC) at 512-471-3515. Outside CMHC business hours (8am-5pm Monday-Friday) contact the CMHC 24/7 Crisis Line at 512-471-2255.

Help from Sanger Learning Center: Every semester this course is supported by Supplemental Instruction (SI) sessions from the Sanger Learning Center Flyer. SI Sessions are led by experienced and trained students who develop engaging, structured, small-group activities for you to work through. The leader this semester is Alex Corley (arc5792 at my.utexas.edu). These sessions are a consistently scheduled time for you and your classmates to tackle difficult content and learn the best approaches to the course! More information on session times and how to access them will be made available. You're welcome to attend sessions at any point in the semester but regular participation in SI Sessions has been shown to improve students' performance by an average of one-half to a full letter grade higher than the class mean. It is highly recommended for everyone.

Beginning 9/8/26, SI Sessions will be held at these times:

  1. Wednesdays, 6-7pm @ GAR 2.128
  2. Fridays, 2-3pm @ MEZ 1.212
Alex will notify you of any changes.

Computation of Your Grade:

The weighting of the grades for the various aspects of the course are as follows:

Component Percent
Exam 1 20%
Exam 2 20%
Exam 3 20%
Weekly Homework25%
Projects 15%
Attendance small extra credit

Individual homework (and filling in the course evaluation at the end) each count the same amount, 10 points. Worksheets count 2 points each. The total number of points possible depends on how many total items there are. We'll also be dropping some of homeworks/worksheets. So if you miss one, don't freak out. It probably won't hurt your grade much, if at all.

Your semester course grade is computed from the raw scores on Canvas using a Python program I have written. Grades for the entire course tentatively will be averaged using the weighting below:

Course score Grade Course score Grade
[93...100]A [73... 77)C
[90... 93)A- [70... 73)C-
[87... 90)B+ [67... 70)D+
[83... 87)B [63... 67)D
[80... 83)B- [60... 63)D-
[77... 80)C+ [ 0... 60)F

Note that this is tentative. The grades may be curved and may be a bit more generous than this. They will not be less generous. That is, if you have a 93 you are guaranteed an A; but someone who gets an 92 might also get an A, depending on the final distribution of grades in the class.

Students Needing Accommodations:

The university is committed to creating an accessible and inclusive learning environment consistent with university policy and federal and state law. Please let me know if you experience any barriers to learning so I can work with you to ensure you have equal opportunity to participate fully in this course. If you are a student with a disability and need accommodations please contact Disability and Access (D&A). Please refer to D&A's website for contact and more information: D&A Website. If you are already registered with D&A, please deliver your Accommodation Letter to me as early as possible in the semester so we can discuss your approved accommodations and needs in this course.

In our hybrid class, most accommodations (recording lectures, copies of the slides, etc.) are either already available to everyone in the class or not particularly applicable: Accommodations. The accommodation that is typically most relevant in this class is extra time on tests. That will be provided, but only if we know that you're entitled to the accommodation in time for us to arrange it. Extra time for exams is providing by administering them in a separate location. If you have questions, please ask.

Scholastic Dishonesty:

Academic dishonesty will not be tolerated. See http://www.cs.utexas.edu/academics/conduct for an excellent summary of expectations of a student in a CS class.

All work must be the student's own effort. Work by students in previous semesters, code that you find on-line, or code written by an automated system such as ChatGPT is not your own effort. Don't even think about turning in such work as your own, or even using it as a basis for your work. We have very sophisticated tools to find such cheating and we use them routinely. It's far better to get a 0 on an assignment (or exam) than to cheat.

By the way, even if you do all of the work yourself, sharing your work with someone else is still cheating. You will both be punished. You may think that you're doing your friend a favor. You're not; you're putting both of your academic futures at risk.

Many students begin every assignment by immediately going to Google, trying to find something that might keep them from having to solve the problem for themselves. That is an incredibly stupid thing to do. For one thing, you won't learn the material. But more importantly, you're starting down a moral slippery slope that's liable to send you over a cliff. Suppose you find something up to and including a complete solution that some idiot has posted on GitHub; will you have the self-discipline not to use it?

You may naively believe that changing variable names and reordering code will keep you from being caught. Computer science is amazing! We have very sophisticated automated tools that can compare thousands of programs and find copying even if the variable names are different and the code is substantially re-ordered. With very high likelihood, you will be caught if you cheat. Every semester, students learn this the hard way. Every semester, several students are caught cheating in this class and get an F and/or are reported to the Dean of Students office. Don't be one of those students. It's not worth it!

Sharing of Course Materials is Prohibited: No materials used in this class, including, but not limited to, lecture hand-outs, videos, assessments (exams, projects, homework assignments), in-class materials, review sheets, and additional problem sets, may not be shared online or with anyone outside of the class unless you have my explicit, written permission. Don't post your work on any publicly available site, such as GitHub, Course Hero, or Chegg.com. It's understandable that you're proud of your work, but this just invites copying for students in this and subsequent semesters. If someone copies your work, even without your knowledge, you will both be liable to punishment.

Unauthorized sharing of materials promotes cheating. It is a violation of the University's Student Honor Code and an act of academic dishonesty. I am well aware of the sites used for sharing materials, and any materials found online that are associated with you, or any suspected unauthorized sharing of materials, will be reported to Student Conduct and Academic Integrity in the Office of the Dean of Students. These reports can result in sanctions, including failure in the course, and even expulsion from the University.

No deviation from the standards of scholastic honesty or professional integrity will be tolerated. Scholastic dishonesty is a serious violation of UT policy; and will likely result in an automatic F in the course and in further penalties imposed by the department and/or by the university. Don't do it! If you are caught, you will deeply regret it. And even if you're not caught, you're still a cheating low-life.

New: I recently received this from the Dean of Students' office:

Beginning on Aug. 25, 2025, the ability of faculty members to handle academic misconduct on their own and without consulting Student Conduct and Academic Integrity (SCAI) in the Office of the Dean of Students--a process formerly known as "Faculty Disposition"--will no longer be an option. This process has been discontinued as part of a broader institutional effort to ensure that all cases are handled with consistency and due process. Moving forward, there will be only one path for faculty members to resolve academic misconduct cases: All suspected misconduct must be formally referred to SCAI. Faculty and teaching staff members should update all course syllabi to reflect the new policy and use the official referral form to report any suspected academic misconduct.



Python Links

Python Tutorials and Books