|
|
||||||||
Major Courses I Am TeachingIn each course described below, there will be a description of the current assignments and due dates, and an update of the topics discussed in class so far. Other pertinent material appears in the course outline distributed on the first class meeting.
Text: Sebesta, Robert W., Concepts of Programming Languages, Fourth Edition. Addison-Wesley, 1999. Additional Primary References:
Topics Covered in the Course:
Text: Aho A., R. Sethi, J. D. Ullman: Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass., 1986. Objectives and Purpose: To describe the underlying mathematical and programming principles used to create and design compiler software for an elementary high-level programming language. A number of key ideas from abstract program design and finite automata theory will be used to apply these principles. Topics covered in the course: (1) Lexical scanners.(2) Finite-State machines. (3) Parsers. (4) Regular and Context-Free Languages and Grammars. (5) LL-Parsers and LR-Parsers. (6) Semantic Analysis and Symbol Tables. (7) Intermediate Code Translation and Object Code. CMPT 456 -- Software Engineering Text: Schach, Stephen: Classical and Object-Oriented Software Engineering, Third Edition. Irwin, 1996. Purpose and Objectives: To introduce the student to contemporary techniques in the design, coding, testing, and maintenance of software, and to emphasize the use of teamwork as commonly practices in the industrial software development sector. Each student will be a member of a team, whose purpose is to develop an item of commercial software from scratch, meeting periodically with the instructor, who will serve as the software coordinator. The completed project will be submitted in two forms: as paper documentation, and executable or source file. The instructor will assess the progress of the project as presented by the team members, and will suggest possible methods for its successful continuation and completion. In addition, the student will be exposed to three popular languages used for this purpose in the commercial sector: Java, Ada and C++. Topics covered in the course: (1) Software Specification: The software requirements document, requirements definition, evolution, and specification. System modeling, software prototyping, forms of specification.(2) Software Design: The classical waterfall model, object-oriented design, function-oriented design: data flow diagrams, structure charts, data dictionaries. User interface design: graphical user interfaces, command interfaces. (3) Programming Techniques and Tools: Reliability: fault tolerance, exception handling, defensive programming. Software reuse: modularity, portability. Computer-Aided Software Engineering (CASE) tools, object management. (4) Software Validation: Verification and validation: testing strategies, correctness. Reliability: metrics and reliability specifications. Defect testing and Testing and Debugging Tools. (5) Software Management: Project planning and scheduling, software cost estimation. Software maintenance, configuration management. Documentation: classification, quality, preparation. Quality assurance. Additional Primary References:
|
||||||||
|
© 1999-2001 Manhattan College
|
||||||||