Edison Thomaz

Publications   Teaching   Vita   Prospective Students



EE422C – Software Design and Implementation II - Spring 2021



Instructor: Prof. Edison Thomaz (ethomaz at utexas dot edu, or contact through Canvas)
Office Hours: Wednesdays 1-2PM (the Zoom link is available on Canvas)

TAs: We will have 3 teaching assistants this semester:

TA Office Hours (Zoom link on Canvas)
Yating Wu (yating dot wu at utexas dot edu) Thu 10am - 11am
Mayank Shouche (shouchem at utexas dot edu) M 3pm - 4pm
Kaylee Trevino (kntrevi1 at utexas dot edu) Tu 1pm - 2pm

Class Meets: Three lecture hours on MW from 9:00AM – 10:30AM. In addition to the lectures, students are registered for a 1.5 hour recitation as listed in the course catalogue and determined by a unique section number, shown below. Lectures and recitations will be conducted online and links will be available on Canvas.

Unique Recitation Day
17095 Thu 12:30pm - 2pm
17100 Thu 2pm - 3:30pm
17105 Thu 3:30pm - 5pm
17110 Thu 5pm - 6:30pm

Online Forum: Here is our Piazza site

Description: Methods for engineering software with a focus on abstraction; specification, design, and implementation of object-oriented code; design and implementation of object-oriented programs in Java; abstract data types; inheritance; polymorphism; parameterized types and generic programming; the operation and application of commonly used data structures; miscellaneous high-level programming topics.

Pre-requisites: Computer Science 312 or Electrical Engineering 312 with a grade of at least C-. Incoming students are expected to know the basics of computers and computation; and how to program in C/C++ using features of the language, such as: variables and operators, built-in data types, execution control structures, pointers, arrays, screen I/O, structs , linked lists, and recursion. The student should know how to use basic programming tools and techniques, such as: a programming language development toolset and symbolic debugger. The incoming student should also have been introduced to subjects such as: abstract data types, program design techniques, object-oriented programming, advanced OO features (e.g. classes, objects, templates, inheritance, polymorphism, etc.), and C++.

Textboook (Not Required): Data Structures and Problem Solving Using Java, 4/E, Mark A. Weiss, ISBN-10: 0321541405, Addison Wesley, 2010


Tentative Schedule

Day Lecture Topic (MW) Recitation Topic (Thu) Assignment
Jan 20th (W) Course Overview Meet TA, Logistics, Software setup, IDE, Github
Jan 25th (M) Java Basics I
Jan 27th (W) Java Basics II Assignm. #1, Java basics #1 Out
Feb 1st (M) Objected-Oriented Design I
Feb 3rd (W) Objected-Oriented Design II OOP Fundamentals
Feb 8th (M) Abstract Data Types (ADT) #1 Due
Feb 10th (W) Interfaces Assignm. #2, OOP #2 Out
Feb 15th (M) No Class (Weather)
Feb 17th (W) No Class (Weather)
Feb 22nd (M) No Class (Weather)
Feb 24th (W) Interfaces and Generics Assignm. #2, Generics
Mar 1st (M) JCF I #2 Due
Mar 3rd (W) JCF II Pre-Midterm review
Mar 8th (M) JCF III + Review
Mar 10th (W) Midterm Exam Post-midterm discussion
Mar 15th (M) Spring Break
Mar 17th (W) Spring Break
Mar 22nd (M) Graphs I #3 Out
Mar 24th (W) Graphs II Assignm. #3, Graphs
Mar 29th (M) Exceptions
Mar 31st (W) Networking Exceptions, Networking #3 Due
Apr 5th (M) Threads I #4 Out
Apr 7th (W) Threads II Assignm. #4, Threads
Apr 12th (M) Databases
Apr 14th (W) ML Databases, ML #4 Due
Apr 19th (M) Android I #5 Out
Apr 21st (W) Android II Assignm. #5, Android
Apr 26th (M) Design Patterns
Apr 28th (W) Reflection Design Patterns, Reflection
May 3rd (M) Guest Lecture #5 Due
May 5th (W) Review Final review

