Computer Science consists of the design of software and the implementation of software designs. It incorporates study in Mathematica and Physics to enable the student to design models of systems that often cannot be directly measured or observed. This enables the creation of algorithms; an unambiguous specification of how to solve a class of problems. This skill is combined with instruction in implementation (coding), analysis of software designs, and use of a strongly typed programming language to create programs. These two distinct skill sets form the basis for continued study in Computer Science, Computer Engineering, or entry into the technology workforce as a software developer.
Software Architectures and Algorithms is the second transfer level course in the Computer Science major. Where the first course addressed control structures, objects, fundamentals of program design, and fundamentals implementation, this course introduces you to the existing Body of Knowledge (BOK) in data structures, algorithms, debugging, testing, and integration of your code with existing software frameworks. This combination of well understood data structures and well tested algorithms enables you to focus on placing the software you create into an architecture that supports correct operation and meets performance goals.
Introduction to computer programming: Algorithm design through use of control structures, flow charting, and debugging; elements of good programming style; introduction to Object Oriented Programming (OOP) through the design and implementation of objects that interact using well-defined interfaces to solve a problem.
Design and development of large programs: Systematic data abstraction,
strongly typed data and data structures, object declaration models,
inheritance and polymorphism, information hiding, managed frameworks and
libraries such as the Standard Template Library (STL), object life
cycles and garbage collection, recursion, well-defined algorithms,
collections and iterator abstraction, strategies for code re-use,
testing, UML and software engineering principles.
- Teacher: Courtney Brown