Syllabus - Computer Science 314 -
Data Structures (Computer Programming 2)
The University of Texas at Austin · Fall 2016
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 such as lists, iterators, stacks, queues, priority queues, trees, binary search trees, balanced binary search trees, sets, maps, hash tables, heaps, and graphs. The course also covers testing, reasoning about programs (pre/post conditions, assertions), debugging, abstraction of data, basic algorithm analysis, recursion, canonical sorting and searching algorithms, an introduction to the object oriented concepts of encapsulation, inheritance, and polymorphism, and dynamic programming. Students will be able to implement medium sized programs using the concepts listed. The course is taught using Java.
Quantitative Reasoning Flag: This course carries the Quantitative Reasoning flag. Quantitative Reasoning courses are designed to equip you with skills that are necessary for understanding the types of quantitative arguments you will regularly encounter in your adult and professional life. You should therefore expect a substantial portion of your grade to come from your use of quantitative skills to analyze real-world problems.
This is not an easy course. Based on the historical GPA and drop rate about 30% 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.
Estimates of the required effort for the student who meets the course prerequisites:
Formal Course Prerequisite:
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), 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.
Lecture and Discussion Sections Schedule:
|Unique ID||Lecture||Discussion Section Times and Days||Discussion Section Location||Discussion Section TA and Grader|
|51330||MWF 2- 3 pm, GSB 2.216||Monday, 9 - 10 am||GDC 2.410||Jorge|
|51335||MWF 2- 3 pm, GSB 2.216||Monday, 10 - 11 am||RLM 5.116||Taylor|
|51351||MWF 3- 4 pm, GSB 2.216||Monday, 2 - 3 pm||SZB 380||Kris|
|51352||MWF 3- 4 pm, GSB 2.216||Monday, 1 - 2 pm||BIO 301||Rohit|
|51353||MWF 3- 4 pm, GSB 2.216||Monday, 12 noon - 1 pm||GDC 2.210||Veronica|
|51354||MWF 2- 3 pm, GSB 2.216||Monday, 11 am - 12 noon||GDC 4.302||Brahma|
Conduct in Lecture: I do not allow the use of laptops 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 implore you to not use class time to e-mail, update your Facebook page, post to Instagram, etc. If you are addicted to the 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 see whether somebody ‘liked’ your comment about the Cheerios you had for breakfast. In fact, 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).
There is another lecture for CS314 this term, taught by Professor Gordon Novak. However, you must attend the lecture for which you are officially registered.
Students must attend
the discussion section for which they are officially registered.
Look at your class schedule on UT Direct or Canvas to verify your unique course number.
Instructor, Mike Scott, email:
office: GDC 6.304
Office Hours: Monday 11 am - 1 pm, Wednesday 11 am - 12 noon, Friday, 11 am - 1 pm. If you cannot make these hours email me to request an appointment.
Office hours are held in the 3rd floor computer lab in the Gates CS complex.
|Brahma Pavse||Tuesday 9 - 10 am, Thursday 9 - 10 am, Friday 3 - 4 pm|
|Jorge Zapien-Diaz||Wednesday 3 - 4 pm, Friday 1 - 3 pm|
|Kris Vandercook||Monday 9 - 10 am, Wednesday 12 noon - 2 pm|
|Rohit Datta||Monday 5 - 6 pm, Tuesday 4 - 6 pm|
|Taylor Kline||Wednesday 9 - 10 am, Thursday 4 - 6 pm|
|Veronica Gunn||Wednesday 4 - 6 pm, Thursday 10 - 11 am|
Class Participation, iClicker
Beware: There may be several incompatible brands of remote control devices
on sale. Be sure you get the ``iClicker'' brand. For a picture of one, see the iClicker web site. We
are using the iClicker+, not the iClicker 2, although the iClicker 2 or
original iClicker will work. Note, the REEF POLLING tool is not an
option for my class. The Co-op will buy back the iClicker for about
half the current price. The serial number is important when you register
the iClicker (see the next step). If you need help determining your devices
serial number please see me before or after class or in lab hours.
Even if you already have a
iClicker and registered it in the past you must reregister for this semester.
After registering you DO NOT have to sign up for a particular class on the
Class Discussion Tool: I have set up a discussion group for the class on Piazza.
Canvas will be used:
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 and instructions for updating your e-mail address are available at http://tinyurl.com/pm6ej6e which includes instructions on how to update the email address you have on record with UT.
You are responsible for checking your e-mail and the class discussion group on Piazza regularly for class work and announcements.
Software: Required software for programming assignments is described on this web page: http://www.cs.utexas.edu/~scottm/cs307/software.htm
CS Lab Account:
Schedule: A schedule of lecture topics, reading assignments, and assignment due dates is available online, via the class web page, www.cs.utexas.edu/~scottm/cs314/schedule.htm. The schedule page contains links to slides for the lectures, assignments, and online readings. Readings are to be completed before class. The schedule is subject to change.
Grading: The class components used to determine your final average are:
|Component Type||Number||Points||Total Points|
|Programming assignments||11||20 each||220|
|iClicker participation in lecture||42||1 each day||42|
|Quizzes in discussion section||9||10 each||90|
|Exam 1, 10/5, 7 - 9 pm, UTC 4.102 (2-3 pm lecture), UTC 4.104 (3-4 pm lecture)||1||180||180|
|Exam 2, 11/9, 7 - 9 pm, UTC 4.102 (2-3 pm lecture), UTC 4.104 (3-4 pm lecture)||1||200||200|
|Final Exam, Date TBD||1||300||300|
Grade distributions. Based on the roughly 1500 students who have taken CS314 from me:
Guiding Principle - 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" 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 are:
See the College of Natural Science Guidelines and Procedures page for more information. (http://cns.utexas.edu/advising/guidelines-procedures)
Help when You’re Struggling, Have a Crisis, or an Emergency
Please, when something bad happens, or when you’re feeling overwhelmed,get help. Don’t endure it on your own. Even talking through the situation often helps. Here are some options:
See me. Come by office hours, or book an appointment (just email me).
computer science advisors.
They’re not just there to help you register; they can really help in many
Tel: 512-471-9509 E-mail: firstname.lastname@example.org (Tell them your UT EID.)
Office: GDC 2.720 Hours: Monday–Friday 8:30 a.m–4:30 p.m.
Student Emergency Services.
They are here to help you with all kinds of life’s troubles (family, housing,
health, money, stress, etc.) whether it’s a crisis or not.
Tel: 512-471-5017 E-mail: email@example.com
Office: SSB 4.104 Hours: Monday–Friday 8 a.m–5 p.m.
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: 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:
The penalty for academic dishonesty will be a course grade of F and a referral of the case to the Dean of Students. Further penalties, including suspension or expulsion from the university may be imposed by that office.
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 methods for solving the assignments, to help each other in using the software, and to discuss methods for debugging code. Essentially if you talk about an assignment with any one else you are okay, but the moment you start looking at someone else's source code or showing someone else your source code you have crossed the line into cheating. You should 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 should not discuss your algorithmic strategies to such an extent that you and your collaborators end up turning in exactly the same code. Discuss high level approaches together, but do the coding on your own.
Examples of cheating are many and include 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, having another student perform significant debugging of your code, having antoher 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.
Examples of allowable collaboration include discussions and debate 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. 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 listserv in order to get help on fixing the syntax error.
If you have any doubts about what is allowed, ask the instructor.
Plagiarism detection software will be used on assignments to find students who have copied code from one another.
For more information on Scholastic Honesty and the UT Honor code see see the
University Policy on Scholastic Dishonesty
Religious Holidays: By UT Austin policy, you must notify me via email of your pending absence at least fourteen days prior to the date of observance of a religious holy day. 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.
Students with Disabilities: students with disabilities
may request appropriate academic accommodations from the Division of Diversity
and Community Engagement, Services for Students with Disabilities, 471-6259,
To the CS 314 home page