Core Courses
Seven courses (6 CPS courses and 1 MAT course), form the requirements of the Associates of Science Degree in Business Technology.
CPS 1120 Introduction to Computer Science This course will provide the student with the basics of computer programming and organization in the C language. The student will learn by hands-on development of computer programs in a 3rd generation programming language using an editor, compiler, and debugger. The student will learn the mapping between binary mathematics and computing, along with an introduction to basic design principles, data types, operators, control flow, functions, I/O, Arrays, Strings, file handling, pointers, memory allocation, command line arguments, and recursion. Specific Skills to be measured:
- Utilization of a 3rd generation programming language with built-in data types, statement, functions, modules, and methods of program flow control
- Utilization of the editor, compiler and debugger to develop computer programs
- Fundamental computer navigation skills on the command line
- Demonstration of introductory modular design
- Competence with binary, hexadecimal and octal numbering schemes
- Understanding of introductory computer organization
CPS 1122 Computer Science I This course will provide the student with an opportunity to reinforce fundamental programming skills by learning a second, 4th generation, computing language that will be the basis for further undergraduate study. The student will learn compilation on multiple platforms, more detailed debugging skills, and focus on the development of architectural artifacts and program documentation. The basic concepts of data structures and mapping to objects will also be introduced, while requiring the student to demonstrate more in-depth structured programming skills Specific Skills to be measured:
- Competence in a 4th generation programming language with built-in data types, statement, functions, modules, and methods of program flow control
- Mastery of an programming editor, compiler and debugger
- Computer navigation skills on the command line with batch programming and compiling techniques
- Demonstration of modular design techniques
- Introduction to Data Structures represented by Object Oriented types
- Understanding of introductory computer organization
CPS 2111 Computer Science II: Data Structures This course continues the development of a structured approach to problem solving, and uses a 4th generation language as the tool to demonstrate proficiency. Continued expansion of the student’s skills in this 4th generation language are pursued throughout the course. Abstract data types that are included in most 4th generation languages are implemented in this course, and an overview of how to evaluate algorithm implementations is performed. The list, binary tree, stack, queue, hash and graph are implemented, along with several search and sorting approaches. Specific Skills to be measured:
- Demonstration of the concepts of algorithms, NP-Completeness, big-O notation, and Determinism
- Demonstration of programming debugging techniques
- Demonstration of lists, stacks, queues, trees, and hashes
- Demonstration of basic software engineering documentation skills
- Demonstration of generic searching and sorting techniques
- Demonstration of parsing and pattern matching
CPS 2171 Introduction to Computer Architecture This course provides the student with a basic understanding of digital circuit design (gates, adders, flip flops, and combinational circuits). Based on these foundational hardware concepts, major hardware concepts for common computers are introduced, to include processor design, timing, memory organization, and input / output controllers. The student will then be introduced to today’s more advanced architectures and future disruptive architecture proposals. Specific Skills to be measured:
- Demonstrates the fundamental concepts of Boolean logic
- Demonstrates an understanding of synchronous sequential circuits
- Demonstrates an understanding of various configurations of memory organization
- Demonstrates an understanding of basic computer processor design
- Demonstrates an understanding of basic computer input / output design
- Demonstrates an understanding of more advanced architectures, especially future computing architectures
CPS 2212 Object Oriented Programming This course provides the student with a thorough introduction of software engineering methodologies, and documentation methods such as the Unified Modeling Language. Object Oriented design is demonstrated through the implementation of several foundational design patterns, and the student is introduced to object oriented techniques of graphical user interfaces, including web interfaces. Specific Skills to be measured:
- Detailed introduction to software engineering lifecycles, such as Waterfall, Sprint, Agile, and XP
- Demonstration of Unified Modeling Language competence
- Demonstration of Design Pattern understanding
- Demonstration of Design Pattern mastery through 4th generation language implementation
- Demonstration of Object Oriented techniques in graphical user interfaces
- Demonstration of Object Oriented techniques in basic web interfaces
CPS 3602 Introduction to Operating Systems This course provides an introduction to computer operating systems by providing the definition of an operating system, historical implementations of O/Ss, and discusses the relationship between system software to hardware. Topics of study include process management, memory management, processor management, concurrency, and synchronization. An overview of distributed operating systems will be provided as time permits. The student will be expected to utilize a 3rd generation language to demonstrate operating system concepts in homework and laboratories. Specific Skills to be measured:
- Demonstration of an understanding of operating system definition and alignment with system software and hardware, including a historical view of influential operating systems
- Demonstration of process management concepts, including inter-process communication, threading, scheduling and deadlock management
- Demonstration of memory management concepts, including swapping, paging, segmentation, virtual memory, thrashing, and memory-mapped files
- Demonstration of storage management concepts, including free-space management, networked file systems, disk structure, disk scheduling, swap-space management and RAID architectures
- Demonstration of protection and security topics, including access control, revocation, and differing forms of protection schemes
- Demonstration of introductory distributed system concepts
MAT 2301 Discrete Mathematics A study of discrete mathematical concepts including logic, set theory, functions and relations, matrices, counting techniques, proofs, Boolean Algebra and computational modeling.