Computing & Software Systems Course Descriptions

Application Programming (CSSAP)

CSSAP 490 Special Topics in Application Development (5, max. 15) 
Examines current topics and issues associated with Application Development.

Computing & Software Systems (CSS)

CSS 105 Interdisciplinary Information Technology (5) QSR
Excursions into the characteristics, organization, and use of computers and computing. Designed for non-CSS majors. Topics vary, addressing social, scientific, ethical, and business underpinnings and implications of information technology. Explores applications used in problem solving. Does not count credit toward the CSS degree or CSS minor.

CSS 106 Computer Animation (5) VLPA/NW,QSR
Uses the creation of computer generated animation as a means to study communication of ideas based on digital media. Studies modeling, rendering, and animation with hands-on experimentation and practices.

CSS 161 Fundamentals of Computing (5) NW,QSR
Introduction to programming concepts within social, cultural, scientific, mathematical, and technological context. Topics include programming fundamentals (control structures, data types and representation, operations, functions and parameters), computer organization, algorithmic thinking, introductory software engineering concepts (specifications, design, testing), and social and professional issues (history, ethics, applications).

CSS 162 Programming Methodology (5) NW,QSR
Transition from basic programming skills to a rigorous process of software development. Familiarization with higher level programming techniques (recursion, generic programming) and constructs (object-orientation, lists, stacks, queues, searching, sorting). Emphasizes connection between mathematical/algorithmic thought (logic, sets, functions, number bases) and implementation. Prerequisite: minimum grade of 2.0 in CSS 161.

CSS 211 Computers and Society (5) I&S
Exploration and discussion of issues related to the development, support, and usage of computing technology in today's society. Topics vary each quarter but include coverage of areas related to intellectual property rights, privacy, freedom of speech, liability, ethics, and labor.

CSS 225 Physics and Chemistry of Computer Components and Their Manufacture (5) QSR Jackels
Examination of the basic physics and chemistry underlying the design and manufacture of computer components. Introduction to the electronic structure of the solid state, the nature of p-n junctions, and basic transistor design. Aspects of materials and polymer science and photolithography employed in microchip manufacture. May not be repeated.

CSS 263 Programming and Discrete Mathematics (5)
Abstract representation as tools for software design. Fundamentals of mathematical thinking (predicate calculus, functions, relations, proofs, computational complexity) applied to abstract data types (lists, stacks) queues) and algorithmic strategies (divide-and-conquer, greedy). Pointers and memory management in programming languages. Prerequisite: minimum grade of 2.0 in both CSS 162 and B CUSP 124.

CSS 301 Technical Writing for Computing Professionals (5)
Explores methods for writing effective system specifications, user documentation and requests for proposals (RFPs). Examines RFP analysis techniques, writing plans, proposals, marketing documentation, and customer communications. May not be repeated.

CSS 330 Topics in Mathematics for Software Development (1-5, max. 10)
Topics in intermediate mathematics as applied within the context of computer software application development. Topics chosen from the fields of intermediate calculus and finite mathematics.

CSS 332 Programming Issues with Object-Oriented Languages (2) Zander
Covers language and development/execution environment differences, including data types, control structures, arrays, and I/O; addressing and memory management issues including pointers, references, functions, and their passing conventions; object-oriented design specifics related to structured data and classes. Co-requisite: CSS 342

CSS 341 Fundamentals of Programming Theory and Applications (5)
Fundamental concepts and techniques for analysis, design and implementation of computer programming. Prerequisite: CSS 161; may not be repeated.

CSS 342 Mathematical Principles of Computing (5)
Integrating mathematical principles with detailed instruction in computer programming. Explores mathematical reasoning and discrete structures through object-oriented programming. Includes algorithm analysis, basic abstract data types, and data structures. May not be repeated.
Instructor Course Description: Michael D Stiber

CSS 343 Data Structures and Algorithms (5) Stiber, Zander
Develops competencies associated with problem-solving, algorithms, and computational models. Covers abstract data types and data structures, efficiency of algorithms, binary tree representations and traversals, searching, dictionaries, priority queues, hashing, directed graphs and graph algorithms, and language grammars. Prerequisite: 2.0 in CSS 301; 2.0 in either CSS 263 or CSS 342; may not be repeated.
Instructor Course Description: Michael D Stiber Carol Zander

CSS 350 Management Principles for Computing Professionals (5) Erdly
Through a team software project, explores critical interpersonal, communication, leadership, decision-making, social, and cultural theories drawn from contemporary research in anthropology, sociology, psychology, and business. Prerequisite: CSS 301, which may be taken concurrently; may not be repeated.

CSS 360 Software Engineering (5) Cioch
Surveys the software engineering processes, tools, and techniques used in software development and quality assurance. Topics include life-cycle models, process modeling, requirements analysis and specification techniques, quality assurance techniques, verification and validation, testing, project planning, and management. Prerequisite: CSS 301, which may be taken concurrently; either CSS 263, CSS 341 or CSS 342 which may be taken concurrently; may not be repeated.

