Skip to content

Jingwu010/CSU-CS-CodeRepo

Repository files navigation

TABLE

Course Detail
CS-200-Algorithms and Data Structures CS 200
CS-314-Software Engineering CS 314
CS-370-Operating Systems CS 370
CS-414-Object Oriented Design CS 414
CS-435-Big Data CS 435
CS-440-Aritificial Intelligence CS 440
CS-445-Machine Learning CS 445
CS-455-Distributed System CS 455

Detail

CS 200 Algorithms and Data Structures

CS 200 is taught using the Java Programming Language and an Object Oriented approach to data structures and algorithms. Specific topics in data structures/algorithms include advanced sorting, queues, stacks, hash tables, trees, and graphs. Advanced topics from theory include complexity analysis, relations, and mathematical induction.

CS 314 Software Engineering

The course introduces students to principles, concepts and techniques associated with team based development of large, complex software systems. Major topics include teamwork, configuration management, project management, requirements, and testing. Students will learn to use associated software tools in the context of a Scrum based Agile development project. It is assumed that students know how to program and debug using the Java language.

CS 370 Operating Systems

CS370 is to understand the broad range of issues that underlie modern Operating Systems. We focus on key concepts and algorithms that are used in both commercial and open source operating systems. This course will cover the following broad areas:

  • Operating systems perspective and terminology.
  • Processes, threads and synchronization
  • CPU Scheduling algorithms
  • Deadlocks and resource management
  • Memory address translation and virtual memory
  • Storage architecture and File System
  • Virtual Machines

CS 414 Object Oriented Design

During the course, students will learn to analyze problems and develop conceptual models, generate designs from the models, and write program code that implements the designs. Students will also learn to evaluate and improve object oriented models and code. They will use the Unified Modeling Language (UML) to develop object models, and Java to implement the designs. The course will also introduce some facets from agile programming: very short software build cycles, and test first programming.

  • Java coding style and idioms.
  • Object oriented analysis and design.
  • Problem analysis.
  • Conceptual modeling.
  • System behavior modeling.
  • Software architecture.
  • Design modeling.
  • Design patterns.
  • Design principles.
  • Refactoring.

CS 435 Big Data

Modern scientific instruments and Internet scale applications generate voluminous data pertaining to vital signs, weather phenomena, social networks that connect millions of users, and the origins of distant planets. Data produced in these settings hold th epromise to significantly advanced knowledge. This course covers fundamental issues in Big Data. The course examines issues related to data organization, storage, retrieval, analysis and knowledge discover at scale. This will include topics such as large scale data analysis, data storage systems, self descriptive data representations, semi structured data models.This course will involve hands on programming assignments and term project using real world datasets.

Topics

  • Overview of Big Data
  • Scalable Data Analytics Framework
  • Large scale Data Analysis Models
  • In modory Data Analytics
  • Distributed Storage Architecture
  • NoSQL Databases
  • Data Flow Management
  • Data Exchange Model

CS 440 Aritificial Intelligence

  • Problem solving Search: DFS, BFS, A* (heuristic search), Iterative Deepening, Negamax with Alpha Beta Pruning Search
  • Intro Reinforcement Learning: with Maze and Two Player Game Examples
  • Intro Neural Networks: with Linear Regression Example
  • Intro Classification: with Linear and Nonlinear Logistic Regression
  • Combining Reinforcement with Neural Networks as Q function

CS 445 Machine Learning

This course covers fundamental concepts and methods of computational data analysis, including pattern classification, prediction, visualization, and recent topics in deep learning. Students will learn how to

  • read data files of various formats and visualize characteristics of the data,
  • perform statistical analyses on multivariate data,
  • develop and apply pattern classification algorithms to classify multivariate data,
  • develop and apply regression algorithms for finding relationships between data variables,
  • develop and apply reinforcement learning algorithms for learning to control complex systems,
  • write scientific reports on computational machine learning methods, results and conclusions,
  • use the latest features in python, including jupyter notebooks.

CS 455 Distributed System

CS 455 covers fundamentals issues involved in building distributed systems. The course examines issues related to concurrent programming, thread pools and safety, non blocking I/O, scalable server design, file system design, distributed mutual exclusion and deadlock detection, consensus and consistency, pipelining schemes, distributed graph algorithms, distributed shared memory, distributed objects, and MapReduce.

By the end of the course, students should be able to

  • Build scalable servers using thread pools that leverage lightweight concurrency primitives
  • Understand issues related to the role of order and distributed mutual exclusion
  • Design and build file systems from the ground up
  • Write MapReduce programs that execute concurrently on multiple machines
  • Design efficient data representation formats for communications between distributed components
  • Harness foundational concepts of distributed graph algorithms
  • Understand the role of overlays in content disseminations

Extensive experimentation through programming assignments in Java is a principal activity of this course. These assignments will focus on developing skills that are immediately transferrable to building real world systems.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published