Per UT Guidance the first two weeks of class (January 18 - 28) shall be remote with lectures and help hours online via Zoom. See this page for installing and using Zoom for UT classes.
Due to the circumstances posed by the ongoing pandemic, this Syllabus is subject to change. If and when changes are made students shall be notified via the course discussion page on Piazza.
Description: Computer science encompasses a wide range of topics and skills designing and building computer devices (e.g., your cell phone, laptop, cleaning robots), designing and building programming languages (e.g., Java, Python, C) and the supporting software that control these devices (e.g., operating systems, compilers), and the actual applications themselves (e.g., reading an x-ray, video animation, voice mail). This course focuses on how to write computer programs that solve problems on a general purpose computer.
Programming is one of the key tools that computer scientists use to help themselves and others use to solve problems. This course uses a particular programming language, Java, to introduce you to how to design and implement computer programs to solve problems. In this course, most of your learning will take place when you are putting in to practice the concepts from the book and lectures to solve more and more complex problems using more and more sophisticated programming practices. You will learn by doing. Performance on the programming assignments and performance on exams correlate closely.
Programming is a skill learned by experience, not just listening to lecture. To gain that experience I strongly encourage you to do as many extra problems as time allows. See the schedule for extra problems from the textbook and websites with practice problems.
Objectives: This is a first course in computer programming. The purposes of the course are to learn fundamental computer science concepts including algorithm development, problem decomposition, data types, variables, parameters, decision making, iteration, arrays, and 2D arrays. By the end of the course students are expected to be able to implement programs consisting of several programmer defined data types and several hundred lines of code employing non trivial algorithms.
Estimates of the required effort to pass the class are:
Prerequisites: Credit with a grade of at least C- or registration for Mathematics 408C, 408K, or 408N..
MWF 10 - 11 am If and when in person classes resume, this lecture shall be recorded using the Lectures Online recording system and be available via Canvas. The recording only includes what is shown on the media screen and audio.
Conduct for in person lectures:Conduct for in person lectures:
Per https://protect.utexas.edu/health-and-wellness/ "Masks are strongly recommended indoors regardless of vaccination COVID-19 status."
Per https://protect.utexas.edu/health-and-wellness/ If you are sick stay home. Lectures are recorded and may be watched later if you are sick.
Per https://www.healthyhorns.utexas.edu/coronavirus_proactive_testing.html Proactive Community Testing (PCT) is available on campus and "provides a quick and painless saliva or painless nasal-swab COVID-19 test for asymptomatic UT Austin students and employees."
If you are interested in obtaining a Covid-19 vaccine please see this page: https://uthealthaustin.org/patient-resources/covid-19-updates/covid-19-vaccination
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 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, update your Facebook page, post to Instagram 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).
Discussion sections (colloquially known as just sections) 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.
Students should attend the discussion section for which they are officially registered. Look at your class schedule on UT Direct (NOT Canvas) to verify your unique course number.
If you feel sick, are confirmed sick, or are uncomfortable attending an in person section you may attend the online section, even if you are not officially registered for it. This section shall be recorded for later viewing.
Mike Scott, email:
Help Hours: Mondays 3 - 5 pm. If you cannot make these hours email me to request an appointment. Help hours shall be held in the 3rd floor public computer lab in GDC 3.302 if andwhen in person class resume.
Discussion Section Schedule and Undergraduate Teaching Assistants. All Sections meet on Mondays.
|Unique ID||Time (Monday)||Location||TA||Help Hours T = Tuesday, H = Thursday|
|51080||1 - 2 pm GDC 2.506||GDC 2.506||Kent||W 10 - 12 noon, H 2 - 3, Zoom: F 1 - 3|
|51085||2 - 3 pm GDC 2.506||GDC 2.506||Sweta||M 12 - 2, W 12 - 2, Zoom: T 11 - 12|
|51090||3 - 4 pm GDC 2.506||GDC 2.506||Pavan||T 3 - 5, H 3 - 5, F 4 - 5|
|51095||4 - 5 pm GDC 2.506||GDC 2.506||Emma||W 3 - 5, F 1 - 4|
|51119||11 am - 12 noon GDC 6.202||GDC 6.202||Nikhil||T 11 - 1,H 11 - 1, Zoom: W 12 - 1|
|Study Sessions||Monday and Wednesday
4 - 5:30
|TBD||Earl||Collaborative Study Sessions - MW 4 - 5:30, starting 1/31||M 2 - 3, W 2 - 3|
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
Class web site: http://www.cs.utexas.edu/~scottm/cs312. Course materials and links to other resources.
Startup: Most of the things you need to do to set up your infrastructure for the class are on the startup page.
Class Discussion Tool: I have set up a discussion group for the class on Piazza.
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 and instructions for updating your e-mail address are available at this page 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 the course:
1. Zoom. (for lectures and discussion sections the first two weeks) Provided by UT. See https://utexas.zoom.us/.
2. 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.
3. 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. 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 use a text editor and the command line!" I think IDEs offer some very valuable tools beyond a basic text editor and the command line, although it is vital as a CS major to learn to interact with a computer system via the command line.
4. Perusall. There are six Perusall reading assignments. Perusall is a software tool and website. I upload readings, Perusall analyzes them, and then you annotate the readings. There shall be a minimum number of annotations. You can make more than the required number. Questions and follow-ups to questions count towards the minimum number of annotations. Perusall automatically grades the annotations for relevance, details, and understanding. Your Perusall ID must be the same as your UTEID, all lower case letters. Failure to set this correctly shall result in a 0 on Perusall assignments. Access Perusall directly through Canvas. Failure to do so may result in a loss of points on Perusall assignments.
5. The plan is for exams to be in person. However, if circumstances warrant a change, we will use Chrome and the Proctorio extension. If we switch to online exams, then by the exam date, ensure you have the Chrome web browser and the Proctorio extension installed. You must have a computer and internet connection capable of using Zoom, the Chrome Bowser, and the exam monitoring software, Proctorio. This means your system must also have a working web cam and microphone.
Schedule: A schedule of lecture topics, reading assignments, and assignment distribution and due dates is available online, via the class web page, www.cs.utexas.edu/~scottm/cs312/schedule.htm. The schedule page contains links to slides for the lectures, assignments, and suggested extra problems. Readings are to be completed 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. 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.
Grading: The class components used to determine your final average are:
|Component Type||Number||Points||Total Points|
|Academic Integrity Quiz||1||10||10|
|Programming Assignments 1 - 12 (Assignment 5 is an ungraded exercise.)||11||20 points||220|
|Background survey (extra credit)||1||10||10|
|Perusall Reading Assignments||6||5 each||30|
|Instructor and TA End of Course Surveys (extra credit)||2||5 each||10|
|Exam 1, Wednesday, February 23, approx. 6:45 - 9:15. Location TBD. Topics 1 - 12||1||250||250|
|Exam 2, Wednesday, April 6, approx. 6:45 - 9:15. Location TBD. Topics 1 - 25||1||250||250|
|Exam 3, Tuesday, May 3, approx. 6:45 - 9:15.
Topics 1 - 33
Of the roughly 2000 students who have taken CS312 with 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 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)
Where to get Help when You’re Struggling, Having 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 help hours or email me for an appointment (just email me).
computer science advisors.
They’re not just there to help you register; they can really help in many
situations. If they can't, they can point you in a good direction.
Tel: (512) 471-9509 E-mail: firstname.lastname@example.org (Tell them your UT EID.)
Office: GDC 2.720 Hours: Monday–Friday 8:30 am – 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 am – 5 p.m.
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 or another student, that is cheating in my course. The teaching staff will catch you and you shall be written up for academic dishonesty with penalties up to and including an F in the course.
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 CS312 the policy on collaboration is modified as follows:
If you are repeating the course you may reuse code you completed on your own. You must start from scratch on any and all programs that were part of an academic dishonesty case.
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 discuss the code in at such a detailed level that solutions turn out essentially the same. paper format 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.
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, 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. 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. 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 shall be used on assignments to find students who have copied code from one another or from the web.
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 "as far in advance of the absence as possible so that arrangements can be made." Please email me at least fourteen (14) days prior to the date of observance of a religious holy day so I have time to set up accommodations. 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: If you are a student with a disability, or think you may have a disability, and need accommodations please contact Services for Students with Disabilities (SSD). You may refer to SSD’s website for contact and more information: diversity.utexas.edu/disability/. If you are already registered with SSD, please deliver your Accommodation Letter to me as early as possible in the semester so we can discuss your approved accommodations.
with a documented disability may request appropriate academic accommodations
from the Division of Diversity and Community Engagement, Services for Students
with Disabilities, 512-471-6259 (voice) or 1-866-329-3986 (video phone).
• 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
To the CS 312 home page