Time:
- Weds: 12-12:50p
- Tues and Thurs: 12:30-01:45p
Place:
Instructor
& TA Contact Info:
Jason Leigh
Phone: (312) 996-3002
Office: Room 2032, Engineering Research Facilities
Building (842 W Taylor St)
Home Page: www.evl.uic.edu/spiff
Office Hours: 2032 ERF: Thursdays after class till 3pm
TA:
Yile Wang
Office Hours: 1306 SEO: Thursday 2pm-4:30pm
Course Description (from the catalog):
Programming
language semantics, scope, overloading, data
abstraction, constructors. Procedural and
object-oriented design, programming tools and
environments. Interactive application structure and
interface, windows, events, widgets.
For Starters:
For starters please fill out
the following survey.
Course Requirements:
CS
202
Textbooks & Resources:
You do not need to buy
textbooks for this class (unless you really
want to) because it is available digitally through
UIC's library proxy. Welcome to the future!
To
gain access to the textbooks:
- Go to the Safari
Online website via the UIC Proxy Page. Login
to the proxy using your ACCC ID and password.
- Once there you can look
up the following books (or any book that happens to
be available):
- Practical C++
Programming by Steve Oualine
- Essential C++
by Stanley Lipman
- C++ in a Nutshell by
Ray Lischner
- Head First Design
Patterns by Eric Freeman; Elisabeth
Robson; Kathy Sierra; Bert Bates
- Pro Git by
Mario Danic
If
you really want to buy the physical textbooks I
recommend you order them on Amazon since these books
are probably not available at the UIC bookstore. But
since I haven't decided yet which book to use, I
recommend you just read the online version for now.
Administrative
Stuff:
-
No
exams for this class. Yeah you read it
right. Don't make me regret it!
-
No late assignments
accepted. Forget it, don't even try come
up with some excuse. Most assignments give you at
least a month to work on them.
-
Cheating! Bad!
Don't do it. If I catch you copying someone else's
work, you will face disciplinary action (you know
public humiliation, canning, banishment, that sort
of thing). There are programs like MOSS that are
really good at catching stuff like that, so spend
the effort and do the work rather than cheat.
It'll just ruin your career in the long run.
-
If your programs
don't compile your grade for the program is zero, zip, nadda, end of
discussion.
-
If your program crashes and
prevents us from testing portions of your
assignment then you lose points for the portion we
can't test. In general it's not good for your
program to crash. It just makes the TA mad and
he'll take it out on your grade.
-
For each program you
are required to have:
-
README.html
to explain how to compile and launch it.
-
Instructions.html
to explain how to actually operate the program
once running.
-
Design.html that
describes at a high level the software design of
your program. E.g. how have you partitioned the
program across files, and how have you designed
the C++ classes and why.
-
No incompletes
unless your current performance in class is at
least a B
and you have a really good excuse.
-
No extra work
is allowed to make up for poor performance. I have
to treat everyone equally.
-
Attendance is up to
you. You're an adult and besides, you're
paying for the class. There's an African proverb
that says: "Those
who are absent are always wrong..."
Course Assignments:
Generally there will be 4 assignments for a total of 100
points.
- Assignment 1:
[5 points] Project proposal descriptions.
- Assignment 2:
[25 points] Mini-presentation on topic in Software
Design (15 minute presentations).
- Assignment 3:
[70 points] Team up with someone to develop something
of interest to your team. This year's theme will be
mobile apps. Maximum team size of 4 only (25 minute
final presentations).
Course Topics and Tentative
Schedule / Due Dates:
Dates are tentative depending on how quickly we move
through materials and class size.
- Week 1
- C++ in a nutshell
- Aug 28
- Aug 29
- Aug 30
- Week 2
- Intro to Qt
- Sept 4
- Sept 5
- Sept 6
- Week 3
- Programming
Style
- Agile Software
Development
- Working in Teams,
Version Control
- Sept 11
- Sept 12
- Sept 13
- Assignment
1 due: Submit project ideas
- Week 4
- Design Patterns
- Sept 18
- Sept 19
- Sept 20
- Submit
proposal for Assignment 2- Mini-Talks
- Week 5
- Qt Graphics
- Thread Programming
- Sept 25
- Sept 26
- Sept 27
- Week 6
- Network Coding
- Cloud Computing
- Oct 2
- Oct 3
- Oct 4
- Project
Review
A1: 5 groups (15 minutes)
- Week 7
- Oct 9
- Assignment
2: Mini-Talk 1-5 (15 minutes)
- Oct 10
- Assignment
2: Mini-Talk 6-8
- Oct 11
- Project Review A2: 5 groups
- Week 8
- Oct 16
- Assignment
2: Mini-Talk 9-13
- Oct 17
- Assignment
2: Mini-Talk 14-15
- Oct 18
- Project
Review
A3: 5 groups
- Week 9
- Oct 23
- Assignment
2: Mini-Talk 16-20
- Oct 24
- Assignment
2: Mini-Talk 21-23
- Oct 25
- Project
Review
B1: 5 groups
- Week 10
- Oct 30
- Assignment
2: Mini-Talk 24-28
- Oct 21
- Assignment
2: Mini-Talk 29-31
- Nov 1
- Project
Review
B2: 5 groups
- Week 11
- Nov 6
- Assignment
2: Mini-Talk 32-36
- Nov 7
- Assignment
2: Mini-Talk 37-39
- Nov 8
- Project
Review
B3: 5 groups
- Week 12
- Jason on travel -
No class
- Nov 13
- Nov 14
- Nov 15
- Week 13
- Nov 20
- Assignment
2: Mini-Talk 40-44
- Nov 21
- Nov 22
- Week 14
- Nov 27
- Final
Project Presentation for Groups 1, 2, 3
(25
minutes)
- Nov 28
- Final
Project Presentation for Groups 4, 5
- Nov 29
- Final
Project Presentation for Groups 6, 7, 8
- Week 15
- Dec 4
- Final Project Presentation for Groups 9, 10,
11
- Dec 5
- Final Project Presentation for Groups12, 13
- Dec 6
- Final Project
Presentation for Group 14- Tour of CAVE2
- ASSIGNMENT 3:
FINAL PROJECT DUE
- Finals week
- Study for your other
midterms!
|