Computer Science III
Object Oriented Design & Patterns, 2nd Edition
by Cay Horstmann
Published by Wiley, 2005,
ISBN 978-0471744870
AND
Core Java Volume 1 - Fundamentals, 8th Edition
by Horstmann
Prentice Hall, 2007.
ISBN 978-0132354769
COURSE DESCRIPTION
Development of the basic concepts and techniques from Computer Science I and II into practical programming skills that include a systematic approach to program design, coding, testing, and debugging. Application of these skills to the construction of robust programs of 1000-2000 lines of source code. Use of programming environments and tools to aid in the software development process.
COURSE TOPICS
- Programming style and its impact on readability, reliability, maintainability, and portability.
- Decomposing problems into modular designs with simple, narrow interfaces.
- Determining the proper objects in an object-oriented design.
- Selecting appropriate algorithms and data structures.
- Reusing code, including external libraries designed and built by others.
- Learning systematic testing and debugging techniques.
- Maintaining a repository of code during incremental development of a software project.
- Learning how to use threads to synchronize several tasks.
- Improving program performance.
- Making effective use of a programming environment, including:
- Syntax-directed editor
- Build tools
- Debugging tools
- Testing tools
- Source code management tools
- Profiling tools
PREREQUISITES
You must have taken CSE 214 and received a grade of "C" or better in order to take this course. In more detail, you are expected to have the following knowledge and skills at the beginning of the course:
- Ability to write programs of a few hundred lines of code in the Java programming language.
- Understanding of fundamental data structures, including lists, binary trees, hash tables, and graphs, and the ability to employ these data structures in the form provided by the standard Java API.
- Ability to construct simple command-based user interfaces, and to use files for the input and output of data.
- Mastery of basic mathematical and geometric reasoning using pre-calculus concepts.
COURSE GOALS
At the end of the course you should have the following knowledge and skills:
- Ability to systematically design, code, debug, and test programs of about two thousand lines of code.
- Sensitivity to the issues of programming style and modularity and their relationship to the construction and evolution of robust software.
- Knowledge of basic ideas and techniques of object-oriented programming.
- Familiarity with the capabilities and use of programming tools such as syntax-directed editors, debuggers, execution profilers, documentation generators, and revison-control systems.
TEXTBOOKS
by Cay Horstmann
Published by Wiley, 2005,
ISBN 978-0471744870
AND
by Horstmann
Prentice Hall, 2007.
ISBN 978-0132354769
COURSE PLATFORMS
This course will use the Java programming language. The programming environment for this semester will be the Open Source eclipse IDE, which includes a syntax-directed editor, run-time environment, debugger, unit tester, and additional software development tools. Go to the eclipse download page to get your own free copy. All software will also be provided for you to use in the Windows Lab.
Although you might have access to other Java programming environments installed on your PC or elsewhere, you are strongly encouraged to use the officially sanctioned programming environment for this course: because the assignments you submit must run on one of them, because the examinations will test you on your knowledge of the tools, and because these are the only environments for which the course staff will provide support.
Please note that regardless of how you do your programming for this course all code you submit for this course must compile and run under JDK 6.0.
TUESDAY | THURSDAY | FRIDAY |
2/1 Lecture 1 Software Development Lifecycle | 2/3 Lecture 2 Graphical User Interfaces | 2/4 |
TUESDAY | THURSDAY | FRIDAY |
2/8 Lecture 3 Event Programming | 2/10 Lecture 4 Event Programming (continued) | 2/11 HW 0 due @ noon (Contract) |
TUESDAY | THURSDAY | FRIDAY |
2/15 Lecture 5 Graphics and GUIs | 2/17 Lecture 6 Graphics and GUIs (continued) | 2/18 |
TUESDAY | THURSDAY | FRIDAY |
2/22 Lecture 7 Design Principles | 2/24 Lecture 8 Design Principles (continued) | 2/25 |
TUESDAY | THURSDAY | FRIDAY |
3/1 Lecture 9 UML G-J HW 1 Grading Session 2:45pm-6pm | 3/3 Lecture 10 UML (continued) G-J HW 1 Grading Session 2:45pm-6pm | 3/4 A-F HW 1 Grading Session 12:30pm-7pm |
TUESDAY | THURSDAY | FRIDAY |
3/8 Lecture 11 Design Patterns | 3/10 Lecture 12 Design Patterns (continued) | 3/11 |
TUESDAY | THURSDAY | FRIDAY |
3/15 Lecture 13 Design Patterns (continued) L-Z HW 2 Grading Session 2:45pm-6pm | 3/17 Lecture 14 Design Patterns (continued) L-Z HW 2 Grading Session 2:45pm-6pm | 3/18 K-L HW 2 Grading Session 12:30pm-5pm |
TUESDAY | THURSDAY | FRIDAY |
3/22 MIDTERM EXAM (Sample Exam) (Solutions) L-Z HW 2 Grading Session 2:45pm-6pm | 3/24 Lecture 16 SRS Peer Reviews L-Z HW 2 Grading Session 2:45pm-6pm | 3/25 |
TUESDAY | THURSDAY | FRIDAY |
3/29 Lecture 17 Design Patterns (continued) HW 3 due @ in lecture (SRS) | 3/31 Lecture 18 Debugging & Exceptions | |
TUESDAY | THURSDAY | FRIDAY |
4/5 Lecture 19 Debugging & Exceptions (continued) | 4/7 Lecture 20 UML Design Peer Reviews | 4/8 |
TUESDAY | THURSDAY | FRIDAY |
4/12 Lecture 21 Design to Implementation HW 4 due in lecture (UML) | 4/14 Lecture 22 Design to Implementation (continued) | 4/15 |
TUESDAY | THURSDAY | FRIDAY |
4/19 | 4/21 | 4/22 |
TUESDAY | THURSDAY | FRIDAY |
4/26 Lecture 23 Development Tools HW 5 due @ noon (Impl. Stage 1) | 4/28 DESIGN EXAM (Sample Exam) | 4/29 Coding Portion of Exam Due @ 11:59pm |
TUESDAY | THURSDAY | FRIDAY |
5/3 Lecture 25 Development Tools (continued) L-Z HW 5 Grading Session 2:45pm-5:30pm | 5/5 Lecture 26 Threads K-L HW 5 Grading Session 1pm-5:30pm L-Z HW 5 Grading Session 2:45pm-6pm | 5/6 G-J HW 5 Grading Session 12:30pm-5pm |
TUESDAY | THURSDAY | FRIDAY |
5/10 Lecture 27 Final Exam Review | 5/12 NO LECTURE Project Work Day L-Z HW 5 Grading Session 2:45pm-6:30pm | 5/13 HW 6 due @ 10am (Final Project) A-C HW6 Grading Session 12pm-2:30pm D-J HW6 Grading Session 3pm-7:30pm K-Li HW6 Grading Session 12pm-5pm Lin-P HW6 Grading Session 1pm-6pm S-Z HW6 Grading Session 10:30am-3:30pm |
TUESDAY | THURSDAY | FRIDAY |
5/17 Final Exam in 2120 2:15pm - 4:45pm (Sample Exam) (Solutions) | 5/19 | 5/20 |
No comments:
Post a Comment