ECE Logo

EE 312 - Software Design and Implementation I
Spring 2019 - Priebe

Schedule


Course Description

Basic problem solving, design and implementation techniques for imperative programming; structured programming in the C/C++ language; programming idioms; introduction to software design principles, including modularity, coupling and cohesion; introduction to software engineering tools; elementary data structures; asymptotic analysis.


Prerequisites:
The following coursework with a grade of at least C-: Biomedical Engineering 303 or Electrical Engineering 306, and Electrical Engineering 319K.

Objectives

The purposes of the course are to learn more advanced computer science concepts including structured programming, algorithm development, problem decomposition, selecting and using the correct data structures, and debugging and testing.


Sections

15975 MW
W
9:00 a.m.-10:30 a.m.
12:00 p.m.-1:00 p.m.
UTC 4.104
EER 0.818
Seth
15985 MW
W
9:00 a.m.-10:30 a.m.
2:00 p.m.-3:00 p.m.
UTC 4.104
EER 0.818
Ravi
15990 MW
W
9:00 a.m.-10:30 a.m.
3:00 p.m.-4:00 p.m.
UTC 4.104
EER 0.818
Seth
16015 MW
W
12:00 p.m.-1:30 p.m.
9:00 a.m.-10:00 a.m.
ECJ 1.204
EER 0.818
Ravi
16020 MW
W
12:00 p.m.-1:30 p.m.
10:00 a.m.-11:00 a.m.
ECJ 1.204
EER 0.818
Ravi
16025 MW
W
12:00 p.m.-1:30 p.m.
11:00 a.m.-12:00 p.m.
ECJ 1.204
EER 0.818
Seth
16030 MW
W
12:00 p.m.-1:30 p.m.
4:00 p.m.-5:00 p.m.
ECJ 1.204
EER 0.818
Seth



Instructor

Roger Priebe

Office Hours: MTW 1:45-3:00, before and after class, and by appointment.
Office: EER 7.822
E-mail: roger.priebe (at) utexas.edu (email is the best way to contact me)

TAs

Ravi

Office Hours: M 1:30-3:00 and W 12:30-2:00
Office: M EER 0.814E and W EER 0.814F
E-mail: bonagiriraviteja (at) utexas.edu (email is the best way to contact me)

Seth


Office Hours: TTH 2:00-3:20
Office: EER 0.814B
E-mail: sethlee (at) utexas.edu (email is the best way to contact me)

Amr


Office Hours: W 1:00-2:30 and Th 4:00-5:30
Office: EER 0.814 (Large Table)
E-mail: elazizia (at) utexas.edu (email is the best way to contact me)

Isabelle

Office Hours: T 1:00-2:30
Office: EER 0.814 (Large Table 2)
E-mail: isavillamiel (at) utexas.edu (email is the best way to contact me)

Ben

Office Hours: W 3:00-4:30
Office: EER 0.814 (Large Table 1)
E-mail: bwbuhse (at) utexas.edu (email is the best way to contact me)

Sami

Office Hours: M 4:00-5:30
Office: EER 0.814 (Large Table)
E-mail: samikhandker (at) utexas.edu  (email is the best way to contact me)


Course Communication

Piazza

We have set up a discussion group for the class on Piazza.

  • Go to the Piazza web site and join the ECE 312 - Priebe group, for The University of Texas at Austin.  If an access code is required to sign up, that you may get from me.
  • We will post class announcements and information to the discussion group. 
  • You must read Piazza posts, especially the instructor announcements.  Piazza is an official communication channel for this course.
  • Post your questions about the class to the discussion group. You cannot expect to get detailed answers to technical questions by email, so Piazza use is encouraged. Students are also encouraged to discuss important matters with the teaching team in person, typically during recitation or office hours.

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. Instructions for updating your e-mail address are available here.

You are responsible for checking your e-mail and the class discussion group regularly for class work and announcements.

Contacting the Instructors

Piazza is to be used for technical questions and questions of general interest.  If you have a question regarding  your grade, attendance, special requirements etc., you must contact the staff by email.  Include your EID and course name.  If relevant, include your TA or grader(s) (and/or Priebe), as well as your project partner (with his/her EID), in every email.  Use Reply All whenever possible to keep everyone in the loop. Include the unique or the recitation date and time if relevant, and the same also for your partner. 

Any agreement between you and an instructor must be confirmed by email.   Oral agreements may not be honored unless confirmed in writing.

Do not use Canvas mail to contact the instructor staff.


Textbook

Data Structures and Problem Solving Using C++ (Second Edition), Weiss. Published by Addison-Wesley, 2000
ISBN: 0-201-61250-X (Recommended)

