This course will introduce students to the field of computer science and …
This course will introduce students to the field of computer science and the fundamentals of computer programming. No prior programming experience is required. Upon successful completion of this course, students will be able to: Demonstrate an understanding of the history of computing as well as fundamental hardware and software concepts; Demonstrate an understanding of the programming life cycle; Explain how the JVM translates Java code into executable code; Demonstrate an understanding of Object-Oriented Programming concepts; Demonstrate an understanding of basic Java concepts by writing simple programs; Demonstrate an understanding of logical and relational operators as well as control structures; Demonstrate proficiency in basic Java I/O techniques by writing small programs. (Computer Science 101; See also: Mathematics 302)
This course is a continuation of the first-semester course titled Introduction to …
This course is a continuation of the first-semester course titled Introduction to Computer Science I. It will introduce the student to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. The student will begin with a comparison between Java--the programming language utilized last semester--and C++, another popular, industry-standard programming language. The student will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what they have learned learned last semester and familiarizing themselves with some more advanced programming concepts. The remaining course units will be devoted to various advanced topics, including the Standard Template Library, Exceptions, Recursion, Searching and Sorting, and Template Classes. By the end of the class, the student will have a solid understanding of Java and C++ programming, as well as a familiarity with the major issues that programmers routinely address in a professional setting. Upon successful completion of this course, the student will be able to: Demonstrate an understanding of the concepts of Java and C++ and how they are used in Object-Oriented Programming; Demonstrate an understanding of the history and development of Object-Oriented Programming; Explain the importance of the C++ Standard Template Library and how basic components are used; Demonstrate a basic understanding of the importance of run-time analysis in programming; Demonstrate an understanding of important sorting and search routines in programming; Demonstrate an understanding of the generic usage of templates in programming for C++ and Java; Compare and contrast the features of Java and C++. (Computer Science 102; See also: Mathematics 303)
This course presents software engineering concepts and principles in parallel with the …
This course presents software engineering concepts and principles in parallel with the software development life cycle. Topics addressed include the Software Development Life Cycle (SDLC), software modeling using Unified Modeling Language (UML), major phases of SDLC (Software Requirements and Analysis, Software Design, and Software Testing), and project management. Upon successful completion of this course, the student will be able to: demonstrate mastery of software engineering knowledge and skills, and professional issues necessary to practice software engineering; discuss principles of software engineering; describe software development life cycle models; learn principles of software modeling through UML as a modeling language; identify major activities and key deliverables in a software development life cycle during software requirements and analysis, software design, and software testing; apply the object-oriented methodology in software engineering to create UML artifacts for software analysis and requirements, software design, and software testing; apply project management concepts in a software engineering environment to manage project, people, and product; participate as an individual and as part of a team to deliver quality software systems. This free course may be completed online at any time. (Computer Science 302)
This course focuses on the fundamentals of information security that are used …
This course focuses on the fundamentals of information security that are used in protecting both the information present in computer storage as well as information traveling over computer networks. Upon successful completion of this course, the student will be able to: explain the challenges and scope of information security; explain such basic security concepts as confidentiality, integrity, and availability, which are used frequently in the field of information security; explain the importance of cryptographic algorithms used in information security in the context of the overall information technology (IT) industry; identify and explain symmetric algorithms for encryption-based security of information; identify and explain public key-based asymmetric algorithms for encryption-based security of information; describe the access control mechanism used for user authentication and authorization; describe Secure Sockets Layer (SSL) as a common solution enabling security of many applications, including all Internet-based commerce; describe securing Internet Protocol (IP) communications by using Internet Protocol Security (IPSec); explain the importance of physical security and discuss ways to improve physical security of an enterprise; explain the use of such security tools as firewalls and intrusion prevention systems; explain malicious software issues, such as those brought forth by software-based viruses and worms; explain common software security issues, such as buffer overflow; describe the basic process of risk assessment in the context of overall IT security management. (Computer Science 406)
This course provides a general overview of databases, including topics such as …
This course provides a general overview of databases, including topics such as database history, modern database systems, the different models used to design a database, and Structured Query Language (SQL), which is the standard language used to access and manipulate databases. Upon successful completion of this course, the student will be able to: compare and contrast the database approach and the file system approach; explain what a database management system is as well as the various components; identify the various people involved in database management systems; explain the historical background of database management systems; compare the various database models; describe the functions of a database management system; explain the three-schema database architecture; describe what tables, indexes, and views are as well as discuss the differences among them; explain the entity-relationship model; develop an entity-relationship model based on user requirements; describe the relational database model; explain the process of normalization; convert an entity-relationship diagram to a set of normalized relations; explain referential integrity; identify how relational algebra is used to construct queries; describe and use data definition commands; describe and use data manipulation commands; explain how to join tables together for queries. (Computer Science 403)
Computability Theory deals with one of the most fundamental questions in computer …
Computability Theory deals with one of the most fundamental questions in computer science: What is computing and what are the limits of what a computer can compute? Or, formulated differently: "What kind of problems can be algorithmically solved?" During the course this question will be studied. Firstly, the notion of algorithm or computing will be made precise by using the mathematical model of a Turing machine. Secondly, it will be shown that basic issues in computer science, like "Given a program P does it halt for any input x?" or "Given two program P and Q, are they equivalent?" cannot be solved by any Turing machine. This shows that there exist problems that are impossible to solve with a computer, the so-called "undecidable problems".
The purpose of this course is to cultivate an understanding of modern …
The purpose of this course is to cultivate an understanding of modern computing technology through an in-depth study of the interface between hardware and software. The student will study the history of modern computing technology before learning about modern computer architecture, then the recent switch from sequential processing to parallel processing. Upon completion of this course, students will be able to: identify important advances that have taken place in the history of modern computing and discuss some of the latest trends in computing industry; explain how programs written in high-level programming language, such as C or Java, can be translated into the language of the hardware; describe the interface between hardware and software and explain how software instructs hardware to accomplish desired functions; demonstrate an understanding of the process of carrying out sequential logic design; demonstrate an understanding of computer arithmetic hardware blocks and floating point representation; explain how a hardware programming language is executed on hardware and how hardware and software design affect performance; demonstrate an understanding of the factors that determine the performance of a program; demonstrate an understanding of the techniques that designers use to improve the performance of programs running on hardware; demonstrate an understanding of the importance of memory hierarchy in computer design and explain how memory design impacts overall hardware performance; demonstrate an understanding of storage and I/O devices, their performance measurement, and redundant array of inexpensive disks (more commonly referred to by the acronym RAID) technology; list the reasons for and the consequences of the recent switch from sequential processing to parallel processing in hardware manufacture and explain the basics of parallel programming. (Computer Science 301)
The course presents an overview of the history and structure of modern …
The course presents an overview of the history and structure of modern operating systems, analyzing in detail each of the major components of an operating system, and exploring more advanced topics in the field, such as security concerns. Upon successful completion of this course, the student will be able to: explain what an operating system does and how it is used; identify the various components of a computer system and how they interact with an operating system; describe the differences between a 32-bit and 64-bit operating system; explain the different types of operating systems and the major ones in use today; discuss the importance and use of threads and processes in an operating system; describe concurrency; explain the difference between a thread and a process; discuss context switching and how it is used in an operating system; describe synchronization; explain a race condition; discuss interprocess communication; describe how semaphores can be used in an operating system; discuss three of the classic synchronization problems; explain the alternatives to semaphores; discuss CPU scheduling and its relevance to operating systems; explain the general goals of CPU scheduling; describe the differences between pre-emptive and non-preemptive scheduling; discuss four CPU scheduling algorithms; explain what deadlock is in relation to operating systems; discuss deadlock prevention, avoidance, and their differences; describe deadlock detection and recovery; explain the memory hierarchy; discuss how the operating system interacts with memory; describe how virtual memory works; discuss three algorithms for dynamic memory allocation; explain methods of memory access; describe paging and page replacement algorithms; describe a file system and its purpose; discuss various file allocation methods; explain disk allocation and associated algorithms; discuss types of security threats; describe the various types of malware; explain basic security techniques; explain basic networking principles; discuss protocols and how they are used; explain reference models, particularly TCP/IP and OSI. (Computer Science 401)
Management Information Systems (MIS) is a formal discipline within business education that …
Management Information Systems (MIS) is a formal discipline within business education that bridges the gap between computer science and the well-known business disciplines of finance, marketing, and management.
Detailed introduction to the basic hardware and software, architectural components for computer …
Detailed introduction to the basic hardware and software, architectural components for computer communications in local area networks. The components that are focused upon include understanding the basics of computer networks, switching, routing, protocols and security.
In this course, the student will learn the theoretical and practical aspects …
In this course, the student will learn the theoretical and practical aspects of algorithms and Data Structures. The student will also learn to implement Data Structures and algorithms in C/C++, analyze those algorithms, and consider both their worst-case complexity and practical efficiency. Upon successful completion of this course, students will be able to: Identify elementary Data Structures using C/C++ programming languages; Analyze the importance and use of Abstract Data Types (ADTs); Design and implement elementary Data Structures such as arrays, trees, Stacks, Queues, and Hash Tables; Explain best, average, and worst-cases of an algorithm using Big-O notation; Describe the differences between the use of sequential and binary search algorithms. (Computer Science 201)
The student will learn the mechanics of editing and compiling a simple …
The student will learn the mechanics of editing and compiling a simple program written in C++ beginning with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class. Next, the student will cover the basics of object-oriented programming: classes, inheritance, templates, exceptions, and file manipulation. The student will then review function and class templates and the classes that perform output and input of characters to/from files. This course will also cover the topics of namespaces, exception handling, and preprocessor directives. In the last part of the course, the student will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees. Upon successful completion of this course, students will be able to: Compile and execute code written in C++ language; Work with the elementary data types and conditional and iteration structures; Define and use functions, pointers, arrays, struct, unions, and enumerations; Write C++ using principles of object-oriented programming; Write templates and manipulate the files; Code and use namespaces, exceptions, and preprocessor instructions; Write a code that represents linked lists and binary trees; Translate simple word problems into C++ language. (Computer Science 107)
This course describes discrete mathematics, which involves processes that consist of sequences …
This course describes discrete mathematics, which involves processes that consist of sequences of individual steps (as compared to calculus, which describes processes that change in a continuous manner). The principal topics presented in this course are logic and proof, induction and recursion, discrete probability, and finite state machines. Upon successful completion of this course, the student will be able to: Create compound statements, expressed in mathematical symbols or in English, to determine the truth or falseness of compound statements and to use the rules of inference to prove a conclusion statement from hypothesis statements by applying the rules of propositional and predicate calculus logic; Prove mathematical statements involving numbers by applying various proof methods, which are based on the rules of inference from logic; Prove the validity of sequences and series and the correctness or repeated processes by applying mathematical induction; Define and identify the terms, rules, and properties of set theory and use these as tools to support problem solving and reasoning in applications of logic, functions, number theory, sequences, counting, probability, trees and graphs, and automata; Calculate probabilities and apply counting rules; Solve recursive problems by applying knowledge of recursive sequences; Create graphs and trees to represent and help prove or disprove statements, make decisions or select from alternative choices to calculate probabilities, to document derivation steps, or to solve problems; Construct and analyze finite state automata, formal languages, and regular expressions. (Computer Science 202)
Web Accessibility for Developers is a technical book aimed primarily at programmers. …
Web Accessibility for Developers is a technical book aimed primarily at programmers. Learn how to develop accessible interactivity on the Web and gain expertise using WAI-ARIA, a W3C specification that enables optimal use of assistive technologies, like screen readers, when navigating the Web.
This complete set of course materials contains all files used for in-class …
This complete set of course materials contains all files used for in-class activities and labs, a full set of lecture slides, project assignments, and a test bank. Topics covered include:
HTML Basics CSS Images Page Layout Tables Forms Multimedia JavaScript
This open course for Web Technologies and Application Development was created through …
This open course for Web Technologies and Application Development was created through a Round Ten Affordable Learning Georgia Mini-Grant for Ancillary Materials Creation.
The course includes original study guides, lectures, and examples within these topics:
HTML CSS JavaScript Dynamic HTML HTML Forms PHP User Experience Web App Security Web 2.0 Mobile Web
The website for the course also features student websites created during the KSU course with Dr. Zheng.
TCP/IP Level Attacks Port Scanning DDoS Footprinting and Social Engineering Enumeration Programming for Security Professionals Operating System Vulnerabilities Embedded System Security Hacking Web Servers Hacking Wireless Networks Cryptography Protecting Networks with Security Devices
This course covers descriptive statistics, the foundation of statistics, probability and random …
This course covers descriptive statistics, the foundation of statistics, probability and random distributions, and the relationships between various characteristics of data. Upon successful completion of the course, the student will be able to: Define the meaning of descriptive statistics and statistical inference; Distinguish between a population and a sample; Explain the purpose of measures of location, variability, and skewness; Calculate probabilities; Explain the difference between how probabilities are computed for discrete and continuous random variables; Recognize and understand discrete probability distribution functions, in general; Identify confidence intervals for means and proportions; Explain how the central limit theorem applies in inference; Calculate and interpret confidence intervals for one population average and one population proportion; Differentiate between Type I and Type II errors; Conduct and interpret hypothesis tests; Compute regression equations for data; Use regression equations to make predictions; Conduct and interpret ANOVA (Analysis of Variance). (Mathematics 121; See also: Biology 104, Computer Science 106, Economics 104, Psychology 201)
The idea behind topological systems is simple: if there exists a quantity, …
The idea behind topological systems is simple: if there exists a quantity, which cannot change in an insulating system where all the particles are localized, then the system must become conducting and obtain propagating particles when the quantity (called a “topological invariant”) finally changes.
The practical applications of this principle are quite profound, and already within the last eight years they have lead to prediction and discovery of a vast range of new materials with exotic properties that were considered to be impossible before. What is the focus of this course?
Applications of topology in condensed matter based on bulk-edge correspondence. Special attention to the most active research topics in topological condensed matter: theory of topological insulators and Majorana fermions, topological classification of “grand ten” symmetry classes, and topological quantum computation Extensions of topology to further areas of condensed matter, such as photonic and mechanical systems, topological quantum walks, topology in fractionalized systems, driven or dissipative systems.
No restrictions on your remixing, redistributing, or making derivative works. Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make derivative works.
Most restrictive license type. Prohibits most uses, sharing, and any changes.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based educators, or other custom arrangements. Go to the resource provider to see their individual restrictions.