Apr 29, 2024  
2017-2018 Undergraduate Bulletin 
    
2017-2018 Undergraduate Bulletin [ARCHIVED]

Course Descriptions


A typical course description in the Undergraduate Bulletin appears like this:

LIT 273 American Multicultural Literature  

The three digits of the course codes refer to the course level. Undergraduate courses are those numbered from 100 to 499. All numbers above that are for graduate credit.The 100 series is primarily for freshmen; 200 – sophomores; 300 – juniors; and 400 – seniors.

Course Planning Information

Information included with the course description helps you as you plan your course schedules. General Education (Gen Ed), Racial and Ethnic Studies (RES), Global Perspective (GLP), repeatability, and terms offered (if known) are indicated.

The terms indicated serve only as a general guide and do not guarantee that a course will be offered during a particular semester. Verify availability of a course in any given term by checking the online Open Courses listing or through Access Stout when planning your schedule.

 

Computer Science

  
  • CS-141 Introduction to Programming


    (3 cr.)
    Analytical Reasoning and Natural Sciences - Analytic Reasoning
    Repeatable for Credit: No
    Solving problems using computer programming. Input/output, user interface, objects, events, flow of control, functions, arrays.
  
  • CS-144 Computer Science I


    (4 cr.)
    Analytical Reasoning and Natural Sciences - Analytic Reasoning
    Repeatable for Credit: No
    Problem solving using a high-level programming language. Input/output, control structures, functions, arrays, memory management, structured data, documentation and testing.
  
  • CS-145 Computer Science II


    (4 cr.)
    Repeatable for Credit: No
    Object-oriented programming, debugging, documentation, graphical user interface, event handling, testing, input/output, and problem solving in the Java programming language.
    Prerequisite: take CS-144  or CS 141  
  
  • CS-199 Independent Study


    (1-3 cr.)
    Repeatable for Credit: Yes
    Department Consent
  
  • CS-244 Data Structures


    (4 cr.)
    Repeatable for Credit: No
    Concepts and foundations of data structures and algorithms. Introduction to analysis of algorithms and linear structures, vectors, linked lists, stacks, queues and priority queues. Non-linear data structures such as trees, tree traversals, binary trees, binary search trees and graphs. Advanced sorting and searching techniques. Hashing, heaps.
    Prerequisite: take CS 144  and CS-145  
  
  • CS-245 Introduction to Computer Organization


    (3 cr.)
    Repeatable for Credit: No
    Basic concepts in computer systems including computer structure, machine language, assembly languages, addressing techniques, macros, file I/O, program segmentation and linkage.
    Prerequisite: take CS-145  
  
  • CS-248 Web and Internet Programming


    (3 cr.)
    Repeatable for Credit: No
    Design and implementation of web and internet software systems using current programming languages, scripting languages, and interface standards. Network programming and client/server applications. Support for database access via web programs.
    Prerequisite: Take CS-141  or CS-144  
  
  • CS-254 Algorithm Design and Analysis


    (3 cr.)
    Repeatable for Credit: No
    Introduction to the design and analysis of algorithms. Asymptotic analysis of time complexity. Proofs of correctness. Dynamic programming, greedy algorithms, amortized analysis, and string operations. Concept of NP-completeness.
    Prerequisite: take CS-244  & either MATH 154  or MATH 157  
  
  • CS-290 Professional Seminar


    (1 cr.)
    Repeatable for Credit: No
    Preparation for the computer science profession. Assess knowledge base, identify areas of strengths and weaknesses, define plan for further development. Build a professional portfolio and resume, and review interviewing skills. Explore career paths, company research, negotiations and weighing job offers. Opportunities for attendance at industry presentations and company visits.
    Prerequisite: take CS-244 or CS-248
  
  • CS-299 Independent Study


    (1-3 cr.)
    Repeatable for Credit: Yes
    Department Consent
  
  • CS-324 Database Systems Manipulation and Design


    (3 cr.)
    Repeatable for Credit: No
    Conceptual and logical organization of data, data models, data manipulation and data definition languages, and design of databases.
    Prerequisite: take CS-244  
  
  • CS-326 Programming in Game Engines


    (3 cr.)
    Repeatable for Credit: No
    Introduction to programming in game engines with focus on programming game objects, physics, programmable effect systems and user interface components to create interactive programs.
    Prerequisite: take CS-244  
  
  • CS-326 Programming Interaction in 3D Game Environments


    (3 cr.)
    Repeatable for Credit: No
    Introduction to a 3D game programming environment with focus on programming interaction of game objects, physics, programmable effect systems and Heads-Up-Display (HUD).
    Prerequisite: take CS-244  
  
  • CS-342 Survey of Programming Languages


    (3 cr.)
    Repeatable for Credit: No
    Programming languages and language design. Comparative study of three modern high level languages and their application strengths for systems programming, embedded computer systems and artificial intelligence.
    Prerequisites: take CS-244  and CS-245  
  
  • CS-343 Mathematical Foundations of Computer Graphics


    (3 cr.)
    Repeatable for Credit: No
    Fundamental hardware, software, mathematics, data structures and algorithms for computer graphics.
    Prerequisites: take CS-244  and MATH 275 , and take either MATH-158  or MATH-154  or PHYS-281  
  
  • CS-345 Image Processing


    (3 cr.)
    Repeatable for Credit: No
    Theory and applications of digital image processing. Mathematical foundations and algorithms for enhancement, restoration, compression, segmentation and reconstruction from projections.
    Prerequisites: take MATH 158 MATH-275 , and CS-244  
  
  • CS-346 Simulation Modeling and Analysis


    (3 cr.)
    Repeatable for Credit: No
    Simulation as a problem-solving technique; models, analysis and languages for simulation; data collection; random variate generation; verification and validation; output analysis; optimization of systems.
    Prerequisites: take CS-244  and STAT-332  
  
  • CS-349 Cooperative Education Experience


    (1-8 cr.)
    Repeatable for Credit: Yes
    Work and study in an approved position to gain business/industrial/other experience. Normally entails recurring, supervised work periods, each one building and expanding on the previous.
    Department Consent
  
  • CS-358 Software Engineering Principles


    (3 cr.)
    Repeatable for Credit: No
    Study of the software development life cycle, software engineering practices including waterfall and agile, requirements engineering, user-centric design practices, program testing, documentation, and team management and organization. Students will work on a software project to develop requirements and design a prototype.
    Prerequisite: take CS-244  & either CS 248  or CS 324  
  
  • CS-364 Mobile Development in Android


    (3 cr.)
    Repeatable for Credit: No
    Design and implementation of software applications for mobile devices running the Android platform. Fundamental programming principles, software architecture and user experience considerations underlying handheld software applications and their development environments.
    Prerequisite: take CS 324  
  
  • CS-399 Independent Study


    (1-3 cr.)
    Repeatable for Credit: Yes
    Department Consent
  
  • CS-441 Computer Architecture


    (4 cr.)
    Repeatable for Credit: No
    Fundamentals in modern computer technology, focusing on hardware. Design, operation, and interconnections of the major computer system components consisting of the CPU, memory, and I/O modules.
    Prerequisite: take CS-244  
  
  • CS-442 Systems Programming


    (3 cr.)
    Repeatable for Credit: No
    Design, organization and case studies of major systems software: assemblers, loaders, linkers, macro processors, compilers, and operating systems. Relationship between machine architecture and system software.
    Prerequisite: take CS 441  
  
  • CS-449 Cooperative Education Experience


    (1-8 cr.)
    Repeatable for Credit: Yes
    Work and study in an approved position to gain business/industrial/other experience. Normally entails recurring, supervised work periods, each one building and expanding on the previous.
    Department Consent
  
  • CS-458 Software Engineering Practicum


    (4 cr.)
    Repeatable for Credit: Yes
    Ongoing, repeatable course with hands-on experience in software engineering. Teams will work on projects with customers to specify, design, implement, and test a significant software system using modern software engineering approaches to team management, communication, and coordination. Modern tools for communication, feature and requirement management, and version control will be used. Modern agile and incremental techniques will be employed.
    Prerequisite: take CS-358  and Junior Standing
  
  • CS-480 Introduction to Computer Security


    (3 cr.)
    Repeatable for Credit: No
    Computer security problems and challenges, relationship between policy and security, cryptography, implementation of requirements imposed by policies, use of standards to ensure that the system will meet its goals, system vulnerabilities analysis and detection, intrusion detection, application of desired policy and procedures to support the policy.
    Prerequisite: take CS 244   
  
  • CS-496 Advanced Web and Internet Programming


    (3 cr.)
    Repeatable for Credit: No
    Modern and emerging web programming standards, server configurations, and libraries. Web app creation and persistent data storage. Survey of modern tools and technologies to support web development.
    Prerequisites: take CS 248  and CS 324  
  
  • CS-496 Artificial Intelligence


    (3 cr.)
    Repeatable for Credit: No
    Introduction to the concepts of artificial intelligence. Principles and programming techniques of artificial intelligence: heuristic search, symbol manipulation, knowledge representation, logical and probabilistic reasoning, machine learning, language understanding, expert systems, and social issues.
    Prerequisite: take CS 254  
  
  • CS-499 Independent Study


    (1-3 cr.)
    Repeatable for Credit: Yes
    Department Consent