Java/C/C++ DesignCS2102 / CS2301 / CS3013
CS 2102. OBJECT-ORIENTED DESIGN CONCEPTS
This course introduces students to an object-oriented model of programming. Building from the design methodology covered in CS 1101/CS 1102, this course shows how programs can be decomposed into classes and objects. By emphasizing design, this course shows how to implement small defect-free programs and evaluate design decisions to select an optimal design under specific assumptions. Topics include inheritance, exceptions, interface, design by contract, basic design patterns, and reuse. Students will be expected to design, implement, and debug object-oriented programs composed of multiple classes and over a variety of data structures. Intended audience: students with prior program design experience who desire to learn object-oriented design.
CS 2303. SYSTEMS PROGRAMMING CONCEPTS.
This course introduces students to a model of programming where the programming language exposes details of how the hardware stores and executes software. Building from the design concepts covered in CS 2102, this course covers manual memory management, pointers, the machine stack, and input/output mechanisms. The course will involve large-scale programming exercises and will be designed to help students confront issues of safe programming with system-level constructs. The course will cover several tools that assist programmers in these tasks. Students will be expected to design, implement, and debug programs in C++ and C. Intended audience: computer science and computer engineering students with substantial prior object-oriented programming experience.
CS 3013. OPERATING SYSTEMS.
This course provides the student with an understanding of the basic components of a general-purpose operating system. Topics include processes, process management, synchronization, input/ output devices and their programming, interrupts, memory management, resource allocation, and an introduction to file systems. Students will be expected to design and implement a large piece of system software. Intended audience: computer science majors and others interested in studying the software and hardware components of computer systems.
CS 2102. OBJECT-ORIENTED DESIGN CONCEPTS
This course introduces students to an object-oriented model of programming. Building from the design methodology covered in CS 1101/CS 1102, this course shows how programs can be decomposed into classes and objects. By emphasizing design, this course shows how to implement small defect-free programs and evaluate design decisions to select an optimal design under specific assumptions. Topics include inheritance, exceptions, interface, design by contract, basic design patterns, and reuse. Students will be expected to design, implement, and debug object-oriented programs composed of multiple classes and over a variety of data structures. Intended audience: students with prior program design experience who desire to learn object-oriented design.
CS 2303. SYSTEMS PROGRAMMING CONCEPTS.
This course introduces students to a model of programming where the programming language exposes details of how the hardware stores and executes software. Building from the design concepts covered in CS 2102, this course covers manual memory management, pointers, the machine stack, and input/output mechanisms. The course will involve large-scale programming exercises and will be designed to help students confront issues of safe programming with system-level constructs. The course will cover several tools that assist programmers in these tasks. Students will be expected to design, implement, and debug programs in C++ and C. Intended audience: computer science and computer engineering students with substantial prior object-oriented programming experience.
CS 3013. OPERATING SYSTEMS.
This course provides the student with an understanding of the basic components of a general-purpose operating system. Topics include processes, process management, synchronization, input/ output devices and their programming, interrupts, memory management, resource allocation, and an introduction to file systems. Students will be expected to design and implement a large piece of system software. Intended audience: computer science majors and others interested in studying the software and hardware components of computer systems.