- Computer organization and assembly language programming, machine language, arithmetic and logical operations, indexing and indirect addressing, subroutines, pipelining, memory hierarchy, input/output devices, buses, control units, secondary storage techniques, multi-core architectures, performance analysis, parallel architectures.
- An introduction to the fundamental principles of computer science, with emphasis on problem solving techniques, data and procedural abstraction, and use of algorithmic thinking to understand, decompose and translate problem descriptions into sound, machine-executable solutions. Fundamentals of computer functions, data types, control structures and program design considerations, including object-oriented concepts such as modularity, encapsulation and class.
- Covers topics essential to the design and development of larger software projects. Topics include requirements, design, code construction, software evolution, testing, and project management. Students typically work in teams on a medium-sized software project. Issues of social responsibility, intellectual property, copyright, and assessing the risks in computer systems are discussed.
- Database Systems is the study of how large amounts of data are organized, how a database is designed, how the data is queried, entered and manipulated. We'll do several projects and learn PHP and SQL (using MySQL) as well as learn a ton about relational database theory.
- Introduction to computers and an overview of computer science for students with little or no background in computer science. Topics include history and future of computing, computer hardware, information storage and retrieval, operating systems, networking and the World-Wide-Web, and an introduction to structured problem-solving in a high-level programming language.
