Online courses directory (363)
This course focuses on the fundamentals of computer algorithms, emphasizing methods useful in practice. We look into the algorithm analysis as a way to understand behavior of computer programs as a function of its input size. Using the big-O notation, we classify algorithms by their efficiency. We look into basic algorithm strategies and approaches to problem solving. Some of these approaches include the divide and conquer method, dynamic programming, and greedy programming paradigms. Sorting and searching algorithms are discussed in detail as they form part of a solution to a large number of problems solved using computers. We also provide an introduction to the graph theory and graph algorithms as they are also used in many computer-based applications today. We conclude the course with a look into a special class of problems called the NP-complete problems.
Because we have compiler programs, software developers often take the process of compilation for granted. However, as a software developer, you should cultivate a solid understanding of how compilers work in order to develop the strongest code possible and fully understand its underlying language. In addition, the compilation process comprises techniques that are applicable to the development of many software applications. As such, this course will introduce you to the compilation process, present foundational topics on formal languages and outline each of the essential compiler steps: scanning, parsing, translation and semantic analysis, code generation, and optimization. By the end of the class, you will have a strong understanding of what it means to compile a program, what happens in the process of translating a higher-level language into a lower-level language, and the applicability of the steps of the compilation process to other applications.
The World Wide Web (WWW) has become the primary means by which we conduct searches and perform billing transactionsevents that can only occur with the support of specific applications. The purpose of this course is to introduce you to the design and development of such applications. This course will expose you to the basic fundamentals of the Internet and Web protocols, the different architectures that Web-related applications use, and the programming languages that enable the development of Web applications, placing particular emphasis on JavaScript, HTML, XML, AJAX, and Java Server Pages (JSP). We will also cover matters of security and reliability in the development of web applications via the use of transport encryption and authentication.
This course will introduce you to modern operating systems. We will focus on UNIX-based operating systems, though we will also learn about alternative operating systems, including Windows. The course will begin with an overview of the structure of modern operating systems. Over the course of the subsequent units, we will discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and explore more advanced topics in the field, including memory management and file input/output. The class will conclude with a discussion of various system-related security issues.
The Internet has become one of the most important components of our life. We browse the Web, check e-mails, make VoIP phone calls, and have video conferences via computers. All of these applications are made possible by networking computers together, and this complex network of computers is usually referred to as the Internet. This course is designed to give you a clear understanding of how networks, from in-home local area networks, or LANS, to the massive and global Internet, are built and how they allow us to use computers to share information and communicate with one another. Unit 1 introduces you to an explanation of what computer networks are as well as to some basic terminology fundamental to understanding computer networks. You will also familiarize yourself with the concept of layers, which compose the framework around which networks are built. Next, Unit 2 explains the concept of protocols. A computer communication (or network) protocol defines rules and conventions for communication between netwo…
Though we may not recognize them in our everyday activities, databases are everywhere. They are hidden behind your online banking profile, airline reservation systems, medical records, and even employment records. This course will provide students with a general overview of databases, introducing you to 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. Many of the principles of database systems carry to other areas in computer science, especially operating systems. Databases are often thought of as one of the core computer science topics, since many other areas in the discipline have been derived from this area.
This course is an upper division computer science course that studies the design of programming languages. While most of the industry uses either procedural or object-oriented programming languages, there are entire families of other languages with certain strengths and weaknesses that make them attractive to a variety of problem domains. It is important to know about these less well-known yet powerful languages if you find yourself working in an area that could utilize their strengths. In this course, we will discuss the entire programming language family, starting with an introduction to programming languages in general and a discussion of the features and functionality that make up the modern programming language. From there, each unit will discuss a different family of programming languages, including Imperative, Object-Oriented, Functional, Scripting, and, Logical. For each language, you will learn about its computational model, syntax, semantics, and pragmatic considerations that shape the langua…
CS405 introduces the field of artificial intelligence (AI). Materials on AI programming, logic, search, game playing, machine learning, natural language understanding, and robotics introduce the student to AI methods, tools, and techniques, their application to computational problems, and their contribution to understanding intelligence. Because each of these topics could be a course unto itself, the material is introductory and not complete. Each unit presents the problem a topic addresses, current progress, and approaches to the problem. The readings include and cite more materials that are referenced in this course, and students are encouraged to use these resources to pursue topics of interest after this course.
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. Interest in information security has been spurred by the pervasive use of computer-based applications such as information systems, databases, and the Internet. Information security has also emerged as a national goal in the United States and in other countries with national defense and homeland security implications. Information security is enabled through securing data, computers, and networks. In this course, we will look into such topics as fundamentals of information security, computer security technology and principles, access control mechanisms, cryptography algorithms, software security, physical security, and security management and risk assessment. By the end of this course, you will be able to describe major information security issues and trends, and advise an individual seeking to protect his or her dat…
User dependency on the Internet increases every day; nowadays, everyday tasks like paying bills, communicating with others, and applying for jobs are all routinely carried out via the Internet. While the Internet represents a huge network, it is meaningless without the applications that it supports. These applications enable user interaction and facilitate everyday activities. In this course, we will learn about the design and implementation of network-based applications, focusing on Object-Oriented Programming and programming techniques both at the application layer and the transport layer of the TCP/IP protocol stack. Additional concepts covered include text transport (moving text from one computer to another over the network), data transport, object transport, remote function calls, and, finally, class transport. You will approach these concepts from an Object-Oriented point of view, learning to implement design patterns in your code in order to ensure software reusability (a highly desirable fea…
This course will present advanced topics in Artificial Intelligence (AI). We will begin by defining the term “software agent” and discussing how software agents differ from programs in general. We will then take a look at those problems in the field of AI that tend to receive the most attention. Different researchers approach these problems differently. In this course, we will focus on how to build and search graph data structures needed to create software agents, an approach that you will find useful for solving many problems in AI. We will also learn to “break down” larger problems into a number of more specific, manageable sub-problems. In the latter portion of this course, we will review the study of logic and conceptualize the differences between propositional logic, first-order logic, fuzzy logic, and default logic. After learning about statistical tools commonly used in AI and about the basic symbol system used to represent knowledge, we will focus on artificial neural network and…
Cryptography is essentially the science of writing in secret code. In data and telecommunications, cryptography has specific security requirements, such as authentication, privacy or confidentiality, integrity, and non-repudiation. To meet these security requirements, we employ secret key (or symmetric) cryptography, public-key (or asymmetric) cryptography, and hash functions. In the first part of the course, we will review a number of different ciphers that were used before World War II. These ciphers would be easily broken nowadays, since cryptography has advanced quickly over the past couple of decades with the advent of modern computers. We will cover block cipher algorithms and describe the advanced encryption standard for a symmetric-key encryption adopted by the U.S. government. We will also learn about the important MD5 and SHA-1 hash functions as well as the message authentication code. This course will focus on public key cryptography, which is best exemplified by the RSA algorithm (na…
While CS403: Introduction to Modern Database Systems [1] covered many of the core concepts behind database management systems, there are many other considerations that should be addressed if you intend to pursue a career in this field. This course will expand upon what you learned about SQL in CS403 and introduce various other advanced topics, including query optimization, concurrency, data warehouses, object-oriented extensions, and XML. While CS403 introduced the basics of database management systems, the additional topics covered in this course will help you become more proficient in writing queries and will expand your knowledge base so that you have a better understanding of the field. By the end of this course, you should have a solid grasp on data warehouses and XML, which will prove to be invaluable as you progress further in your Computer Science studies. [1] http://www.saylor.org/courses/cs403/…
Technology continues to evolve and provide us with increasingly powerful mobile devices. As a result, applications that can run on a browser must also be written such that they are compatible with mobile devices, the majority of which are now web-enabled. Meanwhile, there is an increasing demand for native applications that can be downloaded to and run on mobile devices. This course will address these trends, teaching you to think about the unique design and deployment issues that must be taken into consideration when developing applications for mobile devices. This course will expand upon what has been covered in CS305: Web Development [1]. We will specifically look at the tools used to design mobile applications. We will learn about mobile platforms, mobile browsers, native applications, and best practices in terms of test usability. [1] http://www.saylor.org/courses/cs305/…
This course provides students with a comprehensive introduction to computers. Students will explore a variety of topics in computing, such as the following: the components of a computer, common computer terminology, an introduction to the Internet, computer security and privacy, computer troubleshooting techniques, and steps to maintain the life of your computer. Through readings and videos, students will learn how to fully understand the basics of computer technology.
This course is designed for the novice who has little or no word processing experience. The course provides an introduction to word processing. You will explore word processing skills while also learning to create a basic business letter and a business memo. Although the resources in this course use Microsoft Word 2010, it should be noted that all of the basic skills and tasks that you will be asked can be done on any word processing program. If you stay flexible enough in your own word processing program to search out the commands and icons on whatever software you are using, you will succeed. The most current version of Microsoft Word was selected, because it would be most beneficial to the job seeker. In addition most colleges, universities, and some public libraries are using a newer version of Word. You can complete this course using any word processing software, but if you are using an older version of Word, you may also want to seek out a resource where you can interact with the newer v…
This course will provide you with a comprehensive introduction to spreadsheets. The course is designed for first-time users with very little or no exposure to the subject. For this course, you will use Microsoft Excel as the software. The course will explore the following fundamental topics: an introduction to spreadsheets, terminology in Excel, components of a spreadsheet, what a cell consists of, and the creation of a spreadsheet for practical use. You will examine sample files, videos, and books that will enable you to gain practical knowledge about spreadsheets that can be used in daily life, either at work, school, or home.
This is the capstone course in the Saylor Customer Service certificate program which is currently under development. CUST105 is designed to teach you about the customer service work environment, methods for successful customer relations, and career advancement tactics. Future courses in the certificate program will provide a solid knowledge base in the areas of computer skills, business communications, and best customer service practices.
Principles of Microeconomics belongs to the CLEP® PREP suite of Saylor courses. This version of ECON101 will help you master the subject of microeconomics and will help prepare you to take the CLEP® exam in microeconomics [1]. The purpose of this course is to provide you with a basic understanding of the principles of microeconomics. At its core, the study of economics deals with the choices and decisions that have to be made in order to manage scarce resources available to us. Microeconomics is the branch of economics that pertains to decisions made at the individual level, i.e., by individual consumers or individual firms after evaluating resources, costs, and tradeoffs. When we talk about the economy, we are referring to the marketplace or system in which these choices interact with one another. In this course, you will learn how and why these decisions are made and how they affect one another in the economy. Each of the following units has been designed as a building block, where the concepts you le…
The purpose of this course is to provide you with a basic understanding of the principles of microeconomics. At its core, the study of economics deals with the choices and decisions that have to be made in order to manage scarce resources available to us. Microeconomics is the branch of economics that pertains to decisions made at the individual level, i.e. by individual consumers or individual firms, after evaluating resources, costs, and tradeoffs. When we talk about “the economy,” then, we are referring to the marketplace or system in which these choices interact with one another. In this course, we will learn how and why these decisions are made and how they affect one another in the economy. Each of the following units has been designed as a building block, where the concepts you learn in one unit will enable you to understand the material you discover in the next. By the end of this course, you will have a strong grasp on the major issues that face microeconomists, including consumer and…
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.