Programming Structures and Methods Courses at Cogswell College

Software Engineering Structures and Methods Courses

DATA STRUCTURES AND ALGORITHMS

Data Structures: Stacks. Queues. Linked lists. Circular linked lists. Double linked lists. Circular double linked lists. Binary search trees. Searching and sorting algorithms. Introduction to graph algorithms. Huffman codes, AVL trees. Hashing. B-trees. Students practice concepts of structured programming and discrete mathematical concepts in data structures and analysis of algorithms.

COMPILER DESIGN

Lexical Analysis. Parsing techniques. Semantics analysis. Run time environments. Introduction to code generation and optimization. Students apply discrete mathematical concepts and data structures in complier theory.

COMPUTER ARCHITECTURE

Introduction to generic computer architecture. The Processing Units; ALU, CPU. Instruction cycle behavior and sequencer. Microprogrammed Control. Main Memory. Memory Management. I/O subsystem, disk controller. A complete simple computer design. Computer Arithmetic Algorithms. Principles of pipelining. Discuss CISC and RISC Architectures.

EMBEDDED SOFTWARE SYSTEMS

Technologies used in the design and implementation of embedded systmes. Introduction to software tools such as compilers, schedulers, code generators, and system-level design tools. Introduction to computer organization: CPU, I/O, Memory. INTEL/MIPS Assembly language. Linking C and Assembly Language.

INTRODUCTION TO USER ANALYTICS

This class will cover how to understand target customers and users by collecting and analyzing consumer data from social media and other sources. Emphasis will be placed on using appropriate tools, along with developing attitudinal segmentation and user personas as well as testing concepts with consumers. Students will survey methods such as web scraping, text analytics and cluster analysis as they relate to understanding consumer behavior.

CONCURRENT PROGRAMMING

Threads. Semaphores. Monitors. Message passing. Rendezvous. RMI. Remote procedure calls, distributed or network programming, and parallel processing. This course emphasizes on thread implementations.

SOFTWARE ENGINEERING METHODS AND PROJECT 1

The software life cycle. Software development methods top-down and bottom-up. Reusability and portability. Documentation development: analysis, specification, design, implementation, testing, operational documents. Inspection walk-through and design review. Students practice project management through software life cycle. Object oriented analysis and design. Managing complexity with abstraction.

SOFTWARE ENGINEERING METHODS AND PROJECTS 2

Case Studies of Object Oriented Analysis and Design. Design Patterns. Component architecture. Component frameworks. Students apply object oriented principles in a large project.

GUI AND GRAPHICS PROGRAMMING

Principles of user interface design. Input elements: keyboard, mouse. Memory management. Icons. Menus. Dialog boxes. Graphics device interface. OpenGL. Transformations. Bresenham's Lines and Circles Algorithms. Ellipses. Hidden line Algorithms. Clipping Algorithms. Spline curves. Bezier curve. B-splines surface and Bezier surfaces. Hidden lines and surfaces algorithms. Hidden line and surface removal methods. Students learn GUI and practice concrete mathematics concepts in computer graphics.