Department of Computer Science
The University of Texas at Austin

CS 313E - Elements of Software Design (Spring 2023)
Section: 52038, MW 3:30 PM - 5:00 PM, PAI 2.48

Instructor: Dr. Shyamal Mitra
Office Hours: TTH 5 pm to 6 pm
Location: GDC 6.320
E-mail: mitra@cs.utexas.edu

Required Text: Python 3 and Data Structures
Authors: Miller, Lysecky, Vahid
Publisher: Zyante

  1. Sign in to learn.zybooks.com
  2. Use your name exactly as it appears on Canvas. Make sure that the case matches.
  3. Use your UT EID exactly as it appears on Canvas. Make sure that the case matches.
  4. Enter the correct zyBook code listed below for the section that you are registered in.
  5. Cost: $77
  6. Subscribe

Section 52038
Title: CS313E-52038: Elements of Software Design
zyBook Code: UTEXASCS313E52038MitraSpring2023
ISBN: 979-8-203-10365-9

Prerequisites for CS 313E

The is the second course in the Elements of Computing Certificate series. You should have taken CS 303E or CS 312 or an approved first semester programming course.

Lectures and Office Hours

There will be two modalities for this course. We can meet in person or online. We will give you at least one week's notice when we go from virtual to in-person or vice versa.

When we meet online the lectures and office hours will be on Zoom on Canvas. When we meet in-person we will be meeting in the classrooms listed above.

For online meetings, be sure that you have Zoom 5.12 or higher and Duo. Login to Zoom using your ut_eid@eid.utexas.edu. The lectures will be recorded. These recordings are confidential and are only for educational purposes. The recordings must not be shared in any form. Any dissemination of the recordings is a violation of the University policies and will be subject to Student Misconduct proceedings through the Office of Student Conduct and Academic Integrity. The office hours will not be recorded.

Classroom Safety

To help preserve our in person learning environment, the university recommends the following:

Scope of the Course

This is the second course in the Elements of Software series. I assume that you know a programming language (C / Java / Python) at the level taught in CS 303E. The emphasis of this course will be on software development using object-oriented methodology. I will not teach you basic Python syntax in this course.

We will learn how to analyze and design software. We will learn how to create reusable software components and to compose programs from already available components. We will learn about some basic data structures and algorithms and how to match the data structures and algorithms to problems. We will test and evaluate programs for their functionality and their performance.

We will be following the required text book closely. I will provide notes in class that will be posted on the web for topics that are not covered in the book. Unlike the traditional lecture format, our classes will be a venue for solving problems, writing programs, and exchanging, ideas. Attendance to the lectures is mandatory. I want you to be engaged during lectures and taking part in the class discussions.

Learning Objectives

In this course you will learn how to solve computational problems. Given a computational problem you should be able to This is a programming intensive course.

Assignments

There will be programming assignments that you can complete remotely in the CS public Labs. But most likely you will choose to use your own computer to work on these assignments. If you work on your home computer, you will have to download and install Python 3. There are several graphical development environments you can install - PyCharm, VSCode, or Sublime Text. Any of these IDEs will make it easier for you to structure and debug your code. However, I also expect you to run your program on the command line.

The only way to learn programming is to program. Doing the programming assignments is crucial to performing well in class. There will be on the average two assignments every week. The assignments will be due on Mondays and Fridays. Each assignment will have a clearly stated due date and time. Assignments start out being easy but get harder over the semester. If you are having considerable difficulty with Assignments 2 and/or 3, please see the Instructor immediately.

The assignments will require a substantial time commitment over several days (an average of 10 to 12 hours per week should be expected). Be sure to budget sufficient time to complete assignments before the deadline.

Turn in your assignments on time. This permits grading to start promptly after the submission deadline so that assignments maybe returned promptly. If you do not finish an assignment by the deadline you have a maximum of two days to turn your assignment in. However, there is a penalty of 10 points (out of a 100 points) per day. Your assignment is one day late until the midnight of the day after it is due, two days late from then until midnight of the second day. We will accept your assignment after two days if there is a compelling reason.

We are moving all assignment submissions to Gradescope. Bear with us as we make this transition. Here are important things to bear in mind:

If you want us to debug your program, come to us during our office hours and we will go through the program with you. Do NOT just e-mail the program to us for debugging. We will not respond to e-mails that have full length programs that have to be debugged.

Grade Dispute: Scores for assignments will be posted on Canvas. You have one week from the date the assignment grade is posted to dispute your grade. The student assistants will be grading the assignments. Visit the TAs and see if you can resolve your differences. If you cannot resolve your differences, you may visit me to explain the situation. We will not entertain any grade disputes three days after the grades are returned. You may resubmit your assignment for regrading after grades are returned. But the maximum that you can get is 70 points out of 100 points.

Assignment Identification: All assignments must be submitted with the proper header, containing your name (as registered), your unique section number, and the assignment number at the top of the assignment. The format for the header will be specified in the assignment. That specification will over ride any other header specification. If you are doing pair programming with a partner, you must have your partner's name and UT EID in your header. Your partner must have your name and your UT EID in his or her assignment header.

Reading Exercises

There will be assigned readings from the text and exercises that follow the readings. You must do the readings and exercises by the due date and time. There are no extensions to the reading assignments.

Class Participation

You are expected to be in class and participate in class activites like coding and solving logical problems. There is a grade associated in being engaged. I will drop the lowest of your two class participation scores.