(Note: This is an old book, but good. We won't take assignments directly from the book, but I will post readings. You should be able to find a used version of the book.)

Recommended Books and Other Materials

Thinking in C++ (2nd edition), by Bruce Eckel. (Recommended)

This textbook is available at no charge online.

Other Resources


Programming Assignments

Programming assignments will be posted here. Without valid proof of an unexpected emergency, you will receive a grade of zero if you miss the deadline.

Software and Computer Facilities

More information regarding software packages and programming environments can be found here.

Quizzes

We will have frequent quizzes during the lab portion of the course.


Policies

We will not accept late work without a valid documented excuse. Makeup exams and quizzes will not be given under any circumstances, but under exceptional conditions, other arrangements may be made.

If you are dissatisfied with a grade you receive, you must submit your handwritten complaint (stapled to the front of the graded work) along with supporting evidence or arguments. We must receive this protest within one week of the date on which we first attempt to return the assignment to you. We will not consider any grade change request that does not fulfill this requirement. If we use Gradescope, we will allow regrade requests through the system. You should never email a regrade request to me or the TA.

Academic Dishonesty: 

Read the academic integrity policy that we expect and enforce at UT Austin.

"...You and other students are expected to maintain absolute integrity and a high standard of individual honor in scholastic work undertaken at the University. This is a very basic expectation that is further reinforced by the University's Honor Code. At a minimum, you should complete any assignments, exams, and other scholastic endeavors with the utmost honesty, which requires you to:

  • acknowledge the contributions of other sources to your scholastic efforts;
  • complete your assignments independently unless expressly authorized to seek or obtain assistance in preparing them;
  • follow instructions for assignments and exams, and observe the standards of your academic discipline; and
  • avoid engaging in any form of academic dishonesty on behalf of yourself or another student."

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:

  • Students may not discuss their work with anyone except the instructor and other members of the instructional staff (instructor, TA, lab proctor or partner on a pair assignment).
  • Students may not acquire from any source (e.g., another student or an internet site) a partial or complete solution to a problem or project that has been assigned.

You are responsible for complying with this policy in two ways:

  1. You must not turn in work that is not yours, except as expressly permitted by the instructor of each course.
  2. You must not enable someone else to turn in work that is not theirs. Do not share your work with anyone else. Make sure that you adequately protect all your files. Even after you have finished a class, do not share your work or published answers with the students who come after you. They need to do their work on their own. This means do not post your solution code to any public web site such as pastebin. Also, do not post your work to the web even after you have completed this course.

Students who violate University and Departmental rules on scholastic dishonesty are subject to disciplinary penalties including the possibility of a lowered or zero grade on an assignment or exam, or failure in the course. Academic dishonesty cases will be referred 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 engineering and computer science 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 this course, 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 a 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:

  • were part of an academic dishonesty case
  • you worked with a partner during a previous semester
  • you are working with a partner this semester

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 another person'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 another person's solution code, copying or downloading another person'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 another student write your code for you and / or allowing others to copy of access your solution code. This means DON'T look on the internet for code to solve your problems. (You won't learn anything!)

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:

  1. You may use any code you develop with the instructor, TAs, or proctors.
  2. You may use code (with attribution) from the class slides and the class coding examples.
  3. You may share additional test cases and expected results of test cases. You may not share solution code or experiment code.

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. If you discuss an assignment with another student or look at examples from the web you should employ the World of Warcraft Rule:

World of Warcraft Rule: After a discussion with another student or looking at example code you should do something that has nothing to do with computer science or programming for at least half an hour -- playing World of Warcraft or other similar activity. (Watching a sitcom, reading a book, working on another class.)

Note: You are allowed to post short segments (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 the instructor.

Plagiarism detection software may be used on assignments to find students who have copied code from one another and to check projects from previous semesters. 

University Policy on Scholastic Dishonesty.

Religious Holidays

By UT Austin policy, you must notify me 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, 512-471-6259,  http://diversity.utexas.edu/disability.  Please present written proof of your special need from the above-mentioned office by the twelfth day of class.  If your accommodation includes a longer duration or quiet facilities for the midterms or final, it is your responsibility to secure a spot in the SSD facilities on the day of the exam, overlapping with the regular exam time (if possible).  You will have to request these facilities a month in advance of the test.  The spots fill up fast!


Grading

Final grades will be based on the following components:

  • Two Midterm Exams: 45%
  • Cumulative Final Exam: 25%
  • Assignments and Problem Sets: 20%
  • Quizzes: 10%

Grades will be based on a 90-80-70-60 system. No plusses or minuses. 89.5 will be rounded up (as will each of the cutoffs).

Notes:

  • We will drop the lowest quiz score.
  • The instructor reserves the right to alter the grading scale to the benefit of the students.
  • The final exam will be optional. You may substitute the average of your midterm exams to replace the final. Details of this will be discussed as we get closer to the end of the semester.

Grades will be kept on Canvas


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:

  • 2/6/19: Last day of the official add/drop period; after this date, changes in registration require the approval of the department chair and usually the student's dean.
  • 2/6/19:  Last day to drop for a possible refund. Last day to add a course.
  • 4/8/19: Last day a student may change registration in a class to or from the pass/fail or credit/no credit basis.
  • 4/8/19: Last day an undergraduate student may, with the dean's approval, withdraw from the University or drop a class (Q drop) except for urgent and substantiated, nonacademic reasons. In practice I always grant approval for "Q drops" up to this date as long as there are no issues with academic integrity.

Students experiencing significant nonacademic problems (extended health problems or family emergencies) should contact the Engineering Student Services in the ESS Building at 2407 Speedway,  ( 512-471-4321) or the Dean of Student's Office (http://deanofstudents.utexas.edu/emergency/) for assistance.


Last updated: 1/23/19