Courses Taught
|
|
|
Summary:
Introduction to Database Systems (Computer Science 451)- Introductory course in database systems. Brief history of data processing systems, rationale for database systems. Introduction
to data modeling, E/R, relational, hierarchical, network models. Introduction to query
languages, SQL, relational algebra, relational calculus (tuple and domain), integrity
constraints, triggers, assertions, referential integrity. Focus on functional dependency,
normalization, normal forms, logical design, file systems, indexes, hashing. Introduction
to query processing, recovery, concurrency control, transaction processing. Database Systems (Computer Science 551)- Graduate course in database systems. Review of data processing systems and rationale for database systems. Focus on data
modeling, E/R, relational, hierarchical, network, object, logic models. Focus on query
languages, DATALOG/PROLOG, SQL, relational algebra, relational calculus (tuple and
domain), proof of equivalence, safety, closed world assumption. Review of functional
dependency, normalization, normal forms, logical design, file systems, indexes, hashing.
Focus on concurrency control, transaction management, distributed database management. Topics in Computer Science: Object Oriented Windows Development (Computer Science 483)- Microsoft Windows Development using Visual C++, Foundation Classes, Application Framework, OO methods. Introduction to object oriented analysis, design, programming. Introduction to C++
programming. Introduction to Visual C++ development environment, AppWizard, AppStudio,
ClassWizard, Microsoft Foundation Classes, Application Framework: applications, documents,
views, main frame window. Graphics Device Interface (GDI), device context (DC), pens,
brushes, fonts, mapping modes and scaling. Dialog boxes and controls: check boxes, radio
buttons, groups, edit boxes, list boxes, combo boxes, static labels, scroll bars, use of
message maps and ClassWizard to establish mapping of controls to input and update
handlers. Bitmaps, timers, memory management and the C++ new/delete operators. Menus,
keyboard, mouse, accelerators, toolbars, status Bars, Single Document Interface (SDI) vs
Multiple Document Interface (MDI). Serialized I/O, printing and preview, Splitter Windows.
Context sensitive help and development of Windows Help files .HLP. Applied Graphics: Microsoft Windows Application Development (Computer Science 443)- Microsoft Windows Application Development using traditional SDK 3.1 API and C. Introduction to SDK 3.1 and Microsoft Windows, basic text output, keyboard and mouse
input, timer, child window controls, memory management, icons, cursors, bitmaps, strings,
menus, accelerators, dialog boxes. GDI, device context, graphics, text and fonts, printer.
Clipboard data exchange, dynamic data exchange (DDE), dynamic data linking (DDL). Software Engineering Laboratory (Computer Science 423)- Group senior level design project in software engineering. Simulation of a real-world software engineering task from beginning to end including
problem analysis, proposal development, feasibility study, cost/effort estimation, system
requirements, design, implementation, testing, and evaluation. Students work in groups and
establish an organization, methodology, and schedule for their work. Presentations of
results are made by the groups. Software Engineering Principles (Computer Science 422)- Methodology for the development of software including requirements, design, implementation, testing, and maintenance. Different software engineering
paradigms are discussed including the classical waterfall method, rapid prototyping, and
high-productivity environments such as 4GLs. Analysis approaches include methods for
real-time systems and information systems using functional, data, and object-oriented
views of software systems. Computer Architecture (Electrical Engineering 424)- Design and development of CPU architecture and microcomputer systems. Topics include logic design, requirements specification, CPU architecture
design, simulation, performance analysis, instruction set specification, microcoded
controller design, microcode design, translation, simulation. Microcomputer Systems (Electrical Engineering 314)- Design and assembly language programming of microcomputer systems. Based on the Motorola 68000 Educational Computer Board (ECB). Design of memory systems,
peripheral interfacing, interrupts, assembly language program development. Compiler Structures (Electrical Engineering 16.663)- Compilation and interpretation techniques for computer languages. Discussion of language types, syntax specification, translation, run-time models,
resource allocation, code generation, optimization. Study of several approaches and
algorithms for the compilation and interpretation process. Digital Subsystems (Electrical Engineering 16.574)- Modeling and design of combinational and sequential digital systems. Discussion of finite state and other automata requirements models, hazards and races,
transmission line effects on busses, specific SSI/MSI/LSI chips used as in design
examples. Programming Languages (Electrical Engineering 16.524)- The syntax, semantics, translation, and history of several programming languages including: BASIC, FORTRAN, C, PASCAL, ALGOL, MODULA-2, PL/1, COBOL, SNOBOL, LISP, PROLOG, FORTH,
SMALLTALK, APL, ADA. Logic Design- The specification and design of combinational and sequential digital machines. Topics included boolean algebra, minimization, state-assignment and minimization,
technology families, commercially available circuit components. Microcomputers- Programming and interfacing with microcomputers. Topics included microcomputer architecture, I/O subsystems, software architecture,
instruction sets, development tools, laboratory problems. Rockwell AIM-65 and Commodore
PET (6502 CPU) were used in hands-on mode. Software Engineering Laboratory (Computer Science 265)- Senior elective laboratory in software engineering. Topics included software engineering methods and practices. Hands on experience with
the technical and managerial problems of group software development were discussed. A
relational-database was designed and built as class project. Introduction to Computer Science (Computer Science 101)- Introductory undergraduate course in PL/C programming. Topics included elementary data types, control structures, data structures, language
syntax, and algorithms. PL/C (Cornell PL/1 interpreter for IBM/370) was used for hands-on
laboratory. PL/1 Programming- In hours course for technical staff members. Topics included intermediate and advanced techniques for programming in PL/1 including
advanced file-manipulation. 360 Assembly Language Programming- In hours course for technical staff members. Topics included intermediate and advanced techniques for programming in 360 assembly
language including supervisor service and data management macro instructions, advanced
file manipulation, macro definition, multiple module constructions using the linkage
editor. |