logo logo
Tree Swing Cartoon (Wikipedia)

cs342 @UIC
Software Design

Spring 2017
Instructor: Prof. Liz Marai
Tue,Thu 12:30pm-1:45pm
Lecture Center Building F F003


Class Information





TA Office Hours

Class Information

All class-related information (including handouts, electronic readings, and assignments) should be accessed through the CS342 web portal located at:

1:: Prerequisites and Attendance

Prerequisites: CS251 (Data Structures). The pre-req is non-negotiable.

The class meets Tue and Thu at 12:30pm in Lecture Hall F. Attendance is not mandatory, but might as well be: this course employs massively in-class quizzes, exercises, presentations, discussion, and critiques. Students are required to bring in their iclicker, a notepad, and a pencil/pen. Class will start right on time; being late will result in lost quiz points, which would be a pity. :-)

This course has a strict policy of no student laptops, no smartphones, no internet-enabled devices. For the duration of class, we need you to be present, alert and active. In exchange, there will be no formal midterms and exams. Don't make us regret it. :-)

2:: Textbooks

Many of the class readings will be online. We will read additional articles as necessary (electronic copies will be provided for these). The two books we require for this class are:

  • Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin
  • Crucial Conversations: Tools for Talking When Stakes Are High, Second Edition, by G. Patterson et al.
The following two books are recommended, but not required:
  • Head Start Design Patterns Author: Freeman, Freeman, Bates, Sierra, Robson, O'Reilly Publishers, ISBN: 0596007124;
    We will discuss Design Patterns for at most one week. If you're interested in the topic, by all means get the book and read it on your own.
  • Java: A Beginner's Guide, Author: Herbert Schildt. Publisher: McGraw-Hill ISBN: 978-0071809252 Edition: 6th edition
    Get this book and study it if your Java is wobbly, or if you are transferring into UIC and would like to know what UIC students typically know before they enroll into CS342.

3:: Staff

Liz Marai, SEO 932
Email:   gmarai at uic.edu
Office Hours:   TuTh 1:45pm - 3pm or by appointment.

Graduate Teaching Assistants:
Lichao Sun Email: lsun29 AT uic.edu>,
He (Steve) Huang Email: hehuang AT uic.edu,
Harshit Tiwari Email: htiwar2 AT uic.edu

Office Hours: See CS 342 TAs Office Hour Calendar.

4:: Course Grade, Assignments, and Final Project

The course grade will be decided based on the following factors:

  • Final project, including intermediate deliverables (40%)
  • Class participation (20%)
  • Quizzes, assignments and in-class exercises (40%)

There will be a quiz each class meeting, covering the assigned reading materials. Students get 1 point for being present, and another 4 points for answering all the questions correctly. We will drop the three lowest scores of each student.

Classes will be divided among short lectures, discussions and debates, in-class exercises, design critiques, student presentations, and group meetings.

Many of the assignments will be done in groups. Please note that in this course, as in real life after graduation, whom you get to work with for several exercises is determined by us/your project manager, not by you. When appropriate, all members of a group will earn the same grade, barring exceptional circumstances. We will closely monitor member contributions to the group work, as well as repeatedly ask for peer-based feedback.

Your primary grade will come from the course projects, assignments, and quizzes. While the class discussion and debates will not define your grade, your performance on them can alter your grade (in particular, not paying enough attention to them can cause you to lose a letter grade or more).

A program that does not compile on the TAs' machines, or at least on the CS Lounge machines, will receive 0 points (zip, nada, nothing, end of discussion). If a program crashes and prevents us from testing portions of an assignment then the assignment loses points for the portion we can't test. In general it's not good for a program to crash. It just makes the TAs mad and they'll take it out on the grade. Conversely, do some fun EC and the TAs will love you.:-)

Please keep in mind that cs342 office hours are a valuable resource dedicated to helping students learn software design, not to teaching Java programming or data structures. It is not the staff's job in any way to help you debug your programs, and please do not expect them to bring up your code on the screen and help you fix it.

