=====COMPORG===== 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 =====GAME===== Upon completion of this course, students will be able to: * Demonstrate knowledge of game design principles * Specify and implement the mechanics of player interactions * Apply programming techniques to enable device interfacing * Apply fundamental graphics techniques * Demonstrate knowledge of game production elements including documentation, group dynamics, and progress verification * Collaborate to develop a playable game * Express practical versus ideal considerations in game design =====HPC0===== During the process of the course, the student will be able to: * understand the impact of computing in problem solving * value interdisciplinary knowledge in problem solving * apply effective visualization techniques to view data * troubleshoot and diagnose problems * recognize and relate how data may be generated * compare the tradeoffs & advantages in concurrency * identify processing considerations * document tasks and solutions =====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 interconnected computing 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 * understand and utilize logs to aid in problem solving and reporting =====PHP===== Upon completion of this course, students will be able to: * demonstrate application of PHP syntax, variable handling, and control structures * apply programming techniques to aid in implementing solutions * utilize problem solving techniques * deploy php-powered pages on a hosted web server * employ related common-sense security considerations to protect websites * utilize parameterized queries, validation, and sanitization techniques * track application state with cookies and sessions * develop a web application to Select, Insert, and Update data in a database =====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 * utilize collaboration of resources to solve 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 * exposure to computer security * understanding and use of pattern matching * problem solving activities * application of shell scripting to perform tasks