Online courses directory (275)
This course will introduce you to the field of computer science and the fundamentals of computer programming. Introduction to Computer Science I is specifically designed for students with no prior programming experience, and taking this course does not require a background in Computer Science. This course will touch upon a variety of fundamental topics within the field of Computer Science and will use Java, a high-level, portable, and well-constructed computer programming language developed by Sun Microsystems (now Oracle), to demonstrate those principles. We will begin with an overview of the course topics as well as a brief history of software development. We will cover basic object-oriented programming terminology and concepts such as objects, classes, inheritance, and polymorphism, as well as the fundamentals of Java, its primitive data types, relational operators, control statements, exception handling, and file input /output. By the end of the course, you should have a strong understanding of the fundam…
This course is a continuation of the first-semester course titled CS101: Introduction to Computer Science I [1]. It will introduce you to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. We will begin with a comparison between Java - the programming language utilized last semester - and C++, another popular, industry-standard programming language. We will then discuss the fundamental building blocks of Object-Oriented Programming, reviewing what we learned last semester and familiarizing ourselves 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, you 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. [1] http://www.saylor.
In the first unit, we will learn the mechanics of editing and compiling a simple program written in C++. We will begin with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class. Next, we will cover the basics of object-oriented programming: classes, inheritance, templates, exceptions, and file manipulation. We 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, we will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees. This course contains a number of sample programs and review exercises. Through these exercises, students should better learn how to write functions, use the string class, and write elementary data structures such as linked lists and bina…
When we use programming for problem-solving purposes, data must be stored in certain forms, or Data Structures, so that operations on that data will yield a specific type of output. Imagine, for example, that a non-profit is having trouble staying afloat and needs an increase in donation. It decides it wants to keep track of its donors in a program in order to figure out who is contributing and why. You would first need to define the properties that would define those donors: name, address, amount donated, date of donation, and so on. Then, when the non-profit wants to determine how to best reach out to their donors, it can create a model of the average donor that contributes to the non-profitsay, for example, based on size of gift and locationso that it can better determine who is most receptive to its mission. In this case, size of gift and location are the “data” of the donor model. If the non-profit were to use this model, it would be identifying real donors by first generating an abstract…
Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software. The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany. Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside of the classroom is a very complex process, mostly because real-world software is much larger and more complex. The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. The course will begin with an introducti…
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.
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.