Class attendance: Attendance is expected. Whether you come to class or not, you are responsible for keeping up with what happens in class. If you miss a class (other than for illness or an emergency), it is not reasonable for you to expect the instructor to repeat just for you the material that was covered in the class that you missed. This applies both to the content of the class as well as to announcements about class policies, events, deadlines, etc.

Equipment and Software: You will use your own computer for assignments. Make sure you have Java 8 installed, as this is the SDK version we will use when running your program. If you don’t have access to a computer or one that supports this version of the SDK, please come talk to the instructor or TAs. If your program doesn't compile, you may lose points even if it runs correctly on some other compiler.

Assignments: The assigned class work in this course will consist of programming assignments. Programming is a discipline that you learn by doing, not by listening to a lecturer. Therefore, doing the programming assignments is crucial to performing well in this class. If you are having considerable difficulty with the early assignments, this is a sign that you may be in over your head - you should come see the instructor or TAs immediately. The assignments will require a substantial time commitment. Be sure to budget sufficient time to complete assignments before the deadline.

At the time you submit each assignment for grading, you are highly encouraged to commit your final version to Git. This will be crucial in cases where your program gets lost, your computer gets corrupted, or if there is some dispute over what was turned in when. It is also recommended that you commit your latest incremental version at the end of each working day on the assignment. If you cannot finish an assignment on time, then submit whatever you have finished before the deadline to receive some partial credit.

Programming assignments should be submitted for grading by using the Canvas assignment submission feature. The programming assignment submission rules are:

// your name - last name, first name
// your student EID
// EE422C-SP2021: Assignment n - where n is the assignment number (1, 2, ...)

Assignment grading criteria may vary on each assignment. However, in general, programs that do not compile correctly will receive no more than 25% of the possible points. Larger point deductions are given for such things as: incorrect output/results, missing features, bad design logic, poor style, etc. In addition, the following criteria are important: (i) a block structured design should be evident; (ii) comments and/or appropriate variable names should be used to make your program readable; (iii) appropriate prompts and messages for input and output should be given to the user of your program.

Unless stated otherwise, more emphasis will be placed on program clarity than on program length, speed or size. Appeals for assignment re-grades will not be honored unless you have evidence of a grading mistake (see grade disputes below for deadlines).

Late Assignments: Late deliverables will be accepted for two weeks after their due date, but at a penalty of 10 points per week -- so failure to turn in an assignment at the due date results in an immediate 10 point penalty. After two weeks, assignments will receive a 0. In the interest of fairness, there will not be any exceptions to this policy.

Exams: They will cover material from lecture, assignments, and any assigned readings. Exams will be cumulative, although they will be more heavily weighted towards material not yet tested. Programming is a cumulative discipline, so it is important to master earlier topics in order to understand later topics. Exam scores may be curved if the instructor believes it is warranted. The exams will take place online. If your work or a personal situation forces you to unexpectedly miss exams, you should expect to get a zero on those occasions. If you miss an exam because of illness, you are expected to provide a statement from a doctor stating that, in his/her opinion, it was impossible for you to attend because of illness. A slip showing you visited the UT Health Center or your personal doctor is not sufficient for this. In any other situation, you should contact the instructor beforehand. Bring your student ID to the exam; it may be requested for proof of identity. Exams turned in for re- grading will be completely re-graded to find all grading mistakes.

Grading: For consistency, assignments and exams will be graded according to a defined rubric applied uniformly to all students. I am interested in the critical thinking process you use when solving a problem. Please provide rationale and justification. For assignments and exams, I use the following rubric:

Here is a breakdown of how the final grade for each student will be computed:

Grade Distribution:

Grade Disputes and Corrections: If you are dissatisfied with a grade you receive, you must submit your complaint briefly in writing or by email, along with supporting evidence or arguments, to your TA within one week of the date that I (or the TA) first attempted to return the exam or assignment results to you. For programming assignments the dispute period starts with the posting of your score on the class Canvas gradebook page. Complaints about grades received after the one-week deadline will be considered only if there are extraordinary circumstances for missing the deadline (e.g. student hospitalization). No new disputes will be accepted after 11:59AM three days before the course grade sheets must be turned in.