Sometimes you may think that you have been graded unfairly. Please take this up with the TA who graded your assignment. If there is still a problem, Dr. Marai is the final word in grading and will be happy to hear what you have to say. Also, once the grades have gone out, you will only be given two weeks to lodge a protest. In other courses, students have tried to get points back on all of their assignments in the last week of class, and though we would like to promote fair grading, we would like to dismiss malintentioned hassling. Please be aware that if the staff finds there are no grounds to a grade complaint (aka malintentioned hassling), they will lower the original grade by half a grade, as fair penalty for abusing TA hours. Our first priority is fairness (both to us and to you), so please do complain about grades if you don't agree with them.

There are no incompletes in this class unless that student's current performance in class is at least a B and they have a really good excuse, documented with the Deans. No extra work is allowed to make up for poor performance. We have to treat everyone equally, and we can not give extra work opportunities just to specific people.

Last, but not least, this edition of CS342 emphasizes teamwork and oral communication skills, both essential componens of software design and implementation. This emphasis is reflected in both assignments and the class participation component of the grade. To help define successful oral communication, we provide two grading rubrics, one for student presentations and the other one for class discussion (see Section 9 below).

5:: Late Policy

We will not accept late assignments. Some of the core topics we will discuss in this course include: task scheduling, time management, and teamwork; we fully expect students to practice these principles. The assignments come with ample time allocation, and will sometimes be timed to coincide with a lecture on a topic; so completing the assignment is also crucial class preparation. The least deadlines you miss, and the more serious the ones you make, the greater this will affect your grade. An assignment that is more than 5 minutes late will receive 0 points.

6:: Collaboration

You may not discuss the assignment with anyone outside of the permitted group (by default, nobody else) with the sole exception of the course staff.

If you have questions, please send them to the course staff via private message on Piazza. If the question or answer are of general interest, please post it publicly to Piazza. Failure to follow this rule may be viewed as violation of the collaboration policy.

The project is, naturally, a group activity. Groups will communicate internally in ways defined by the group leadership. Groups may communicate with one another in clearly permitted ways (as defined by the course project requirements).

7:: Academic Honesty

The University has an Academic Code that governs all our transactions. In this course, we interpret this code as: All submitted work must be your own. You may not submit as yours work done by a classmate, by a friend, by someone on the internet etc. Always give proper credit. We expect that you, as students and scholars, will abide by this faithfully and fully. Cheating in this course will result in an F for the course.

8:: On Writing

We care about your ideas, and we also care equally deeply about the quality of your writing. We care about spelling, capitalization, punctuation, sentence construction, paragraphs, and so on. Avoid passive speech except where appropriate. Extremely good ideas expressed very poorly will earn a very poor grade.

9:: On Oral Communication and Discussion of Readings

We care equally deeply about the quality of your speech -- be it during team communication, results presentations, or deploying the game for testing. We want you to be successful, and to this end this semester we provide grading rubrics for class presentation and class participation (see syllabus).

It is important that you read the required class readings for a given class *before* the class meets. These readings are carefully selected to stimulate class discussion; reading them after class is far less useful. Therefore, we ask you to submit to Piazza short comments for each reading *by 11:59pm the day before class*. Each reading will feature on the wiki a "Lessons learned" section, and a "Topics for Discussion" section. Under "Lessons learned", please enter up to three sentences summarizing what you've learned from the paper or chapter (phrased as statements). Under "Topics for Discussion" please enter three items that you'd like to propose for discussion (phrased as questions). This will allow the presenters and discussion leads to come prepared to address class questions -- including amazing illustrations and examples and so forth :-). To encourage everyone to submit their comments on time, we implement the "fair-play" penalty for being late on Piazza. Entering comments late (or not at all) will result in having to prepare a mandatory 5-minute technical, entertaining skit for the following class meeting.

10:: Students With Disabilities

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and the UIC Disability Resource Center (MC 321), 1200 West Harrison Street, 1190 SSB Chicago, IL 60607-7163 (312) 413-0886, as early as possible in the term. DRC will verify your disability and determine reasonable accommodations for this course.

11:: Recording and Copyrights

Audio/Video Recording
To ensure the free and open discussion of ideas, students may not record classrom lectures, discussion and/or activities without the advance written permission of the instructor, and any such recording properly approved in advance can be used solely for the student's own private use.

Copyrighted Material
All material provided through this web site is subject to copyright. This applies to class/recitation notes, slides, assignments, solutions, project descriptions, etc. You are allowed (and expected!) to use all the provided material for personal use. However, you are strictly prohibited from sharing the material with others in general and from posting the material on the Web or other file sharing venues in particular.