=====ASM===== Upon completion of this course, students will be able to demonstrate: * an understanding of the concepts of assembly * understanding the impact of number systems * familiarity with how assembly impacts programming * experience implementing solutions in assembly * familiarity with the role of the C library * experience making system calls in assembly * familiarity with the organization of a computer system * experience using registers, stacks, and branches =====COMPESS===== Upon completion of this course, students will be able to: * Identify different types of hardware and discuss what role that hardware plays * List milestones of computer history * Perform binary and hexadecimal conversions * Perform addition and subtraction in binary and hexadecimal * Explain how input, output, and storage devices work, and be able to compare and contrast different types of these devices * List the parts of the CPU and what factors affect the CPU's performance * Explain how the internet works, and identify the hardware and software required for connectivity and web publishing * Identify the difference between application and system software, and explain how they interact * Identify all the threats to your computer and explain ways to safeguard your computer * Explain LAN, MAN, WAN in relation to topologies, communications transmissions, protocols, and communication media * Identify ethical problems in computing * Understand the basics of program development and describe programming language paradigms * Understand logical and physical file management and more advanced file maintenance techniques (DBMS) * Identify and explain the parts of the system development lifecycle * Explore jobs in IT and understand the responsibilities that are associated with these jobs =====CPROG===== Upon completion of this course, students will be able to: * write and compile code that utilizes programming constructs * use pointers and variables to discover the indirect properties of data storage * comprehend the basics of memory management, data representation and storage * identify and label various data types as scalar vs. composite * distinguish and explain difference between homogeneous and heterogeneous composite data types * break down and separate code into functions and illustrate the use of parameter passing * justify the use of various programming constructs within code solutions * discover the standard libraries and use libraries in solving problems =====DATA===== Upon completion of this course, students will be able to: * Discuss the representation and use of primitive data types and built-in data structures * Describe how the data structures are allocated and used in memory * Describe common applications for each data structure described in class * Implement the user-defined data structures in a high-level language * Compare alternative implementations of data structures with respect to performance * Write programs that use the following data structures: linked lists, stacks, queues, binary trees, and hash tables * Compare and contrast the costs and benefits of dynamic and static data structure implementations * Choose the appropriate data structure for solving a given problem =====DATACOMM===== Upon completion of this course, students will be able to demonstrate: * better understand network I/O for efficient data communication * utilize capabilities built into the operating system in programs * write programs that communicate on the network * use pipes and sockets to establish communication and share data with other processes * demonstrate knowledge of concurrency =====DISCRETE===== Upon completion of this course, students will be able to demonstrate: * application of concepts * understand the process behind various mathematical concepts * ability to convey mathematical and computer science concepts * critical thinking abilities * increased understanding of discipline concepts * experience implementing concepts on the computer * ability to solve problems creatively =====HPC0===== During the process of the course, the student will be able to: * understand the impact of HPC in the field of computing * value interdisciplinary interaction in problem solving * apply effective visualization techniques to view data * understand key concepts of a distributed system * recognize and relate how data may be generated * compare the tradeoffs & advantages in concurrency * identify processing considerations * demonstrate problem solving capabilities =====HPC1===== Upon completion of this course, students will be able to demonstrate: * demonstrate concept comprehension * information sharing through documentation * understanding the nature of an HPC environment * apply troubleshooting skills * gain experience with real world system issues * demonstrate knowledge of Linux & Open Source * demonstrate awareness of networking concepts * perform system and network administration * demonstrate awareness of security issues * demonstrate scripting skills to automate tasks * collaborative work on a project or task =====HPC2===== Upon completion of this course, students will be able to demonstrate: * demonstrate continued concept comprehension * information sharing through documentation * understanding the nature of an HPC environment * apply improved troubleshooting skills * gain experience with real world system issues * demonstrate knowledge of Linux & Open Source * demonstrate awareness of networking concepts * perform system and network administration * demonstrate awareness of security issues * demonstrate scripting skills to automate tasks * collaborative work on a project or task =====SYSNET===== Upon completion of this course, students will be able to demonstrate: * understanding of concepts to mix them together * effective use of communication capabilities * capability of contemplating/measuring performance * proficiency with tools to accomplish tasks * ability to suggest troubleshooting strategies * application of changes as a result of testing * problem solving activities * ability to document processes and tasks =====SYSPROG===== Upon completion of this course, students will be able to: * better understand file I/O for efficient data processing * utilize capabilities built into the operating system * write programs that interact with and spawn processes * use pipes and sockets to communicate and share data * demonstrate knowledge of concurrency * design programs that handle signals * explore efficient solutions to data- and processing- intensive problems =====UNIX===== Upon completion of this course, students will be able to demonstrate: * familiarity with the structure of UNIX systems * the ability to accomplish/automate tasks * exposure to command-line tools and utilities * experience the connection between UNIX and C * understanding of the UNIX philosophy * exposure to Open Source concepts and ideals * familiarity with important system concepts * exposure to computer security * understanding and use of pattern matching * problem solving activities