CSS 370 Analysis and Design (5) Cioch
Methods and tools to capture and communicate requirements, proposed solutions, and design to management, customers, and software developers. Data, process, and object modeling using languages such as data flow diagrams, entity/relationship diagrams, and unified modeling language use cases and class and sequence diagrams. Prerequisite: 2.0 in CSS 301; 2.0 in either CSS 263 or CSS 342; 2.0 in CSS 360; may not be repeated.

CSS 371 The Business of Computing (5) Berger
Methods for aiding software development, communicating progress to customers/management, and developing marketing strategies for the product. Incorporates social, psychological, and ethical issues. May not be repeated.

CSS 390 Special Topics (1-5, max. 10)
Examines current topics and issues associated with computing and software systems.
Instructor Course Description: Mark Kochanski

CSS 411 Computing Technology and Public Policy (5) I&S
In depth investigation of economical, political, organizational, and societal ramifications of using computing technology. Evaluates current policy approaches, determines trends, and proposes changes. Topics vary by quarter.

CSS 421 Introduction to Hardware and Operating Systems (5) NW,QSR
An introduction to the architecture of modern microprocessors and operating systems. Examines the basic theories and concepts of how hardware and software cooperatively interact to accomplish real-world tasks. Prerequisite: either CSS 263 or CSS 342.

CSS 422 Hardware and Computer Organization (5) Berger
An introduction to the architecture, operation, and organization of a modern computing machine. Topics covered include basic logic operations, state-machines, register models, memory organization, peripherals, and system issues. Assembly language taught in order to understand the instruction set architecture and memory model of the computer. Prerequisite: CSS 301; either CSS 263 or CSS 342; may not be repeated.

CSS 427 Introduction to Embedded Systems (5) Berger
Introduction to the process of specifying, designing, and testing embedded systems. Follows the embedded systems development. Covers software and hardware partitioning, processor selection, real-time operating systems, embedded software design in assembly language and C, debugging, and testing. Prerequisite: CSS 422; may not be repeated.

CSS 428 Embedded Systems Laboratory (3)
Principles and development of embedded software for real-time applications using C, C++, and assembly language. Topics include file format, using an Integrated Design Environment, logic analysis, in-circuit emulation tools, interrupt-driven programming applications, measuring cache performance, FLASH algorithms and analog to digital conversion. Prerequisite: CSS 422.

CSS 430 Operating Systems (5)
Principles of operating systems, including process management, memory management, auxiliary storage management, and resource allocation. Focus on the structure of the popular desktop and real-time operating systems. Prerequisite: CSS 343; may not be repeated.

CSS 432 Network Design (5)
Examines methods for designing LANs and WANs that optimize Quality of Service (QoS). Covers theoretical and practical element of the OSI protocol stack; routing protocols including OSPF and BGP; networking management/architecture; router configuration; security; and Internet policies. Explores emerging networking technologies. Prerequisite: CSS 301; CSS 422; may not be repeated.

CSS 434 Parallel and Distributed Computing (5) Fukuda
Concepts and design of parallel and distributed computing systems. Topics include: fundamentals of OS, network and MP systems; message passing; remote procedure calls; process migration and mobile agents; distributed synchronization; distributed shared memory; distributed file system; fault tolerance; and grid computing. Prerequisite: CSS 343.
Instructor Course Description: Munehiro Fukuda

CSS 442 Object-Oriented Programming and Design (5) Zander
Topics include advanced programming methodologies for PC/workstation-based GUI applications and object-oriented modeling, programming, and design. Study and design applications in a large-scale team environment. Introduce design patterns. Prerequisite: CSS 343; CSS 370; may not be repeated.

CSS 443 Advanced Programming Methodologies (5) Sung
Examines programming methodologies, both theoretical and practical application aspects. From a theoretical aspect, explores approaches to analyzing and designing algorithms. In relation to practical applications, studies thread-based distributed application development. Prerequisite: CSS 343; may not be repeated.
Instructor Course Description: Kelvin H. Sung

CSS 448 Translation of Programming Languages (5) Zander
Introduction to the structures and organization of programming languages; fundamentals of translation; regular expressions and context-free grammars; syntax and lexical analysis, symbol tables, semantics and parsing, code generation; translation techniques such as LR, LL, and recursive descent. Prerequisite: CSS 343; may not be repeated.

CSS 450 Computer Graphics (5) Sung
Introduces the hardware devices, reviews the mathematics, and discusses the algorithms of computer graphics in 2-D space. Discusses basic computer graphics terminology, concepts, algorithms, and how to design and implement 2-D interactive computer graphics-related programs. Prerequisite: CSS 343; may not be repeated.
Instructor Course Description: Kelvin H. Sung

CSS 451 3-D Computer Graphics (5) Sung
Introduces practical and popular three-dimensional (3-D) graphic algorithms. Examines modeling (how to build 3-D objects), animation (how to describe the motion of objects), and rendering (how to generate images of 3-D objects in animation). Prerequisite: CSS 450; may not be repeated.
Instructor Course Description: Kelvin H. Sung

