Course Syllabus
CS 441 Advanced Programming - Theory and Practice
PREREQUISITE: CS 335, CS 344, CS 346,
CS 365 and Math 325 or consent of instructor.
COURSE OBJECTIVES:
This is your capstone sequence in the Computer Science Department and therefore this course will extend and deepen your understanding of topics previously covered. Specifically the objectives of this course are to gain an understanding of the theory and practice involved in designing, coding, and testing software. You will examine and implement advanced data structures, algorithms, design patterns, and programming techniques. You will understand design tradeoffs, software testing, maintenance and documentation issues, and program execution and memory requirements. Issues specific to team projects will be introduced. All these issues will serve as the basis for a major project in CS 442.
Instructor:
Name: Joel Henry
Office: Social
Sciences 411
E-mail address: henryj@cs.umt.edu
Phone: 243-2218
Topics:
1. Challenges of design, coding, and testing.
2. Professional programming.
3. Implementation issues.
4. Integration and deployment.
5. Design patterns and pattern implementation.
6. Software design.
7. Software testing, maintenance and documentation.
8. Preparing for a major project.
TEXTS:
REQUIRED:
Design Patterns
in C#, Metsker
Code Complete,
McConnell
COURSE CONTENT:
This course continues to evolve each year. As such, I will be using material from both texts but supplementing course materials heavily from other texts, journal articles, and personal experience. Course materials from other sources will be given to you, obtained them from the web, or from reserve at the library. Please note: You are responsible for all material no matter source. You may use Java or C++ in this course, but you must implement the design patterns and implementations as required (meaning “I can’t do it in Java” will not excuse you from doing the assignment as instructed. I have extensive professional computing experience which will influence this course heavily. You will not find this information in any textbook so COME TO CLASS!
Course Deliverables:
Tests
(3 @ 20% each): 60%
Assignments (7): 40%
Grading:
Late
Policy:
Hand in materials: Presentations:
1 day (24 hours) - 10%
No
late presentations.
2
days (48 hours) - 30%
3
days (72 hours) - 50%
4
days or more - No thanks, I
don’t want it.
Cheating:
Plagiarism
will be handled harshly, as per the Student Conduct Code. You may fail the assignment or the
course. MY ADVICE: Take an F rather than
cheat.
Course
Information:
This
course leverages the strengths of the instructor and includes course materials
that meet the vision of the instructor.
In short, I asked myself, “What materials would have been most useful me
in a capstone course prior to graduation?”
This course answers that question.
You have
never had me for a course and so have no stories from other students to rely
on. Here is a cliff notes version of
what you might hear if you were to talk to former students of mine. I am tough but fair. I have little tolerance for trash disguised
as coursework. “The dog ate my
homework” stories do not fly. If you
have a legitimate problem or obstacle to submitting assignments or taking
tests, I will go the extra mile to help you.
I am informal in dress and presentation.
Do not let this belie the fact that I take this job and this material
very seriously. You will work hard but I
will be working hard along side you to provide challenging, interesting, and
relevant materials. I make mistakes and
have no problem admitting them. However,
I am bright and experienced, and will not tolerate any disrespect. I will not disrespect you.
I firmly
believe you can succeed in this course, can complete every assignment, and can
master every test question. I believe you
will meet my high expectations. If you
are working hard at this course, I will do all I can to insure you get the
grade you wish. If you
attempting to do as little as possible to succeed, or just plain being lazy,
you will find me indifferent to your success.
Come to
class on time, just as you would if working for a prospective employer. If I am talking you are not talking. This is also a behavior I get upset with very
quickly. If you want to chat, don’t come
to class. If you are talking when I am,
please leave.
Tentative Schedule:
Week |
Tuesday |
Thursday |
Material |
Assignment |
|
1 |
Aug 29 – Introduction, Syllabus, Course Information, assignment 1 |
Coding and commenting style; developing and implementing algorithms |
Chapters 1 - 4 McConnell |
Work on Assignment 1 Commenting and Style assignment |
|
2 |
Sept. 5 –Design and implementation overview |
Implementation of design; classes and functions |
Chapters 5 and 6 McConnell |
Assignment 1; due Sept. 7 |
|
3 |
Sept. 12 – Coding for today and tomorrow |
Flexible, defendable, and safe design and coding |
Chapters 7, 8 and 9 McConnell |
Read, Work on Assignment 2 |
|
4 |
Sept. 19 – Rethinking design and coding |
Review for Test 1; complete McConnell 1-9 |
Complete 1-9 McConnell |
Read, Assignment 2 due Sept. 19, Study for test |
|
5 |
Sept. 26 – Test 1 |
Return Test 1; design patterns |
Chapter 1 Metsker |
Read |
|
6 |
Oct. 3 – Interfaces, delegates, and design |
Applying interfaces; Adapter Pattern |
Chapters 2 and 3 Metsker |
Read, Work on Assignment 3 due Oct. 12 |
|
7 |
Oct. 10 – Façade Patterns |
Composite Pattern |
Chapters 4 and 5 Metsker |
Assignment 3 due Oct. 12 |
|
8 |
Oct. 17 – Bridge Pattern |
Integrating patterns |
Chapter 6 Metsker |
Read, Work on Assignment 4 |
|
9 |
Oct. 24 – Responsibility Patterns |
Singleton Pattern |
Chapters 7 and 8 Metsker |
Read Assignment 4 due Oct. 24 |
|
10 |
Oct. 31 –Observer Pattern |
Implementing Observer Pattern |
Chapter 9 Metsker |
Read, work on assignment 5 |
|
11 |
Nov. 7 – Election Day, NO CLASS |
Construction Patterns; Builder pattern |
Chapters 14 and 15 Metsker |
Read, Assignment 5 due Nov. 9 |
|
12 |
Nov. 14 – Factory Pattern |
Abstract Factory Pattern |
Chapters 16 and 17 Metsker |
Prepare for Test 2; Assignment 6 due Nov 16 |
|
13 |
Nov. 21 Test 2 |
Thanksgiving |
|
|
|
14 |
Nov. 28 – Review Test 2; Operational Patterns |
Template Pattern |
Chapters 20 and 21 Metsker |
Read, work on Assignment 7 |
|
15 |
Dec. 5 – State Pattern |
Strategy Pattern |
Chapters 22 and 23 Metsker |
Assignment 7 due Friday Dec. 8 |
|
16 |
December 11-15 Finals week |
|
|
Final Exam |