The grade you are given, either on an individual exam or assignment or as your final grade, is not the starting point of a negotiation. It is your grade unless a concrete grading error has been made. Do not come to see the instructor or the TA to ask for a better grade because you want one or you "feel you deserve it". Come only if you can document a specific error in grading or in recording your scores. Errors can certainly be made in grading, especially when large classes of many students are involved. But keep in mind that the errors can be made either in your favor or not. So it's possible that if you ask to have a piece of work re-graded your grade will go down rather than up.

Remember that the most important characteristic of any grading scheme is that it be fair to everyone in the class. Keep this in mind if you're thinking of asking, for example, for more partial credit points on a problem. The important thing is not the exact number of points that were taken off for each kind of mistake. The important thing is that the number was the same for everyone. So it may not be changed once the grading is done and the exams or assignments have been returned. If you have questions or concerns about any of your grades, contact your TA first, and if not satisfied with that interaction then contact the instructor during office hours or via email.

Absence Due to Illness: If you miss deadlines or presentations due to illness, please bring the instructor a doctor's note that indicates not only that you had a medical consultation but also reports the actual illness that was diagnosed. If such note is provided, the instructor will be happy to make accomodations and extend deadlines. Otherwise, all other policies apply (e.g., late deliverables).

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.

FERPA and 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 Student Misconduct proceedings.

COVID-19 Guidance and Caveats: Our course will take place online, but to help keep everyone at UT and in our community safe, it is critical that students report COVID-19 symptoms and testing, regardless of test results, to University Health Services, and faculty and staff report to the HealthPoint Occupational Health Program (OHP) as soon as possible. Please see this link to understand what needs to be reported. In addition, to help understand what to do if a fellow student in the class (or the instructor or TA) tests positive for COVID, see this University Health Services link.

Standard UT Austin Course Information and Policies

Academic Honor Code: You are encouraged to discuss assignments with classmates, but anything submitted must reflect your own, original work. If in doubt, ask the instructor. Plagiarism and similar conduct represents a serious violation of UT's Honor Code and standards of conduct.

Students who violate University rules on academic dishonesty are subject to severe disciplinary penalties, such as automatically failing the course and potentially being dismissed from the University. **PLEASE** do not take the risk. We are REQUIRED to automatically report any suspected case to central administration for investigation and disciplinary hearings. Honor code violations ultimately harm yourself as well as other students, and the integrity of the University.

Academic honesty is strictly enforced. For more information, see the Student Judicial Services site.

Notice about students with disabilities: The University of Texas at Austin provides appropriate accommodations for qualified students with disabilities. To determine if you qualify, please contact the Dean of Students at 512-471-6529 or UT Services for Students with Disabilities. If they certify your needs, we will work with you to make appropriate arrangements.

Emergency Preparedness: Any students requiring assistance in evacuation must inform the instructor in writing of their needs during the first week of classes.

Coping with stress and personal hardships: The Counseling and Mental Health Center offers a variety of services for students, including both individual counselling and groups and classes, to provide support and assistance for anyone coping with difficult issues in their personal lives. As mentioned above, life brings unexpected surprises to all of us. If you are facing any personal difficulties in coping with challenges facing you, definitely consider the various services offered and do not be shy to take advantage of them if they might help. These services exist to be used.

Notice about missed work due to religious holy days: A student who misses an examination, work assignment, or other project due to the observance of a religious holy day will be given an opportunity to complete the work missed within a reasonable time after the absence, provided that he or she has properly notified the instructor. It is the policy of the University of Texas at Austin that the student must notify the instructor at least fourteen days prior to the classes scheduled on dates he or she will be absent to observe a religious holy day. For religious holy days that fall within the first two weeks of the semester, the notice should be given on the first day of the semester. The student will not be penalized for these excused absences, but the instructor may appropriately respond if the student fails to complete satisfactorily the missed assignment or examination within a reasonable time after the excused absence.

Electronic mail Notification Policy: In this course e-mail, Canvas and Piazza will be used as a means of communication with students. You will be responsible for checking your e-mail regularly for class work and announcements. If you are an employee of the University, your e-mail address in Canvas is your employee address.

The University has an official e-mail student notification policy. It is the student's responsibility to keep the University informed as to changes in his or her e-mail address. Students 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.


Edison Thomaz © 2021