CSS 455 Introduction to Computational Science and Scientific Programming (5) Jackels
Introduction to principles and fundamental algorithms of scientific computing, including applied linear algebra and numerical methods. Group projects address current computational problems in the physical, biological, and life sciences. Prerequisite: either CSS 263, CSS 341 or CSS 342 which may be taken concurrently; may not be repeated.
Instructor Course Description: Charles F Jackels

CSS 457 Multimedia and Signal Computing (5) Stiber
How multimedia information is captured, represented, processed, communicated, and stored in computers. Topics include: physical properties of sound and images, digitization, digital signal processing, filtering, compression, JPEG and MPEG algorithms, and storage and network communication. Prerequisite: either CSS 263 or CSS 342; may not be repeated.
Instructor Course Description: Michael D Stiber

CSS 458 Fundamentals of Computer Simulation Theory and Application (5) Rasmussen
Covers all aspects of computer simulation including theory, implementation, and application. Presents real-life interdisciplinary examples. Final student project models a real-life situation with a computer simulation. Prerequisite: either CSS 263 or CSS 342; may not be repeated; recommended: statistics.

CSS 461 Software Project Management (5) Cioch
Fundamental skills required for effective software project management, including project planning and tracking and people management. Topics include risk analysis, project scope, scheduling, resource allocation, cost estimation, negotiation, monitoring and controlling schedule, software metrics, quality management, process improvement, staffing, leadership, motivation, and team building. Prerequisite: CSS 360; may not be repeated.

CSS 475 Database Systems (5)
Methods for obtaining requirements and designing database systems; differences between hierarchical, relational, and network database designs; techniques for designing and coding effective reporting procedures. Prerequisite: either CSS 263, CSS 341 or CSS 342; CSS 360; may not be repeated.

CSS 478 Usability and User-Centered Design (5) Liu
Application of human information processing models, theories and human-computer interaction principles for designing interactive systems. Emphasis is on how usability methods could be incorporated into the system design lifecycle. Topics include user survey, heuristic evaluation, task analysis and experimental testing. Prerequisite: CSS 360; may not be repeated.

CSS 480 Principles of Human-Computer Interaction (5) Liu
Examines fundamentals of human perception, human cognition, attention and memory constraints; role of user experience and intelligence; input and output devices; standards compliance; design of systems for individual versus collaborative work settings; rapid prototyping, user-centered design techniques, and design evaluation methods. Prerequisite: CSS 360; may not be repeated.

CSS 482 Expert Systems (5)
Theory and application of expert systems: computer systems that capture and use human expertise. Applications include computer configuration, fault diagnosis, computer-aided instruction, data interpretation, planning and prediction, and process control. Prerequisite: CSS 343; may not be repeated.
Instructor Course Description: Michael D Stiber

CSS 485 Introduction to Artificial Neural Networks (5) Stiber
Application of biological computing principles to machine problem solving. State of the art in artificial neural networks (ANNs), including vision, motor control, learning, data analysis. Topics include ANN architectures, algorithms: perceptrons, Widrow-Hoff, backpropagation, Hebbian networks. Prerequisite: CSS 343; may not be repeated; recommended: prior exposure to linear algebra, probability, and calculus.
Instructor Course Description: Michael D Stiber

CSS 487 Computer Vision (5) Olson
Methods for extracting content from digital images. Topics typically include linear filters, edge detection, segmentation, stereo vision, motion estimation, and object recognition: Examines applications of computer vision, such as image databases and robot navigation. Prerequisite: CSS 343.

CSS 490 Special Topics in Computing and Software Systems (1-5, max. 20)
Examines current topics and issues associated with computing and software systems. Offered: AWSpS.
Instructor Course Description: Alan Leong

CSS 496 Applied Computing Seminar (5)
Group seminar project requires software development and research project in applied computing. Objectives include: integrating minor or concentration with computing, reviewing professional literature, writing technical documents, and presenting project results to technologists/end-users. Prerequisite: CSS 301; CSS 343; CSS 350; CSS 360; CSS 421; three additional CSS courses.

CSS 497 Cooperative Education (1-10-, max. 10)
Completion of project as delineated in a contract between student, faculty advisor, and community sponsor. Prerequisite: CSS 350; CSS 370; CSS 422; CSS 430; two additional CSS courses.

CSS 498 Independent Study (1-5, max. 10)
Individual study by arrangement with instructor.

CSS 499 Undergraduate Research (1-5, max. 10)
Design and implementation of a research study as specified in a contract with a faculty member.

Information Engineering (CSSIE)

CSSIE 490 Special Topics in Information Engineering: (5)
Examines current topics and issues associated with information engineering.

Systems Analysis (CSSSA)

CSSSA 490 Special Topics in Systems Analysis (5, max. 15)
Examines current topics and issues associated with systems Analysis.