Computer Science (CS)
CS 2010 Computing Fundamentals (3)
To explore some topical applications and technologies such as robotics, artificial intelligence and networking, first examines some of the fundamental aspects of computing including: how a computing machine stores, manipulates and transforms numbers, words, images and sounds, changing them from mere data into useful information; strategies for solving computational problems (algorithmic thinking); expressing computational solutions in various computer languages from assembly through icon-driven graphical languages (4GLs); historical, social and theoretical issues. Includes a weekly hands-on lab through which students experience a variety of computing environments. Two hours of lecture and 2 hours of lab each week. Falls and Springs. (TECO)
Prerequisite(s): regular admission to Plymouth State University.
CS 2220 Computer Hardware (3)
Focuses on the organization and structure of the major hardware components of computing systems. Expands upon the digital logic and notions of internal data representation begun in CS 2010, and then develops more depth in topics such as CPU structures and control, memory systems, I/O systems and the mechanics of information transfer. The nature of computing and the role of operating systems are examined from the hardware context. Two hours of lecture and 2 hours of lab each week. Falls and Springs.
Prerequisite(s): CS 2370.
CS 2370 Introduction to Programming (4)
A first course in computer programming, covering variables, functions, conditionals, recursion, loops, and arrays. Emphasis is placed on documentation and algorithm planning. Object-oriented programming is introduced, including methods, classes, inheritance, and polymorphism. Three lecture hours and 2 hours of computer lab. Springs and Falls.
Prerequisite(s): CS 2010 or MT 3720
CS 2381 Data Structures and Intermediate Programming (4)
A second programming course which reinforces the programming constructs learned in CS 2370 and covers more advanced programming techniques. Students learn about the client/server paradigm, how to create graphical user interfaces and event-driven program structure, and how to use basic data structures such as stacks, queues, lists, and trees. Students write applications using basic networking and multithreading techniques. Three lecture hours and 2 hours of computer lab. Falls and Springs.
Prerequisite(s): CS 2370.
CS 2470 Systems Programming in C/C++ (2)
Gives students who are already proficient programmers experience in systems-level programming in C/C++. In particular, students learn how to create C/C++ programs that interact with the hardware and other software on a machine. Springs.
Prerequisite(s): CS 2370.
CS 2521 Introduction to Electromechanical Technology (3)
Introduction to basic concepts of electrical circuits, electronics, and mechanical technology, broad vision, basic structure, and applications of robots as systems with sensing, decision-making, and actuation. The laboratories identify the basic components, processors, sensors, and actuators, and connect them together into a simple but functioning system with various communication ports. Two hours of lecture and 2 hours of lab. Falls.
Prerequisite(s): MA 1800 or Math Placement score of 2 or higher.
CS 2525 Sensors and Actuator Systems (4)
Course focuses on the characteristics and classification of types of sensors and actuators, and their applications. Gain tuning, feedback, frequency responce methods, MIMO systems. Aggregate positioning, PID controllers. Topics include signal processing and analysis, Communication protocols, Real-time applications, Kinematic and inverse-kinematics, pose regression. System integration and troubleshooting. Springs.
CS 2900 Digital and Analog Circuits (4)
A fundamental study of the functional and operational characteristics of electric and electronic systems. Students will learn to analyze and understand both DC and AC electrical circuits with a particular focus on DC electronics. Students will learn to design, build, troubleshoot and integrate circuit boards into existing and new systems. Springs.
Prerequisite(s): C in MA 2130 or B- in MA 1800 or B- in MA 2450,
CS 2901 Materials, Design and Fabrication (4)
Through a series of lab-based project, students work in additive and subtractive manufacturing, 3D Printing, CNC Milling/turning, and welding. Toolpath, materials, and media finishing strategies. Topics include Rapid prototypinc, Design for Manufacturing and Assembly (DFMA), CAD/CAM, EDA/CAD, Fusion, MasterCam, PathPilot. General safety, best practices, and tool use. Falls.
CS 2905 PLC Programming (4)
An experience based course in Programmable Logic Controllers. Utilizing industry-standard PLCs students will learn programming in Relay Ladder Logic, Function Block Diagram, Sequential Function Chart, and others. Hands-on work will focus on PLC systems design, integration, VFD, control concepts, and low-level troubleshooting. Course concepts include networking, fault tolerance, HMI/SCADA overview of systems and functionality. Springs.
CS 2990 Algorithm Development Under Time Constraints (1)
Prepares students to develop and code algorithms under severe time constraints to prepare for the ACM Programming Contest. Falls.
Prerequisite(s): permission of the instructor.
CS 3015 Mobile Application Development (3)
Provides an introduction to the design and implementation of applications for smart mobile phones and devices. Presents basics of mobile GUI programming components and application structure. Additional topics include use of patterns, pattern languages, and frameworks to alleviate the complexity of developing concurrent and networked services on mobile devices that connect to popular cloud computer platforms. Springs.
Prerequisite(s): CS 2381.
CS 3020 Web Programming (3)
Focuses on issues concerning the design, implementation and impact of user-friendly, interactive web pages and easy-to-navigate secure web sites. Covers a variety of web page and web site development technologies. Two lectures and 1 lab per week. Falls.
Prerequisite(s): CS 2370.
CS 3221 Algorithm Analysis (4)
Formal study of algorithms, including those for searching, sorting, and graph structure based ones. Addresses several algorithm design issues such as divide-and-conquer, greedy and dynamic programming. Defines, evaluates and analyzes the correctness, time, and space complexity of algorithms. Covers probabilistic, concurrent programming, and other topics such as P, NP, NP-Completeness and approximation algorithms. Springs.
Prerequisite(s): CS 2381 and (MA 3200 Or MA 2450 Or MA 2250).
CS 3240 Data Communication and Computer Networks (3)
Provides an introduction to the study of communications. Current methods and practices covered. Topics include data transmission, communication techniques, packet switching, routing, long-haul vs. local-area networks and performance considerations. Falls.
Prerequisite(s): CS 2370.
CS 3420 Introduction to Cybersecurity (3)
Provides foundation for understanding key issues of protecting digital information, identifying threats, and determining protection levels, response to security incidents, examination of pre- and post-incident procedures, and designing consistent, reasonable cyber security system, with appropriate intrusion detection and reporting features. Includes technical and managerial responses and an overview of cyber security planning and staffing functions. Falls.
Prerequisite(s): CS 2010; Junior status.
CS 3500 Introduction to Artificial Intelligence (3)
An introduction to the basic theory and major applications of artificial intelligence. Covers general issues of AI such as its development, social impact and philosophical implication. Emphasizes the fundamental issues of AI such as problems and state spaces, search strategies, logic reasoning and various knowledge representation techniques. Discusses AI application domains, such as learning, expert systems, planning and game playing. An AI programming language (Lisp or Prolog) is used throughout the course. Students are expected to use the language to solve AI related problems. Fall of odd years.
Prerequisite(s): CS 3221.
CS 3600 Database Management Systems & Security (4)
Covers the principles and practice of relational database design and analysis, including topics of entity-relationship modeling, functional dependencies, normalization, relational algebra and relational calculus, as well as their SQL correspondents. Other related issues are discussed such as other data base models, object-oriented database scheme, concurrent data access, recovery and security. One or more projects form a significant part of this course. Falls.
Prerequisite(s): CS 2370 And (MA 2210 or MA 2450 or MA 2700).
CS 3650 Big Data Administration and Analysis (3)
Provides students with an understanding of Big Data analytics cluster computer framework. Students gain knowledge on managing Big Data from various data sources including public and private data sets including business. Students gain a hands-on experience on various cloud-based Big Data framework and NoSQL databases including Hadoop and Spark for real-time stream processing tools for IoT (Internet of Things) devices. Falls.
Prerequisite(s): CS 2370
CS 3690 Applied Robotics (4)
This course focuses on the core system components within Robotics and their integration through use of Robot Operating System (ROS), rViz, and Gazebo simulator. Individuals will design, build and program on the most recent OpenCR and SBC platforms while integrating a variety of capabilities and libraries under Plymouth State's One Robot initiative. Topics include Wayfinding, Localization, Loop-closure, Odometry, A* Pathfinding, as well as machine vision and machine learning. Falls.
CS 3720 Systems Analysis and Design (3)
The study of computerized information as a resource. The study of the systems development life cycle. Integrating computer technology, networks, systems analysis and design and organizational behavior in the building of large-scale applications or decision support systems. The use of CASE tools. The importance of service and testing of information systems. Springs.
Prerequisite(s): CS 3600 and Junior Status
CS 3780 Introduction to Computational Theory (3)
Intended to provide a solid theoretical foundation for computer science students. A series of artificial machines such as finite state automata, push-down automata and Turing machines are be defined and studied as formal models of computers. Studies their corresponding formal languages such as regular, context-free and unrestricted languages. Discusses related issues such as Church's Thesis, Halting problem and general incompatibility. Falls.
Prerequisite(s): CS 3221.
CS 3820 Human-Computer Interaction (3)
Concerned with the design, evaluation and implementation of interactive computing systems for human use. It briefly surveys the most important conceptual models of human psychology applied to computer interactions, and stresses the importance of good interfaces and interface design to human-computer interaction. It treats topics such as interface quality and methods of evaluation, user-centered design and task analysis, dialogue tools and techniques, windowing, prototyping and user interface implementation, I/O devices and the use of color and sound. It trains the Computer Science student to apply the theories of HCI to the task of design by surveying the techniques available in the discipline and demonstrating where and when they are applicable via a combination of scientific-theory understanding, engineering modeling and the solution of design problems facing the user interface designer. Springs.
Prerequisite(s): CS 2370.
CS 3890 Engineering Design (3)
A course on problem definition, concept design, implementation, testing and assessment. Students will use mathematical tools and scientific principles illustrated through projects utilizing standard design models. Students work in teams to produce a component using rapid prototyping based on defined requirements and constraints. CAM software is utilized to assess structural and Designing for Manufacture (DFM) issues. Springs. Springs.
CS 3901 Industrial Robotics (4)
This course focuses on integration, operation, and programming of industrial robotics systems and our FANUC Connected Smart Manufacturing cell both manually (iHMI) and through RoboGuide software. Additionally, through this course students will have the opportunity to study and test for various professional certifications. Falls.
CS 3902 Adaptive Control Systems (4)
This course covers an overview of control systems, including definitions, types, and principles. It includes mathematical modeling techniques, linear control theory, feedback systems, PID controllers, nonlinear control strategies, digital control techniques and design methodologies. Topics include phase plane analysis and Lyapunov stability, Bode plots, and Nyquist criteria. Project-based approach emphasizes real-world applications and problem-solving. Springs.
CS 3905 Mobility, Autonomy, and Teleoperation (4)
In this course students learn current remote operation and autonomous technologies in small unmanned aerial system (sUAS), ground systems (UGV), and ROVs. Topics will include vehicle loading and motion dynamics, Geodetic concepts, Photogrammetric and LiDAR Processing, RTK, GNSS, IMU data handling. Course includes review of local laws and licensing in preparation toward an FAA Part 107 sUAS certificate. Falls.
CS 3970 Current Events, Topics and Issues in Robotics (4)
The fields of computer science, robotics and related disciplines evolve very rapidly. This course examines current issues and developments that are disrupting the status quo and have the potential to shape the future of the field and of society at large. Topics vary by semester. Repeatable twice for a maximum of 8 credits. Falls Even.
Prerequisite(s): CS 2370 AND (MA 2450 or MA 2250 OR MA 2490).
CS 4140 Software Engineering (3)
Presents fundamental principles of software engineering. Emphasizes software design, implementation and maintenance. Techniques used in the major phases of the software life cycle such as rapid prototyping, object-oriented design and module testing, are discussed. Software teams complete a term project that includes system documentation, design and implementation. Falls.
CS 4230 System Administration (4)
Introduces students to system administration using Linux and Windows. Student participates in installing and configuring both operating systems. Topics include the Active Directory, web services, file and print services, the file system, user management, task management, automation, backups, host services, firewalls, network management, performance analysis, security, policy and ethics, use of scripting language, various system tools, and commands. Falls.
Prerequisite(s): CS 2370 Academic level: UG
CS 4250 Computer Architecture (3)
Fundamental concepts of computer design using a quantitative, performance-oriented approach. Topics include: measurement of performance instruction sets design; hardwired and micro-coded processor design; pipelining; memory hierarchy; I/O. Assembly language programming is studied through a series of short projects. Falls.
CS 4310 Operating Systems (3)
Covers the major concept areas of operating systems for both large and small computers and the interrelationship between the operating system and computer architecture. Topics include: history, tasking, process synchronization, scheduling, memory organization, device management, file systems, security issues, distributed and real-time systems. One or more projects form a significant part of this course. Springs.
CS 4400 Computer Networks and Protocols (4)
Focus is on providing a data stream for higher-level services to operate over. It is primarily concerned with the transport layer and below. TCP/IP is the predominant protocol studied. Others, such as Novell NetWare, are covered to provide comparative examples. Monitoring, diagnosis and administration of the infrastructure are studied. Lecture and laboratory. Springs.
CS 4420 Computer Security (3)
Provides an introduction to the theory and practice of computer security and information warfare. In particular, examines issues in physical security, network security, database security, intrusion detection, detection of Trojan horses, viruses, worms and coordinated network attacks, access control, cryptography, legal and ethical issues including privacy and copyright, as well as various computer security policy issues. Springs.
CS 4500 Topics in Computer Science and Technology (3)
Explores specialized topics pertaining to computer science and information technology that are not covered in other Computer Science and Technology courses. Topics vary by semester and instructor. May be repeated with a different topic for no more than 6 credits. Springs.
Prerequisite(s): variable, depending on topic selection; consult course instructor.
CS 4520 CyberEthics (3)
Surveys the ethical issues involved in the use of information technology. Provides an introduction to a variety of ethical theories that can be used as guides for thinking about these issues. Emphasizes the use of case studies to practice the application of ethical frameworks to real problems facing today's society. Serves as part of the senior capstone experience. Falls. (DICO) (WRCO)
Prerequisite(s): Junior status.
CS 4760 Senior Project (3)
Available only to senior Computer Science and Information Technology majors. Working under faculty direction, students select a problem or task, analyze it and develop a solution. The problem/task selected must involve some aspect of computing. At the end of the semester, each student makes a formal, public presentation in an appropriate format determined by the faculty. In addition, students meet weekly, as a group, to discuss a variety of topics related to investigation, research and development, the process of public presentation of results, and to present the other students with an overview and regular progress reports on their own project. By individual enrollment with the Chair's signature. With permission. Pass/No Pass. Falls and Springs.
Prerequisite(s): all required 2000 and 3000 level courses.
CS 4790 Robotics Capstone (4)
Advanced topics in robotics for students, intended as a capstone project course for the Electromechnical Technology and Robotics program. Based on the knowledge and experience acquired in the previous courses, students follow a standard engineering approach to pursue an individual project that incorporates sensing, control, and actuation to solve a well-defined and realistic problem in a real situation. Instructor permission required.
Prerequisite(s): CS 3901
CS 4910 Independent Study (1-3)
Intensive individual work in a particular area of Computer Science not otherwise available through the curriculum. Topics to be chosen by the student in consultation with the instructor. Consent required of the instructor who will supervise the independent study and the Department Chair.
CS 4920 Computer Science Internship (1-6)
Students leave the campus to work in a professional situation in the computing field with or without financial compensation. The employing agency provides a carefully-planned sequence of tasks intended to provide the student with a learning experience in the field of computing. Students have supervisors both in the Computer Science and Technology Department and in the employing agency who will jointly coordinate the student’s work. Students must submit to the Department a written proposal prior to undertaking the internship and a final report upon its completion. Repeatable for a maximum of 6 credits.
Prerequisite(s): final approval of the internship will come from the Department Chair; Computer Science or Information Technology major and completion of major courses appropriate to the position (to be determined by the supervising faculty member).