Quizzes

There will be a quiz every class day. There will be one to three questions in a given quiz. The questions will be from the reading assignments or the material discussed in class the previous day or logic problems. The quizzes will be hosted on Canvas. The quizzes are multiple choice questions. There are no makeup quizzes. I will drop the lowest of your two quiz grades. This number (two quizzes) is non-negotiable. This drop will take care of any absences that you may have or any electronic mishaps that you may have with your smart phone or laptop.

Due Dates and Times

All deadlines are expressed in US Central Time. Do not wait till the last hour and then try to beat the clock. There are times systems are taken down for maintenance and will be unavailable for you. Be aware of this as you schedule your work.

Tests

There will be three tests and no final examination. The tests are short computing problems similar to the homework problems. You will have to write the solution to those problems in Python by hand. All three tests will be in the evening starting at 6:00 pm. The tests will be on Gradescope.

Test Schedule
Test Date Time
Test 1 Fri, 10 Feb 6:00 PM - 10:00 PM
Makeup 1 Sun, 12 Feb 10:00 AM - 2:00 PM
Test 2 Fri, 24 Mar 6:00 PM - 10:00 PM
Makeup 2 Sun, 26 Mar 10:00 AM - 2:00 PM
Test 3 Mon, 24 Apr 6:00 PM - 10:00 PM
Makeup 3 Tue, 25 Apr 10:00 AM - 2:00 PM

Make-up tests will be given only for the following reasons. In all cases you must provide some form of documentation.

Having three tests on the same day is not official UT conflict!

Think of the tests as being timed take home tests. You may use your notes and books but you may not communicate in any way with another human being regarding the test (other than asking the TAs questions for clarification) as private notes on Ed Discussion. We will ask you to electroncially sign an honor code that the work that you submitted was solely your own.

Questions concerning test grades should be given to me in writing along with your test within the next class day that the test is handed back. We will not entertain any disputes after that time.

Grades

Your performance in this class will be evaluated using your scores for quizzes, reading exercises, programming assignments, and three tests. The weights of each of these components are listed below. There are no extra credit projects or assignments to improve your grade. We do not drop any of the assignment scores nor do we drop any of the reading exercises scores. We only drop the lowest three quiz scores.

All scores will be entered on Canvas. Check your scores regularly on Canvas to make sure that we have entered them correctly. Remember the average score as shown on Canvas is not correct. It does not weight the average with weights as shown above. Your final grade will be assigned after we obtain the weighted average according to the weights as given above. Your grade will be based on the traditional scheme:

We do assign grades on the +/- system. But those finer cutoffs will be determined at the very end after the weighted average and standard deviation of the class are computed.

You can earn 5 points extra credit on the total sum of the three tests for filling out the electronic evaluation for the class. To obtain those extra credit points you must take a screen shot of the fact that you completed the survey and then upload the screen shot to the appropriate slot in Canvas.

Study Groups

Please organize yourselves into study groups of ~5 students who will meet once a week or more to discuss the course. Typically, you will review the lectures, do the reading, and attempt the homework independently before your weekly meeting with your study group. Studying for tests together is permitted and encouraged. If you are unsure about how to work together with your friend in a legal, helpful manner, do come and talk with us. Remember, it is always ok to "work together" with your professor or TA!

Communication

We will be using Ed Discussion integerated into Canvas for general discussion of class related questions. Please do not post solutions or code to any home work assignment problems on Ed Discussion. All communications to the Teaching Assistants will be through Ed Discussion. If you want to reach out to the Teaching Assistants then post a private note to them on Ed Discussion. Do NOT send them private e-mails. If you want to reach me send me mail at (mitra@cs.utexas.edu). If you have assignment related questions, it is best to vist the TAs during their office hours. If you have content related questions visit me during my office hours.

We have an unmonitored discussion group on Discord. You may use this group to find partners for assignments and discuss other class related material where you do not need a response from the teaching team. We do not encourage the formation of any other discussion or social group for this class.

Academic Misconduct Policy

While you are free to discuss the course material with your classmates and are encouraged to form study groups for the exams, collaboration on homework or programming assignments is not permitted unless you are working with partner on a pair programming assignment.

Helping a friend understand the intent of a homework or programming assignment specification is permitted. Students who work together too closely (e.g. design their solution together) outside of pair programming should be aware that this is a form of cheating called COLLUSION and is subject to academic penalties. Penalties for academic misconduct include a failing grade in this course.

The homework, programs, and exams must be the work of students turning them in. University policy (see Dean of Students' policies on academic integrity) will be followed strictly. We will be running a sophisticated program on all submitted assignments to detect plagiarism. If we do detect any cases of academic dishonesty, we will assign a grade of F to all students involved and refer the cases to the Dean of Students.

Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

We urge everyone in the class to take appropriate measures for protecting one's work. You should protect your files, homework solution sheets, etc. as deemed reasonable. The only exception that we will make to these guidelines is if you are involved in pair programming with a friend.

Your Responsibilities in This Class

University Time Table

General Policies

If you are absent from class or examination for the observance of a religious holy day you may turn in your assignment or take the examination on an alternate date provided you have given me written notice fourteen days prior to the class absence. For religious holy days that Spring within the first two weeks of class notice must be given on the first class day.

Students with disabilities who need special accommodations should contact the Services for Students with Disabilities (SSD) Office (471-6259 or 471-4641 TTY).