CS 303E: Fall, 2024
Elements of Computers and ProgrammingInstructor: Dr. Bill Young
Unique numbers: 49990, 49995, 50000; Class time: asynchronous (see below); Location: online
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: Wednesdays 1-3pm (GDC 7.810) and by appointment
TAs: Find TA office hours on the class Canvas page.
Greyson Baker: akagbaker at utexas.edu
Ayan Gupta: ayangupta at utexas.edu
Parul Gupta: parulg428 at utexas.edu
Zihang He: zhhe at utexas.edu
Ishita Jain: ishitajain at utexas.edu
Devvrit Khatri: devvrit at cs.utexas.edu
Sairaja Kurelli: saikurelli at utexas.edu
Abhiram Naredla: abhiramnaredla at utexas.edu
Jeremy Nguyen: jn28548 at utexas.edu
Anya Ranavat: anyaranavat at gmail.com
Shyamli Channabasappa: shyamli.channa at utexas.edu
Vidhi Sapru: vidhisapru at utexas.edu
Akshat Shah: akshatshah 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.
Important Class Announcements:
Breaking news important to the class will be posted here. Consult this spot often.
Down the page are:The final test will be Thursday, December 12 from noon-3pm, in Hogg Auditorium. The exam will be comprehensive covering slidesets 1-12. There won't be any questions over Turtle graphics. For questions about the final or the makeup, please view Ed #826. All of the information is there.
- Jump to weekly assignments.
- Jump to the semester schedule.
- Jump to slides and videos.
- Jump to weekly practice problems.
- Jump to find your TA.
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 langugage, 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 are sometimes 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. I strongly suggest that you 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, and some you might not think to ask.
This course carries the Quantitative Reasoning flag. 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 find a description of flags here: Flag Criteria. 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've kept it that way. Most students love the flexibility, but others don't do as well in this format. Also, since there's less one-on-one interaction, it's not always easy for us to see that you're having trouble. If you are, please reach out for help. Don't wait until you are hopelessly behind. We can't help you if we don't know you're struggling.
Note that there is not a specific class meeting time or location; all 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 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:
This section contains a schedule that is my best estimate of everything you'll be responsible for this semester. (A printable version is here: schedule.) Homeworks and projects will be posted on this webpage; and may also be posted on Ed and/or Canvas. Turn in homeworks and projects on Canvas. We'll be providing information on how to take quizzes. Each quiz and Mock Exam will count the same as a weekly homework. All readings are from Liang; you are encouraged to do them, but will not be tested on anything solely from the textbook. View Liang as a supplementary source of information if you can't understand something from the videos.
Week Date Item Optional Reading 1 8/26 Lecture 0: Computing Liang 1.1-1.4 8/26 Lecture 1: What is Python Liang 1.5-1.8 8/30 Optional HW0 due 2 9/2 Labor Day Holiday 9/3 Lecture 2: Simple Python Liang 2.1-2.14 9/4 HW1 due 3 9/9 Lecture 3: More Simple Python Liang 3.1-3.6 9/10 HW2 due 9/12 Quiz 0 4 9/16 Lecture 4: Selections Liang 4.1-5.15 9/16 HW 3 due 9/18 Quiz 1 5 9/23 Lecture 5: Loops Liang 5.1-5.8 9/23 HW4 due 9/27 HW5 due 6 9/30 Lecture 6: Functions Liang 6.1-6.13 10/2 Quiz 2 10/4 HW6 due 7 10/7 Lecture 7: Objects and Classes Liang 7.1-7.7 10/8 Mock Exam 1 10/10 Exam 1 (slidesets 1-6) 8 10/14 Lecture 8: More on Strings Liang 8.1-8.4 10/14 Project 1 due 10/16 HW7 due 9 10/21 Lecture 9: Lists Liang 10.1-10.11 10/21 HW8 due 10/23 Quiz 3 10 10/28 Lecture 10: More on Lists Liang 11.1-11.9 10/29 HW9 due 11/1 HW10 due 11 11/4 Lecture 11a: Files Liang 13.1-13.2 11/4 Lecture 11b: Tuples, Sets, Dictionaries Liang 14.1-14.7 11/6 Quiz 4 11/8 HW11 due 12 11/11 Lecture 12: Recursion Liang 15.1-15.7, 15.10-15.11 11/11 Project 2 due 11/15 HW12 due 13 11/18 Lecture 13: Turtle Graphics Liang 3.7-3.8, 6.14 11/20 Quiz 5 11/22 HW13 due ** 11/25 Thanksgiving Holiday Week 14 12/2 Review 12/4 Project 3 due 15 12/9 Review 12/9 Mock Exam 2 12/12 Exam 2
Questions about Grading:
Weekly homeworks, projects, and exams 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. If you have questions about the grading, please contact "your" TA. In general, Dr. Young won't have graded your work and won't know why you lost specific points. The TAs have been asked to be understanding and flexible regarding grading issues; but in general, Dr. Young won't override their grading decisions unless the decision was clearly unfair. (If you send him a question about your grade, he'll almost certainly will refer you to your TA. Please don't interpret that as rudeness or being uninterested in your situation. He just literally won't know why you got the grade you did, because it was your TA who assigned it.)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 Greyson Baker: A - Be Ayan Gupta: Bh - Cho Parul Gupta: Chu - F Zihang He: G- Ho Ishita Jain: Hu - Kie Devvrit Khatri: Kim - Mao Abhiram Naredla: Mar - K. Nguyen Jeremy Nguyen: L. Nguyen - Pil Anya Ranavat:: Pin - Ri Shyamli Channabasappa: Ro - Sn Vidhi Sapru: Sp - U Akshat Shah : V - 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.
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; if you're not, let Dr. Young know as soon as possible. The Ed system is great at getting you help quickly and efficiently from classmates, TAs, proctors, and the instructor. Rather than emailing questions to the teaching staff, you are strongly 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.
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.
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 probably will not be correct, and may confuse you. Don't rely on them. It is rather difficult for us to get Canvas to compute 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.
Since we don't have a scheduled class meeting, information regarding tests and quizzes likely will come to you 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.
Some of you go by names that are quite different from your official name, i.e., the name on the class roll that I see on the UT registrar's page. This can cause problems at the end of the semester because I may not be able to match the grades on Canvas with the individual for whom I have to submit a semester grade. If your name is William and you go by Bill (as I do), we'll be able to figure that out. But if your name is Susie Jones and you go by Sammy Smith, or if you change names over the course of the semester, that may cause an issue. (This is very common for foreign students who use an English name.) Please let me know if your name you're using in this class is substantially different than the name by which you are registered with the university.
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.
Text:
The text book for this class is Introduction to Programming Using Python by Y. Daniel Liang, Pearson, 2012 or 2013. I view the book as a useful additional resource to help you master the materials. But you will not be responsible for anything that is only in the book. Just between us: the book is listed as required rather than optional only because they wouldn't include an optional book in the Longhorn Textbook Access program (see below).There are a few errors in the book. Here's an errata sheet: Liang Errata.
Notice that this book is ancient in computing years, but also pretty good. You should be able to get it from the Coop or buy it on Amazon or online (see below). Note that you do not need the MyProgrammingLab materials that may or may not come with your textbook. We won't be using that.
A digital version of the textbook is available through the Longhorn Textbook Access (LTA) program, an initiative between UT Austin and the University Co-op to reduce the cost of course materials for students. You can access it through the "My Textbooks" tab in Canvas. You are automatically opted into the program but can easily opt-out (and back in) via Canvas through the 12th class day. If you remain opted-in at the end of the 12th class day you will receive a bill through your "What I Owe" page and have until the end of the 18th class day to pay and retain access. If you do not pay by the 18th class day, you will lose access to the materials after the 20th class day and your charge will be removed. More information about the LTA program is available at LTA Program
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. You'll see a date on each slideset that shows the last time updated; but the changes are typically pretty minor.Class Recordings: Class recordings 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).
Lecture 5: Loops 4up-PDF PDF
Video5.1 (37 minutes).
Video5.2 (25 minutes).
Lecture 6: Functions 4up-PDF PDF
Video6.1 (27 minutes).
Video6.2 (25 minutes).
Video6.3 (23 minutes).
Note that Exam 1 on 10/10 won't cover anything past Lecture 6.Lecture 7: Objects and Classes 4up-PDF PDF
Video7.1 (31 minutes).
Video7.2 (14 minutes).
Video7.3 (29 minutes).
Lecture 8: More on Strings 4up-PDF PDF
Video8.1 (25 minutes).
Video8.2 (32 minutes).
Lecture 9: Lists 4up-PDF PDF
Video9.1 (26 minutes).
Video9.2 (21 minutes).
Video9.3 (26 minutes).
Lecture 10: More on Lists 4up-PDF PDF
Video10.1 (28 minutes).
Video10.2 (21 minutes).
Video10.3 (18 minutes).
Lecture 11a: Files 4up-PDF PDF
Video11a.1 (26 minutes).
Video11a.2 (27 minutes).
Lecture 11b: Tuples, Sets and Dictionaries 4up-PDF PDF
Video11b.1 (26 minutes).
Video11b.2 (22 minutes).
Lecture 12: Recursion 4up-PDF PDF
Video12.1 (26 minutes).
Video12.2 (24 minutes).
Video12.3 (20 minutes).
Video12.4 (13 minutes).
Lecture 13: Turtle Graphics 4up-PDF PDF
Video12.1 (24 minutes).
Video12.2 (25 minutes).
Note that Exam 2 (12/12: noon-2pm) is comprehensive and covers slidesets 1-12. There won't be anything about Turtle Graphics on the exam.
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 much more substantive 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. 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 possible 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
Filename.py toFilename-1.py , thenFilename-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, 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).
Weekly Homeworks:
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. 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/26): 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. 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.
Here's a short video I made that may help you with HW1: how to approach HW1. BTW: Occasionally over the course of the semester, I will make these Zoom videos showing the development of a program. I usually do this from the Zoom linked on Canvas and for some reason this shows up as a meeting on Canvas. Please don't join!
Week-2 (week of 9/2): view the videos for Lecture 2: Simple Python. Do weekly homework 1: HW1 (due 9/4). Note that most homeworks will eventually be due on Fridays but not the first few.
Week-3 (week of 9/9): view the videos for Lecture 3: More Simple Python. Do weekly homework 2: HW2 (due 9/10). You will also have Quiz0 on Thursday 9/12 Information on that will be posted on Ed, Canvas, and here. Finally, note that HW3 will be due on Monday 9/16 HW3 (due 9/16).
Week-4 (week of 9/16): view the videos for Lecture 4: Selections. Weekly homework 3 is due Monday. You'll also have Quiz 1 on Wednesday 9/18. Finally, it would be a good idea to start homework 4 due next Monday: HW4 (due Monday, 9/23).
Week-5 (week of 9/23): view the videos for Lecture 5: Loops. HW4 is also due on Monday, 9/23. Also, do weekly homework 5: HW5 (due Friday, 9/27).
Here's a video I made that may help you with HW5: Hints for HW5.
Week-6 (week of 9/30): view videos for Lecture 6: Functions. Do weekly homework 6: HW6 (due Friday 10/4). You will be having Quiz2 (covering through Week-5 material) on Wednesday 10/2. Don't forget that the midterm is coming up on 10/10. It will only cover material through Lecture 6. We'll also post a Mock Exam so you can practice for Exam 1; the Mock Exam will be due on 10/8. Finally, below is Project 1 due on 10/14.
Here is your first programming project: Project 1: Rock, Paper, Scissors (due Monday 10/14).
Week-7 (week of 10/7): view the videos for Lecture 7: Objects and Classes. Notice that this is a busy week, so manage your time well. It might be smart to put off doing anything with Lecture 7 or HW7 until you're confident of the material for the exam and you're sure you can get Project 1 completed by next Monday. Exams and Projects count much more than a weekly homework. There will be a Mock Exam due on Tuesday (10/8) to give you practice for Exam 1, which will be held on Thursday evening (10/10), from 6-8pm. The exam will cover slidesets 1-6. The Mock Exam counts the same amount as a weekly homework or quiz; it's an excellent way to see if you're ready for Exam 1, so take it seriously. Don't forget that Project 1 will also be due a week from Monday (10/14). There is no weekly homework due this week, but HW7 will be due on Wednesday, 10/16. Here it is: HW7 (due Wednesday 10/16).
Week-8 (week of 10/14): View the videos for Lecture 8: More on Strings. Note that Project 1 is due this Monday, 10/14 and HW7 is due on Wednesday, 10/16. Weekly HW8 will be due Monday 10/21: HW8 (due Monday 10/21)..
Week-9 (week of 10/21): View the videos for Lecture 9: Lists. Recall that weekly homework 8 is due Monday (10/21). Quiz 3 will be Wednesday, 10/23. HW9 will be due next Tuesday: HW9 (due Tuesday 10/29).
Week-10 (week of 10/28): View the videos for Lecture 10: More on Lists. Note that weekly homework 9 is due Tuesday, 10/29. Also, do weekly homework 10 due Friday: HW10 (due Friday, 11/1).
Here is your second programming project: Project 2: Game of Life (due Monday 11/11).
Week-11 (week of 11/4): View the videos for Lecture 11a: Files and Lecture 11b: Tuples, Sets, Dictionaries. Quiz 4 will be Wednesday, 11/6. Also, do weekly homework 11: HW11 (due Friday 11/8). Remember that you also have Project2 due on Monday, 11/11.
Week-12 (week of 11/11): View the videos for Lecture 12: Recursion. Project 2 is due on Monday 11/11. Do weekly homework 12: HW12 (due Friday 11/15)..
This is a short video tutorial on using helper functions for recursive functions: Helper Functions.
Week-13 (week of 11/18): View the videos for Lecture 13: Turtle Graphics. Quiz 5 is Wednesday 11/20. Do weekly homework 13: HW13 (due Friday, 11/22).
Project3: Project 3: Simulating a Market, due Wednesday, 12/4. This is being posted on 11/20, meaning that you have two full weeks to do it. But don't forget that we have a week off for Thanksgiving. So don't put it off.
Week-14 (week of 12/2): you're finished with videos and weekly homeworks. Project 3 is due Wednesday, 12/4.
Week-15 (week of 12/9): Mock Exam 2 will be due Monday, 12/9. The final test will be Thursday, December 12 from noon-3pm, in Hogg Auditorium. The exam will be comprehensive covering slidesets 1-12. There won't be any questions over Turtle graphics.
Weekly Worksheets and Practice Problems:
A former TA Dewayne Benson 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.There is no worksheet for Week1.
Week2 Worksheet.
Week2 answersWeek3 Worksheet.
Week3 answersWeek4 Worksheet.
Week4 answersWeek5 Worksheet.
Week5 answersWeek6 Worksheet.
Week6 answersWeek7 Worksheet.
Week7 answersWeek8 Worksheet.
Week8 answersWeek9 Worksheet.
Week9 answersWeek10 Worksheet.
Week10 answersWeek11a Worksheet.
Week11a answersWeek11b Worksheet.
Week11b answersWeek12 Worksheet.
Week12 answersThere is no worksheet for Week13.
Below are the practice problems on HackerRank or CodingBat:
Week2 Practice Problems
Week3 Practice Problem
Week4 Practice Problems
Week5 Practice Problems
Week6 Practice Problems
Week 7 Practice Problems
Week 8 Practice Problems-1
Week 8 Practice Problems-2
Week 9 Practice Problems-1
Week 9 Practice Problems-2
Week 10 Practice Problems
Week 11 Practice Problems
Exams and Quizzes:
There will be two exams of approximately two hours each, a midterm and final. Exams are cumulative. See the schedule above for dates. The midterm exam will be taken in person in the evening (probably 6-8pm). Information on when and where will be provided well before the exam date. The final exam will be an in-person exam on Thursday, December 12 from noon-3pm. For both the midterm and final, there will be a makeup scheduled. You must have a verifiable excuse, such as a conflict with another exam, to take the makeup. The makeup will be scheduled a day or two after the regular exam. Generally, it will not be possible to take an exam early. So don't plan to leave town before the final exam.During Covid, some students did school remotely, sometimes even from India or China. That put them completely out of synch timewise with Austin. Since this class is asynchronous, theoretically you can take it from anywhere. But it's up to you to accommodate yourself to our schedule; we can't accommodate yours. The one aspect of this class that is not asynchronous is the exams; exams are taken on campus at regularly scheduled times. In general you shouldn't expect that you can take exams remotely.
There will be a Mock Exam prior to each actual Exam so that you can test your knowledge and get familiar with the platform. The mock exam will count the same as a weekly homework or quiz, but will not have the same time constraints as a regular exam.
Quizzes: There will also be several quizzes over the course of the semester, around every other week. In a normal semester, these would be pop quizzes. But in our asynchronous 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 programming problems. Each will be a different version and they will be 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 a very small portion of your grade, so don't freak out if you have to miss one.
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 exams won't 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.
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 (8a.m.-5p.m., Monday-Friday), contact the CMHC 24/7 Crisis Line at 512-471-2255.
Help from Sanger Learning Center: 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. 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 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. The Sanger folks will be posting messages to Canvas before long to tell you how to join.
Computation of Your Grade:
The weighting of the grades for the various aspects of the course are as follows:
Component Percent Midterm Exam 25% Final Exam 25% Weekly Homework and Quizzes 35% Projects 15%
Individual homeworks, quizzes, and mock exams each count the same amount, usually 10 points. The total number of points possible depends on how many total items there are. Last semester, there were 22 total items for a possible of 220 points. I added those up and then divided by 180, effectively dropping four items. (But it's actually better than if I had dropped the lowest four, because every point still contributed to the total score, and you could conceivably score more than 100%.) Details may differ this semester, but I'll do something similar. Bottom line: if you miss a quiz or homework, don't freak out. It probably won't hurt you at all. Just don't miss a bunch of them.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, or think you may have 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 asynchronous class, most accommodations (recording lectures, copies of the slides, stepping out of class, 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 provide on GradeScope; 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; it likely will be too tempting 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.
Some Interesting Links:
As I find items of interest to the class, I will post them here. Newer items are near the top. Some of these links may be stale or broken.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.
Good turtle graphics documentation: Turtle Graphics
Turtle tutorial: Tutorial.
Some issues around floating point: FP issues
Some nice videos on Python from the Khan Academy: Khan Academy Videos.
Python Links
Python Tutorials and Books