This Specialization covers intermediate topics in software development. You’ll learn object-oriented programming principles that will allow you to use Java to its full potential, and you’ll implement data structures and algorithms for organizing large amounts of data in a way that is both efficient and easy to work with. You’ll also practice critically evaluating your own code, and you’ll build technical communication skills that will help you prepare for job interviews and collaborative work as a software engineer. In the final Capstone Project, you’ll apply your skills to analyze data collected from a real-world (social) network. Google has contributed real-world projects and the involvement of its engineers as guest lecturers to these courses. This is a secondary course for students who have passed CSE 110. Following are the objectives of CSE 205 :
1. To introduce issues related to software development
Software development process issues have been around since the inception of software development. Improving software development productivity should be the main focus of all who work on teams, especially leads and managers. Here, we cover three of the most common problems experienced within among software dev teams; Communication, poor scheduling and lack of testing.
2. To introduce concepts of data structure organization
A data structure is a specialized format for organizing and storing data. General data structure types include the array, the file, the record, the table, the tree, and so on. Any data structure is designed to organize data to suit a specific purpose so that it can be accessed and worked with in appropriate ways. In computer programming, a data structure may be selected or designed to store data for the purpose of working on it with various algorithms. Other few concepts are :
2.1. A student can write code using basic data structures such as ArrayLists/Vectors.
2.2. A student can implement basic data structures such as linked lists, queues, stacks and binary trees.
2.3. A student can determine the appropriate basic data structures to use in a program.
2.4. A student can use encapsulation to provide abstract container classes 2.5. A student can write a program using sequential and text files as input and output for programs
3. To introduce Object Oriented language constructs
Object means a real-world entity such as a pen, chair, table etc. Object-Oriented Programming is a methodology or paradigm to design a program using classes and objects. It simplifies the software development and maintenance by providing some concepts:
3.1. A student can design and implement a simple GUI (graphical user interfaces)
3.2. A student can write a program using inheritance, interfaces, and polymorphism.
3.3. A student can use exception handling correctly in a program.
4. To introduce the issues of Algorithms
Algorithm design. Algorithm design is a specific method to create a mathematical process in problem-solving processes. Applied algorithm design is algorithm engineering. Algorithm design is identified and incorporated into many solution theories of operation research, such as dynamic programming and divide-and-conquer. Few concepts are :
4.1. A student can describe the efficiency of simple algorithms (merge sort, quick sort, linear search, binary search).
4.2. A student can apply standard algorithms for searching and sorting, searching when designing programs.
4.3. A student can design recursive algorithms and use recursive structures when designing programs.
5. To introduce social and ethical issues in computer science
5.1. A student can research and discuss ethical and social issues of the computing world. The goal of the Ethics and Social Issues in Computer Science Project is two-part. The first is largely completed: finding the intersections and integrating computer ethics topics into the computer science major curriculum. This paper outlines the integration plan. Phase two will be the implementation of the curriculum, with ongoing analysis of its success
Above are few objectives which one can expect to learn in CSE 205. In short, CSE 205 is a course a little bit harder than CSE 110. A student here is expected to know JAVA properly. If you don’t feel confident enough in JAVA or programming, DO NOT take this course. Happy Studying.