Syllabus - Computer Science 314 -
Data Structures (Computer Programming 2)
The University of Texas at Austin · Fall 2025
Note, this Syllabus is for Professor Scott's sections of CS314. Professor Kaur is teaching a section of CS314 this term as well. If you are registered for Professor Kaur's section, please refer to that syllabus.
Situations not covered explicitly by this syllabus shall be adjudicated by the instructor.
Table of Contents:
Course web page: www.cs.utexas.edu/~scottm/cs314
Course Objectives: This is a second course in computer programming. The purpose of the course is to learn how to use and implement canonical data structures. The data structures covered include lists, iterators, stacks, queues, priority queues, trees, binary search trees, balanced binary search trees, sets, maps, hash tables, heaps, tries, and graphs. The course also includes basic algorithm analysis/ rough estimate of number of executable computations, an introduction to the object oriented concepts of encapsulation, inheritance, and polymorphism, recursion, canonical sorting and searching algorithms, testing, debugging, dynamic programming, and functional programming in Java. Students will be able to implement medium sized programs using the concepts listed. The course is taught using Java. This page contains a detailed list of the course content.
We have high expectations, but you can succeed in the course. Based on the historical GPA and drop rate, about 20% of the students who attempt this course do not complete it. Succeeding takes a lot of hard work. Here are some tips for success in the course.
Formal Course Prerequisite: CS312 (or credit for CS312) with a grade of C- or higher
Informal Course Prerequisites: Mastery of the following basic programming topics: data types, variables, expressions and operators, control structures (looping and decision making), procedures( a.k.a. functions, methods, or subroutines), parameters, arrays (1d and 2d), simple user defined data types (records, structures, objects), how to apply the previous concepts in the Java programming language, top down design.
You should be able to design and implement a program in Java based on a problem statement. The problem should be complex enough that a well designed solution requires the following:
For example, create from scratch a program that allows two people to play a game of connect 4 on the computer. The display can be a simple text based interface. Both players share the same keyboard and take turns.
Startup: Most of the things you need to do to set up your infrastructure for the class are on the class startup page.
Class Meetings - (Building Information for UT Austin)
Lecture (Students may attend either of the 3 classroom lectures with Professor Scott regardless of which one they are registered for.):
MWF 11 am - 12 pm, GDC 2.216 (uniques 54620, 54621, 54625, 54630, 54635, 54636)
MWF 1 - 2 pm, RLP 0.130 (uniques 54640, 54645, 54650, 54655, 54660) This lecture shall be recorded using the Lectures Online recording system. The recording only includes what is shown on the media screen and audio.
MWF 2 - 3 pm, RLP 0.130 (uniques 54685, 54690, 54695, 54700, 54705)
Conduct for in person lectures:
I do not allow the use of laptops,
mobile devices or
any device with a raised screen in class. If you have a device that can lay FLAT
on the desk such as a tablet or 2-1 computer you may use it. I strongly
recommend you do not have your phone or other electronic devices out in
class. I
implore you to not use class time to e-mail, post to Instagram, view TikTok or Snapchat, etc. If you are addicted to your smartphone, laptop, or tablet,
consider this class your social media free zone. Further, I guarantee you that you will not
do well in the course if you are simply looking up long enough to type out
what’s on the projector screen before you return to social media apps. The empirical
research on this topic is clear: people are incapable of learning and retaining
information when they are multi-tasking on their computers (and it’s a
distraction to the people sitting around you that are trying to learn
something).
The only time a laptop or mobile device may used during class
is to answer the day's Instapoll question. (See the startup page for more
information on Instapoll.)
Discussion Sections.
Students must attend the discussion section (held on Mondays) for which they are officially registered. Look at your class schedule on UT Direct (NOT Canvas) to verify your unique course number. Check your class schedule at the MyUT website: https://my.utexas.edu/
Discussion sections (colloquially known as section) meet most Mondays during the semester. See the course schedule for the days sections meet. Sections are led by Teaching Assistants who have taken and excelled in this course. During section you will have the chance to work on small-ish programming problems similar in nature to the types of questions that will appear on exams.
You must be present at the start of section when the section problem is given to received credit. Section problems cannot be made up. Section problems with little or no effort shall not receive credit.
Supplemental Instruction and Collaborative Study Sessions
This course is supported by Collaborative Study (CoStudy). CoStudy Sessions are led by experienced and trained students who develop engaging, structured, small-group activities for you to work through. These sessions are held at 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 via the course schedule and the course discussion website, Ed Discussion. You’re welcome to attend sessions at any point in the semester.
Teaching Staff:
Instructor,
Mike Scott, Professor of Instruction, email:
scottm@cs.utexas.edu
-
office:
GDC 6.304
.
Help Hours: Mondays 6 - 8 pm and Wednesdays, 3 - 5 pm.
Help hours shall be held in the 3rd floor public
computer lab in GDC 3.302. If you cannot make these hours
email me to request an appointment.
Section Unique ID | Section Time |
Section Location |
TA | TA Help Hours T = Tuesday, H = Thursday. Help hours in GDC 3rd floor public lab. |
54620 | 9 - 10 am | PAR 201 | Sean | T 4 - 6, H 4 - 6 |
54621 | 10 - 11 am | JES A215A | Sam | M 4 - 5, H 6 - 7, F 10 - 11, 2 - 3 |
54625 | 12 - 1 pm | UTC 1.116 | Ahmad | W 6 - 10 |
54630 | 1 - 2 pm | JES A218A | Victoria | T 4 - 6, F 12 - 2 |
54635 | 2 - 3 pm | RLP 1.106 | Shreya | W 1 - 3, F 1- 12 |
54640 | 10 - 11 am | RLP 1.102 | Diego | M 12 - 2, T 1 - 2, W 2 - 1 |
54645 | 11 am - 12 pm | JES A217A | Brayden | W 9 - 1 |
54650 | 12 - 1 pm | RLP 1.102 | Nidhi | WTWH 2 - 3 |
54655 | 2 - 3 pm | JES A217A | Karnika | M 3 - 4, W 1 - 2, 3 - 4, H 2 - 3 |
54660 | 3 - 4 pm | PMA 7.112 | Jaxon | W 5 - 7, H 3 - 5 |
54685 | 9 - 10 am | GDC 1.406 | Samarth | T 11 - 12, H 10 - 12, F 11 - 12 |
54690 | 10 - 11 am | GDC 6.202 | Leul | T 6 - 8, H 12 - 2 |
54695 | 11 am - 12 pm | GDC 6.202 | Jyotsna & Alisha |
Jyotsna: M 5 - 6, T 12 - 1, F 1 - 3 Alisha: M 9 - 11, H 5 - 7 |
54700 | 12 - 1 pm | GDC 2.210 | David | T 3 - 4, W 4 - 6, H 3 - 4 |
54705 | 1 - 2 pm | RLP 0.122 | Hrutvik | H 12 - 2, F 3 - 5 |
Collaborative Study Sessions | Mon and Tues 5 - 6:30 pm, Same material presented at the two sessions. |
GDC 1.304 | Casey | T 10 - 11, F 12 - 1 |
1. Recommended data structures book:
Building
Java Programs: A Back to Basics Approach (5th Edition), Publication Date:
March 28, 2019 | ISBN-13: 978-0135471944 | Pearson Education / Addison Wesley. (Previous versions of the book are
acceptable, but there may be differences in section numbers for assigned reading
and problem numbers for suggested exercises.) Textbook
homepage is www.buildingjavaprograms.com
2. Recommended recursion book:
Thinking Recursively with Java by
Eric Roberts, ISBN: 978-0471701460
Class Discussion Tool: We have a discussion group for the class on Ed Discussion. Access Ed Discussion via Canvas. Our Ed discussion page is an official communication channel for this course. You are responsible for any instructor posts to Ed regarding course logistics.
We use Canvas to:
Email: All students must become familiar with the University's official e-mail student notification policy. It is your responsibility to keep the University informed as to changes in your e-mail address. You are expected to check e-mail on a frequent and regular basis in order to stay current with University-related communications, recognizing that certain communications may be time-critical. It is recommended that e-mail be checked daily. The complete text of this policy is available at this page.
You are responsible for checking your e-mail and the class discussion group on Ed Discussion regularly for CS314 communications.
Software: Required software for the course:
1. Java. Download the Java SE Development Kit. You can download Java 8 from Oracle or more recent versions from the OpenJDK project. In CS314 we shall limit ourselves to the features of Java version 8.0.
2. An IDE. (Interactive Development Environment. A program that helps you write programs.) I do not prescribe the IDE you must use in this course as you are simply turning in .java files that must compile on the CS department lab machines and Gradescope. Plus many IDEs have far more features than we will make use of in this course. Many past students prefer IntelliJ. I use Eclipse, but more due to inertia than anything else. Some students will tell you "real programmers only use a text editor and the command line!" I respectfully disagree. I think IDEs offer some very valuable tools beyond a basic text editor and the command line, although I do agree it is vital as a CS student to learn to interact with a computer system via the command line. Note, you can use the simple autocomplete feature many IDES use for which method to call. (Selection an option from a pop up list.) You may NOT use an AI coding assistant in the IDE such as Copilot when completing programming assignments. Doing so is against the course rules and an act academic dishonesty in CS314.
3. Zoom. (for some help hours and ) Provided by UT. See utexas.zoom.us.
4. CS department account and the ability to access it remotely. If you want to verify your program will compile on the CS department machines you must have the ability to connect to the CS department machines, transfer files from your system to a CS department machine, and then compile and run your program on a CS department machine Note, with the introduction of Gradescope as our tool for turning in and grading programs, checking your programs on the CS department machines is not as vital as in past versions of the course.
Schedule: The schedule of lecture topics, reading assignments, and assignment due dates is available online, via the class web page. The schedule page contains links to slides for the lectures, assignments, and readings. Complete the readings before class. The schedule is subject to change.
Sharing of Course Materials is Prohibited: No materials used in this class, including, but not limited to, lecture hand-outs, videos, assessments (quizzes, exams, papers, projects, homework assignments), in-class materials, review sheets, and additional problem sets, may be shared online or with anyone outside of the class unless you have my explicit, written permission. In other words you cannot upload these materials to Course Hero or post the videos to YouTube. 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 web 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.
CS314 to CS312 Slide: After exam 1 results are published to Canvas, students who did not pass the exam (< 70% on exam) and are taking CS314 for the first time. will be offered the option to move to CS312 for the rest of the semester. This is well after the normal add / drop deadline and will be handled by the CS Department undergraduate advisors. The purpose of the slide is to allow students who discover they may be better suited to take CS312 their first semester at UTCS. Grades from CS314 up to and including exam 1 shall be transferred in a reasonable way to CS312. A student taking advantage of the slide will then complete the second two thirds of CS312. This is not required, simply an option for students who meet the eligibility requirements.
Grading: Your final course grade is based on a score out of 100. The three exams account for 87% of your grade. Assignments, quizzes, surveys, and in class Instapolls, referred to as non-exam components, account for 10% of your grade. (Note, grades of 0 on programming assignments have an additional affect on your grade. See below.) Section problems account for 3% of your final grade.
Graded Component | Number | Points | Total Points |
Instapolls During Lecture (extra credit) | 42 | 1 | 42 |
Syllabus and Course Mechanics Quiz - Due 8/27 on Canvas | 1 | 10 | 10 |
Background survey - Due 8/29 on Canvas | 1 | 10 | 10 |
Academic Integrity Quiz - Due 9/3 on Canvas. (Note any score that is not 100% shall be reduced to zero. The quiz is open note and you can retake as many times as you like.) | 1 | 10 | 10 |
Generative AI Use Acknowledgement. (Note, programming assignment grades shall be 0 until this is completed and turned into Professor Scott.) | 1 | 10 | 10 |
Programming assignments - see schedule or assignments page for due dates. See notes belows. | 11 | 20 | 220 |
Instructor and TA End of Course Surveys (extra credit) Details on due dates in November | 1 | 10 | 10 |
Section Problems completed in Monday discussion sections - see schedule for due dates. Lowest dropped | 8 | 5 | 35 (lowest dropped) |
Exam 1, Thursday, September 25, 6:45
- 9:15 pm Location: UTC 2.102a -> Uniques: 54620, 54621, 54625, 54630, 54635, 54640, 54645 UTC 2.112A -> All other uniques Topics 1 - 9 |
1 | 100 | 100 |
Exam 2,
Wednesday, October 29, 6:45 - 9:15 pm Location: WEL 1.316 -> Uniques: 54705, 54700, 54695, 54690, 54685 WEL 1.308B -> Uniques: 54620, 54621, 54625, 54630, 54635, 54636, 54640, 54645 WEL 3.502 -> all other uniques (note, access to WEL 3.502 is via Inner Campus Drive. No access via the interior of WEL.) Topics 1 - 18. |
1 | 100 | 100 |
Exam 3, TBD Location: TBD All topics. |
1 | 100 | 100 |
Grade distributions. Based on the roughly 5700 students who have taken CS314 with me:
Guiding Principle on Grades - No whining: Feedback and concerns about the course are always welcome; legitimate grading errors that are identified in a timely fashion will certainly be corrected, but whining is counter-productive and will only irritate those who evaluate your work to determine grades. Realize if you ask for a regrade "because it can't hurt to ask" your score may actually go down if we find more errors and problems.
Important Dates for Changing Academic Status and Dropping the Course: Refer to the Registrar's academic calendar for the deadlines for changes in academic status. Highlights include:
See the College of Natural Science Guidelines and Procedures page for more information. (cns.utexas.edu/advising/guidelines-procedures)
Academic Integrity and the University Code of Conduct:
The core values of the University of Texas at Austin are learning, discovery, freedom, leadership, individual opportunity, and responsibility. Each member of the University is expected to uphold these values through integrity, honesty, trust, fairness, and respect toward peers and community.
Academic Honesty: TL;DR (too long didn't read) If you copy code from the web, another student, or use a generative AI, that is cheating in my course. The teaching staff will catch you. I shall submit an academic dishonesty case to the Office of the Dean of Students and request penalties up to and including an F in the course.
In the past several years cheating in CS314 has skyrocketed from 2% to 3% of the students in the course to upwards of 10%. The increase is due to the availability of generative AI chatbots such as ChatGPT, Copilot, Perplexity, Claude, etc.
To be clear, you may NOT use ANY code created by a generative AI chatbot on the programming assignments. Doing so is cheating (an academic integrity violation) in CS314.
Chatbots are outstanding tools for learning. We encourage you to use ChatGPT or generative AIs as part of understanding concepts and materials in the course, but not to do the work for you. For example, you can ask an LLM to explain what an instance variable is, why ArrayList.add is amortized constant time, or why the worst case order of quicksort is O(N^2). You may use generative AIs to help understand why your program may have failed tests after the resubmisison deadline (typically 2 weeks after the original due date) has past.
Taken from the CS department Code of Conduct.
"The University and the Department are committed to preserving the reputation of your degree. It means a lot to you. In order to guarantee that every degree means what it says it means, we must enforce a strict policy that guarantees that the work that you turn in is your own and that the grades you receive measure your personal achievements in your classes:
Every piece of work that you turn in with your name on it must be yours and yours alone unless explicitly allowed by an instructor in a particular class. Specifically, unless otherwise authorized by an instructor:
You are responsible for complying with this policy in two ways:
One final word: This policy is not intended to discourage students from learning from each other, nor is it unmindful of the fact that most significant work in computer science and in the computing industry is done by teams of people working together. But, because of our need to assign individual grades, we are forced to impose an otherwise artificial requirement for individual work. In some classes, it is possible to allow and even encourage collaboration in ways that do not interfere with the instructor's ability to assign grades. In these cases, your instructor will make clear to you exactly what kinds of collaboration are allowed for that class."
For CS314 the policy on collaboration is modified as follows:
If you are repeating the course you may reuse code you completed on your own. You may NOT use code from a program you worked on as part of pair or code that was from a program involved in an academic dishonesty case. You must start from scratch on any and all programs that:
You are encouraged to study for tests together, to discuss at a very high level methods for solving the assignments, to help each other in using the software, and to discuss methods for debugging code.
You are committing academic dishonesty if you look at someone else code (current students, past students and code from the web) in electronic or printed form OR discuss the code in at such a detailed level that solutions turn out essentially the same. You are committing academic dishonesty if you use a generative AI chatbot such as ChatGPT to generate your code or fix your code. You shall not ask anyone to give you a copy of their code or, conversely, give your code to another student who asks you for it.
Similarly, you shall not discuss your algorithmic strategies at such a detailed level that you and your collaborators end up turning in essentially the same code. Discuss very high level approaches together, but do the coding on your own. Realize with complex problems, two programs that have produce the same results given the same input will vary significantly in approach and structure. You are making many, hundreds, of micro decisions as you design and implement your programs. It is extraordinarily unlikely two people working on the same complex problem will produce the same solution.
Likewise, your experimental results must be your own. You may not copy these from another student.
Examples of cheating are many and include using a generative AI such as chatGPT to produce your code for you or fix your code, copying or referring to solutions from websites such as CourseHero, GitHub, and PasteBin, accessing another student's account, looking at someone else's solution code, copying or downloading someone else's solution code, referring to solutions from previous semesters, having another student walk you through the solution and how to code it, discussing the problem at such a detailed that you are essentially coding together, having another student perform significant debugging of your code, having another student write your code for you and / or allowing others to copy of access your solution code. . This means you shall not look on the internet for code to solve your problems. You shall not use a generative AI to write code from programming assignments. This list is not all inclusive.
Examples of allowable collaboration include discussions of general concepts and solution strategies and help with syntax errors.
The code you can reuse in this course are:
You shall not make use of code you find from other sources including the world wide web or produced by generative AI chatbots. Materials from the web should only be used for educational purposes. Thus, you can read about linked lists and look at examples of linked list code, but you must not copy any code from the web or be looking at any of this code from the web when writing anything you turn in.
You are also allowed to post short segments of code (2 lines or less) of code that are giving you syntax errors to the class discussion group in order to get help on fixing the syntax error.
If you have any doubts about what is allowed, ask your instructor.
Plagiarism detection software shall be used on assignments to find students who have copied code from one another, the web or used code generated by a generative AI.
For more information on Scholastic Honesty and the UT Honor code see the
University Policy on Scholastic Dishonesty
Religious Holidays: “By UT Austin policy, you must notify me of your pending absence for a religious holy day as far in advance as possible of the date of observance. If you must miss a class, an examination, a work assignment, or a project in order to observe a religious holy day, you will be given an opportunity to complete the missed work within a reasonable time after the absence. For questions regarding religious accommodations, please contact the Office of the Dean of Students.”
Disabilities and Access: If you are a student with a disability, or think you may have a disability, and need accommodations please contact Disabilities and Access (DAA). You may refer to DAA’s website for contact and more information. If you are already registered with DAA, please send your Accommodation Letter to me as early via email as possible in the semester so we can discuss your approved accommodations.
Students
with a documented disability may request appropriate academic accommodations
from the Division of Diversity an Community Engagement, Disabilities and
Access,
diversity.utexas.edu/disability/about/
• Please request a
meeting as soon as possible to discuss any accommodations
• Please notify me
as soon as possible if the materials being presented in class are not accessible