Down the page are:
TAs are now associated with groups of students. See that here: 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.
The Sanger Learning Center offers a variety of services to students. See their flyer here: Sanger Flyer.
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.
Take note: this is a hybrid class, mostly online but with an in-class component. The class meets each Friday in ART 1.102. You must attend the first class meeting, August 29. In addition, the three exams will be given in-class at the regular time and location. Otherwise, attendance is not required, but there will be a small extra credit benefit from attending, plus you'll be able to get your questions answered, see programs developed, etc.
A student asked me to post: Hey y'all! If you're interested in Finance and Investing, you should check out Texas Undergraduate Investment Team (TUIT). It's a close-knit, 25 person team that manages a $40-45k portfolio. I've not only been able to learn a bunch, but have also made some of my closest friends through the team and would highly recommend checking it out if you're even a little bit interested! All majors are welcome, and no previous finance knowledge (only interest) is required or expected. Here's the flyer with the interest form for more info: TUIT Flyer
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.
Week-3 (week of 9/8): view the videos for Lecture 3: More Simple Python. Do weekly homework 2: HW2: Karatsuba Multiplication (due 9/9). You will also have Quiz0 on Wednesday 9/10. Information on that will be posted on Ed, Canvas, and here. Finally, note that HW3 will be due on Monday 9/15 HW3: Wind Chill Computation (due 9/15).
Friday (9/12) we went over a solution to this problem which was HW4 from a previous semester: Compute Ordinal Date. This one really tests using conditionals. Here's the solution I went over in class: OrdinalDate.py
Week-4 (week of 9/15): view the videos for Lecture 4: Selections. Weekly homework 3 is due Monday, 9/15. Also, it would be a good idea to start homework 4 due next Monday: HW4: Decision Trees (due Monday, 9/22).
Friday (9/19) we'll be going over some programming problems from last semester's exam1: Exam1 Practice Programs.
Week-5 (week of 9/22): view the videos for Lecture 5: Loops. HW4 is also due on Monday, 9/22. Also, do weekly homework 5: HW5: Lucky Sevens (due Monday, 9/30). Of course we'll also be having Exam 1 on Friday, 9/26. Exam 1 only covers material through slideset 4.
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.
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.
This course previously carried the Quantitative Reasoning flag. Flags were recently discontinued. Quantitative Reasoning courses are designed to equip you with the skills necessary for understanding the types of quantitative arguments you will regularly encounter in your adult and professional life. You can expect that a substantial portion of your grade to come from your use of quantitative skills to analyze real-world problems. We don't assume that you're a math major, but some problems may assume basic arithmetic and logic skills; if you don't know something, just ask, and we'll provide additional explanation.
During the height of COVID-19, this class was moved entirely online. I found that it worked very well in that format, and I kept it that way, until last semester. It's now considered a hybrid class, with a weekly Friday in-class section, but is still largely online. Most students love the flexibility, but others don't do as well in this 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 role so that students who come can receive a small extra credit boost to their grade, but there is no penalty for not attending.
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. Some of them may also be available via Canvas or elsewhere; but this website should be your go-to location. 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.
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.
TA Name | Student Names |
Tarun Dasari: | A - Bh |
Ayan Gupta: | Bi - Chr |
Parul Gupta: | Chu - Fi |
Imran Hemani: | Fr - Hi |
Anika Kasat: | Ho - Kh |
Devvrit Khatri: | Ki - Mag |
Abhiram Naredla: | Mah - Ne |
Jeremy Nguyen: | Ng - Pe |
Anya Ranavat:: | Ph - Ro |
Vidhi Sapru: | Ru - So |
Alex Xu: | Sp - Van |
Katie Yan: | Vas - 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.
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.
If you turn off Ed notifications and miss an important posting, you are responsible. Yes, there's a lot of traffic; you can customize your Ed feed to only send updates periodically, but don't turn it off entirely. You can make your posts anonymous to your classmates, but not to the instructors. Posts must be pertinent and respectful. Don't use Ed as a place to vent or trash anyone. Please don't waste everyone's time posting jokes and other fluff. There will be around 600 people posting, so even a small percentage of junk is too much.
The running averages on Canvas definitely will not be correct, and may confuse you. Don't rely on them. In particular, they assume that all points are equal. So if there are 300 possible points on projects and 300 on exams, Canvas will assume that projects and exams count the same in computing your course average; that's not even close. It is rather difficult for us to get Canvas to estimate your course grade correctly, since we might be dropping some things, normalizing scores, giving extra credit, etc. The raw scores on individual assignments, quizzes and tests should be correct. If they are not let us know immediately. But ignore the running averages. Information on how to compute your class average for yourself is given below.
Information regarding tests and quizzes will be posted on this webpage, but also via Canvas mail and via Ed. That's why it's a very bad idea to turn off notifications for Canvas mail (or Ed notifications) because you may miss important announcements. Also, make sure that the email associated with you on Canvas, Ed, and GradeScope is actually an email that you check regularly. And remember: important information will always be linked from this webpage. This page should be your go-to location for information.
If you go by a name this is substantially different from your official name on the UT registrar's page, please let us know. Otherwise, we may have difficulty submitting your grade at the end of the semester. (This is very common for foreign students who use an English name.)
Please don't send me emails via Canvas. Instead, email me directly at byoung at cs.utexas.edu. The reason for this is that Canvas doesn't show the "thread" of the email; so if your message is part of a 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 responding to. Remember that you're one of around 600 students in the class.
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 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).
Lecture 4: Selections
4up-PDF PDF
Video4.1 (24 minutes).
Video4.2 (22 minutes).
Video4.3 (14 minutes).
Note that Exam 1 on Friday, 9/26 won't cover anything past Lecture 4.
Lecture 5: Loops
4up-PDF PDF
Video5.1 (37 minutes).
Video5.2 (25 minutes).
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. 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 a weekly quiz, 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
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, quizzes, 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).
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.
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.
All videos and the associated slidesets are linked above on this page.
Readings from Liang are optional; the suggested readings are
indicated on the schedule above. BTW: I put copyright marks on
everything so that if I find it on Chegg or similar sites, I can
insist that it be removed.
HW -1: 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/25): 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 9/1): view the videos for Lecture 2: Simple
Python. Do weekly homework
1: HW1:
Print Initials
(due 9/3). Here's a short video I made that may help you with HW1:
how to approach HW1.
In the Friday class (9/4) we went over a solution to this
problem which was HW2 from a previous
semester: Easter Sunday problem.
Here's the solution discussed in class:
Solution Code
Week-3 (week of 9/8): view the videos for Lecture 3: More
Simple Python. Do weekly homework
2: HW2:
Karatsuba Multiplication (due 9/9). You will also have Quiz0 on
Wednesday 9/10. Information on that will be posted on Ed, Canvas, and
here. Finally, note that HW3 will be due on Monday 9/15
HW3:
Wind Chill Computation (due 9/15).
Friday (9/12) we went over a solution to this problem which was
HW4 from a previous semester: Compute
Ordinal Date. This one really tests using conditionals.
Here's the solution I went over in class:
OrdinalDate.py
Week-4 (week of 9/15): view the videos for Lecture 4:
Selections. Weekly homework 3 is due Monday, 9/15. Also, it would
be a good idea to start homework 4 due next Monday:
HW4:
Decision Trees (due Monday, 9/22).
Week-5 (week of 9/22): view the videos for Lecture 5:
Loops. HW4 is also due on Monday, 9/22. Also, do weekly homework
5: HW5:
Lucky Sevens (due Monday, 9/30). Of course we'll also be having
Exam 1 on Friday, 9/26. Exam 1 only covers material through slideset
4.Weekly Homeworks:
There is no worksheet for Week1.
Week2 Worksheet.
Week3 Worksheet.
Week4 Worksheet.
Week5 Worksheet.
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.
Week2
Practice Problems
Quizzes: There will also be several quizzes over the course of
the semester. In a non-hybrid class, these would be pop quizzes. But
in our hybrid format, we'll announce them well in advance and you'll
have several different times during the day when you can take it
(e.g., 8am, noon, 4pm, 8pm). They probably will be given on the online
platform GradeScope, and will consist of two programming problems.
Versions will differ in different time slots. Quizzes are autograded.
You'll have an opportunity to practice with the platform before the
first quiz that counts.
If you miss a quiz, you won't be able to take a makeup. We
can't reschedule a quiz even if you have an excellent excuse for not
taking it. However, each quiz will count the same as one weekly
homework; i.e., it's not a large portion of your grade, so don't freak
out if you have to miss one. Just don't miss many of them.
Do not take any quiz more than once on penalty of a 0 on the quiz.
If you have serious issues during the quiz administration, post a
message on Ed ASAP. Don't send an email because we may not see
that in time to help you. If you take it early, do not discuss
the content with anyone else in the class who may not have taken it.
During a quiz, you may consult the slidesets, your book, any notes
you've taken, practice problems, and previous homeworks. You may
not consult the internet or any other person.
Several students in past semesters have had difficulties because
they used a different email for GradeScope than the one used for
Canvas. If you do that, the scores on quizzes may not be
reflected on Canvas. Please ensure that you use the same email for
both. If we find that you have multiple accounts on GradeScope, we'll
consider that probable evidence of cheating.
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 Jolie
Dinh (jhd2335 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. SI
sessions for this semester are:
Weekly Worksheets and Practice Problems:
Former TA Dewayne Benson has put together some worksheets that will
provide additional practice. The good thing about these is that they
ask some questions similar to what you'll encounter on the exams.
This is unlike the quizzes, which strictly cover programming
questions. It is suggested that you try these worksheets as we post
them. They won't be collected, but feel free to ask questions on Ed
about any items on which you're having
problems.
Week2 answers
Week3 answers
Week4 answers
Week5 answers
Week3
Practice Problem
Week4
Practice Problems
Week5
Practice Problems
Exams and Quizzes:
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 makeups are planned, but we'll try to accommodate emergencies.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.
Also, you can check the SI: Fa25 CS303E Canvas announcements for the
most accurate information regarding them.
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 Homework and Quizzes | 25% |
Projects | 15% |
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.
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 quizzes is provided on GradeScope; extra time for exams is providing by administering them in a separate location. If you have questions, please ask.
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 (quizzes, 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 this semester: 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.>
A previous TA created two videos that shows how to create a file in an editor and run it in Windows or MacOS. If you still aren't able to do that, I suggest you watch either: Windows video or Mac OS video.
Also, here's a pretty good video one of the TAs found on YouTube explaining how to create a simple Python file (on Windows) and run it: Running a Python Program in Windows
A former TA, Katherine Liang, has created some tutorial videos you might find helpful: see them at Kathy's videos. Currently she has videos relating to: Python Basics: ord and chr; Python Loops with break and continue; Recursion, linear search and binary search.
Some issues around floating
point: FP
issues
Some nice videos on Python from the Khan Academy:
Khan
Academy Videos.