ECE 422C – Software Design and Implementation II - Fall 2024



Instructor: Prof. Edison Thomaz (ethomaz at utexas dot edu, or contact through Canvas)
Office Hours: Wednesdays 1-2PM @ EER 7.818

TAs: We will have 3 teaching assistants this semester:

TA Office Hours
Aniketh Devarasetty (anikethdevarasetty at utexas dot edu) TBD
Hyun Song (joon dot song at utexas dot edu) TBD
Connor Leu (connorleu at utexas dot edu) TBD

Class Meets: Three lecture hours on TTH from 12:30pm – 2:00pm. We will meet at BUR 216. 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. Recitations will take place at EER 0.818.

Unique Recitation Day
17255 Fri 9-10:30am (EER 0.818)
17260 Fri 10:30am-12pm (EER 0.818)
17265 Fri 12pm-1:30pm (EER 0.818)
17270 Fri 1:30-3pm (EER 0.818)

Online Forum: We will be using Ed Discussion. You can find a link to it on Canvas. Select the course and look for "Ed Discussion" on the sidebar.

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++.

zyBook Interactive Book: We will adopt an interactive book for the course. Students will have to purchase a license of the book so they have access to programming activities that will be needed for problem sets and also for recitations. To access the zyBook, click any zyBook assignment link in Canvas (do not go to the zyBooks website and create a new account), and subscribe. The cost of the subscription is $95.


Tentative Schedule

Day Lecture Topic Recitation Topic Assignment
Aug 27th (T) Course Overview
Aug 29th (Th) Java Basics I Meet TA, Logistics, IDE, Github
Sep 3rd (T) Java Basics II #1 Out
Sept 5th (Th) Java Basics III Assignm. #1, Java Basics
Sep 10th (T) Input, Output, Streams
Sep 12th (Th) Objected-Oriented Design I Assignm. #2, OOP #1 Due, #2 Out
Sep 17th (T) Objected-Oriented Design II
Sep 19th (Th) Objected-Oriented Design III OOP
Sep 24th (T) Abstract Classes + Interfaces
Sep 26th (Th) Interfaces + Generics Assignm. #3, Interfaces #2 Due, #3 Out
Oct 1st (T) Collections I
Oct 3rd (Th) Collections II Collections, Review
Oct 8th (T) Midterm Review #3 Due
Oct 10th (Th) Midterm Exam Post-Exam Discussion
Oct 15th (T) Exceptions
Oct 17th (Th) Guest Lecture Exceptions
Oct 22nd (T) Graphs I #4 Out
Oct 24th (Th) Graphs II Assignm. #4, Graphs
Oct 29th (T) Networking
Oct 31st (Th) Threads I Networking
Nov 5th (T) Threads II #4 Due, #5 Out
Nov 7th (Th) Databases Assignm. #5, Threads
Nov 12th (T) Machine Learning
Nov 14th (Th) Android I ML, Databases
Nov 19th (T) Android II #5 Due, #6 Out
Nov 21st (Th) Android III Assignm. #6, Android
Nov 26th (T) Thanksgiving
Nov 28th (Th) Thanksgiving
Dec 3rd (T) Advanced Topics #6 Due
Dec 5th (Th) Review
Dec 12th (Th) Final Exam (1-3pm)

Class attendance: Attendance is expected and 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 can use your own computer for assignments or login and use the ECE Linux Application Servers.

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 will be submitted either through Canvas or Gradescope. If you do upload files, please follow these rules:

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 one week after their due date, but at a penalty of 30 points -- so failure to turn in an assignment at the due date results in an immediate 30 point penalty. After one week, assignments will no longer receive any credit. In the interest of fairness, there will not be any exceptions to this policy.

Problem Sets: In addition to the programming assignments, students will also be required to complete problem sets. These problems will come straight from the Java zyBook and complement and/or extend what we cover in lectures.

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. 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: 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 © 2024