Courses

Given the importance of computational thinking in everyday life, the department encourages students from all majors to take courses in computer science. Each of the course offerings are open to all students provided the stated prerequisites are satisfied.

CMSI 160 Algorithms and Applications in Engineering

The development of algorithms for the computer solution of engineering problems and their implementation in MATLAB.
  • Units: 3

CMSI 161 Computing in the Popular Culture

 NOT FREQUENTLY OFFERED  Common stereotypes and assumptions about computing, as reflected in art, entertainment, and conventional wisdom — and the truths and fallacies behind them. Deeper study of particularly seminal popular representations of computing concepts. Critical study of the depiction of computing in film (e.g., 2001The MatrixWar Games), literature (e.g.,NeuromancerI RobotSoul of a New MachineThe Hitchhiker's Guide to the Galaxy), and mixed media (e.g., Spock's BrainMax Headroom, and Univac's 1952 presidential election forecast).
  • Units: 3

CMSI 163 The Internet for Smart but Busy People

 NOT FREQUENTLY OFFERED  An overview of the structure and operation of the global Internet. Basic mechanisms: addressing, routing, caching, and the domain name system (DNS). Physical media: Ethernet, WiFi, and cell networks. Popular protocols: e-mail, web, chat, file transfer, and shells. Troubleshooting: ping, traceroute, and dig.

  • Units: 3

CMSI 182 Great Ideas in Computer Science

History of computer science and its relationship to other fields. The benefits of computational thinking in daily life. Numerous examples connecting computing and computing technology to human activities, such as sporting events, elections, politics, and health care. Coursework includes small-scale programming.

  • Core: Satisfies the old core requirement for Science and Technology
  • Units: 3
  • Recent offeringsDr. Dorin | Dr. Dionisio

CMSI 183 From Puzzles to Programs

A puzzle-based introduction to some of the key ideas that have emerged from the study and practice of computation. Superset of topics: Alternate Dice and Map Coloring (brute-force search); Decanter Puzzles and Sun-Tzu's Puzzle (finite state machines); Clock Puzzle (discrete simulation); Birthday Paradox (randomized estimation); Making Change, Hidden-Word Puzzles, and Thief's Dilemma (dynamic programming); Egg Puzzle (sieves); How to Count on your Fingers (binary numbers); Multiplication without Tables (Computer Arithmetic); Towers of Hanoi (recursion); Eight Queens (backtracking); Anagrams (tries); Prisoners and Switches (semaphores); Love in Kleptopia (public-key cryptography); What’s the Best Move? (alpha-beta search); BattleBots (Mindstorms NXT programming); How to Detect a Cyborg (Turing test); Sudoku (proof by contradiction); The Game of Tag (undecidability); Traveling Salesman Puzzles (intractability); Dividing the Ham (fair division).
  • Note: Offered as CMSI 198 in fall, 2013
  • Core: Quantitative Reasoning (FQTR)
  • Units: 3

CMSI 185 Computer Programming

Foundational course that emphasizes problem solving and computer programming (using Java, JavaScript, or Python), but which also touches on computer architecture, interpretation vs. translation, elementary sorts, recursion vs. iteration, algorithm paradigms, complexity, and intractability.
  • Note: Intended as the first course for CMSI majors, but open to anyone interested in programming
  • Core: Mathematical Reasoning (FQTR)
  • Units: 3
  • Recent offeringsDr. Dorin | Dr. Toal

CMSI 186 Programming Laboratory

Apprenticeship-styled workshop in Java or JavaScript programming, loosely structured around the notion of algorithm paradigms, treating one medium-sized application every two weeks in a laboratory setting. Typical projects include discrete simulation, randomized estimation, maze solving, dynamic programming, large-number arithmetic, and numerical methods.
  • Units: 3
  • Prerequisite: A grade of C (2.0) or better in CMSI 185, or approval of instructor
  • Recent offeringsDr. Dorin | Dr. Dionisio

CMSI 260 Database Applications

 NOT FREQUENTLY OFFERED  The application-level use of database management systems. Introductions to database design, the relational database model, document-oriented databases and other NoSQL systems, and query langauges. Manual and programmatic interfaces to databases.

  • Units: 3

CMSI 261 Language, Thought, and Computation

A study of the philosophical and epistemological roots of computer science, covering language, thought, logic, cognition, computation, the Church-Turing thesis, computer programming, and artificial intelligence. Mathematical models of knowledge, learning, consciousness, and self-awareness. Structural and statistical foundations of human language. Holism, reductionism, Zen, and dualism.

CMSI 262 Computational Systems in Nature

 NOT FREQUENTLY OFFERED  A study of natural systems exhibiting computational processes, with examples from biology, finance, and astronomy. The fractal geometry of nature. Introduction to chaos and dynamic systems. Non-traditional computing devices, including DNA computers and Quantum computers.
  • Units: 3

CMSI 263 Socio(patho)logy of Living Online

A study of virtual worlds. Topics include both the intra- and interpersonal behaviors of avatars, and the technical basis for constructing and scripting these worlds.
  • Units: 3

CMSI 264 Cryptography and Cryptanalysis

Survey of the basic principles and methods of both classical and modern cryptology, and the historical context in which these systems have arisen. Secret key and public key encryption and decryption. Random number generation. Hashes. Digital Signatures. Cryptanalysis.

  • Units: 3
  • Prerequisite: MATH 101, 102, or 154, or placement into MATH 106 or higher

CMSI 265 Elements of Computer Music

Key concepts, technologies, and history at the juncture of computation and music, including sound synthesis, sampling, and sequencing. Explorations of computational aspects of music theory, with applications in machine composition, transcription, and performance.
  • Units: 3

CMSI 266 Electronic Markets

Study of the convergence of markets, fair division, and dispute resolution with modern information technologies. Topics include: utility theory; formal definitions for fairness; algorithms for proportional, strong, and envy-free division; complexity of cake-cutting algorithms; unequal shares; indivisible goods; impossibility theorems; auctions and elections; electronic markets vs. electronic commerce; pari mutuel wagering and modern wagering websites; efficient market hypothesis; introduction to price theory; prediction markets and IEM (Iowa Electronic Markets); securities exchanges and NASDAQ; online auction markets and eBay; architecture and implementation; scalability and security; legal issues; future directions.
  • Units: 3

CMSI 268 Natural Language Understanding and Translation

 NOT FREQUENTLY OFFERED  An overview of the syntactic and semantic models of natural languages and heuristics for language understanding and translation. Roles of syntax, semantics and pragmatics in human language processing by computers. Natural language generators and parsers, inference, conceptual analysis, and discourse processing. Special attention is paid to ambiguity, irony, metaphor, and idiomatic usage. Students will critique translation systems created since the 1940s. The role of statistical NLP will be explored in detail.

  • Units: 3

CMSI 270 Modern Web Apps

Introduction to dynamic web app development using HTML, CSS, and JavaScript, including multi-page vs single page architectures, modern layout techniques, sophisticated visuals and animation without the use of image processing or third-party tools, in-browser element inspection and debugging, multitouch interaction, and motion-sensitive web pages. Supplementary topics cover the history of the web, current W3C standards and validation, accessibility, design considerations for desktops, tablets, mobile, and print, and the separation of content, presentation, and interaction. No prior programming training needed.

CMSI 272 Geographic Information Systems

CMSI 275 New Media

Creation and development of interdisciplinary new media projects integrating ideas from interactive narratives, drama management, artificial intelligence, storytelling, and graphics. Coordination among student teams from various backgrounds performing such tasks as usability analysis, detailed design, script writing, video and audio production, graphic art production, authoring, program engine development, media integration, packaging, marketing, and distribution.

  • Note: The course stresses collaboration between students in computer science, film, studio arts, screenwriting, management, marketing, and other fields
  • Units: 3

CMSI 281 Data Structures

Specification and design of data types, information structures, and algorithms. Collection classes and interfaces for sets, lists, stacks, queues, hierarchies, and dictionaries. Implementation techniques such as arrays, linked lists, and efficient tree structures. Introduction to computational complexity. Recursion. Sorting. Hashing.
  • Units: 3
  • Prerequisite: A grade of C (2.0) or better in CMSI 185
  • Recent offeringsDr. Toal | Dr. Dorin

CMSI 282 Algorithms

The study of algorithm paradigms, such as divide-and-conquer, greedy methods, dynamic programming, and randomization, with an emphasis on combinatorial search. Modern heuristics, such as genetic programs and simulated annealing. String problems, including matching and longest common subsequence. Advanced sorts and order statistics. Algorithms for cake-cutting and fair division. Generating combinatorial objects (permutations, combinations, subsets, partitions). Graph algorithms. Computational geometry. Recurrences and the Master Theorem.

CMSI 284 Systems Programming

An introduction to the basic organization of computer systems. Digital representation of textual and numeric information. Machine instructions and instruction formats, assemblers and assembly languages, linking and loading, process execution, interrupt and device-handling, and file management. System-level programming in C and assembly language.

  • Core: Quantitative Reasoning Flag (LQTR)
  • Units: 3
  • Prerequisite: CMSI 281 recommended
  • Recent offeringsDr. Toal

CMSI 292 Programming Ethics

Issues and concepts of ethical responsibility in software design and production. Risk analysis. Cyberwarfare. Analysis of software failures.

  • Units: 3

CMSI 299 Independent Studies

Sophomore-level course arranged by agreement between the student and a supervising faculty member. See the university bulletin for requirements regarding independent studies courses.

  • Units: 1-4
  • Examples and GuidelinesDr. Toal

CMSI 353 Information Retrieval

 NOT FREQUENTLY OFFERED  The study of the logical and physical organization of data stores for efficient update and retrieval. Search engines and data warehouses. Key-value stores, column, document, and graph databases. Data modeling. String similarity and synonyms. Semantic retrieval.  Dealing with unstructured content.  Stop words, stemming, and lemmatization. Search engine optimization (SEO) and monetization.

  • Units: 3
  • Prerequisite: CMSI 281

CMSI 355 Networks and Internets

A detailed study of the design and use of network and internet technologies in modern digital communication systems. Topics include physical networking components, packets and virtual circuits, routing and control protocols, signaling, multicasting, OSI 7-layer model sockets, IPv4, IPv6, UDP, TCP, ARP, ICMP, IGMP, Mobile IP, DNS, SMTP, FTP, VoIP, and HTTP.

  • Units: 3
  • Prerequisite: CMSI 284

CMSI 361 Computational Biology

Mathematical and computational models for biological systems, with applications in simulation, validation, and prediction. The ultimate goal of such models is to replicate an organism’s state and behavior. The course introduces current techniques behind such models and seeks to apply these techniques in new subsystems and species.
  • Units: 3

CMSI 367 Biological Databases

The representation, storage, and transformation of biological data. Topics include the central dogma of molecular biology, the genetic code, the Human Genome Project, sequence databases, formats and conversion, searching and regular expressions, XML and relational databases in biology. Students build and potentially release an open source gene database for a new species at the end of the course.

  • Units: 3
  • Cross listing: BIOL 367
  • Recent offeringsDr. Dionisio

CMSI 368 Computational Linguistics

 NOT FREQUENTLY OFFERED  The mathematical theory of language and its applications. Computer analysis of morphology, syntax, semantics (including logical representations and anaphora resolution), and discourse. Computer generation of text and speech. The course covers both classical and modern (probabilistic) approaches to analysis.

  • Units: 3

CMSI 370 Interaction Design

Introduction to interaction design and human-computer interaction, with equal emphasis on learning how to design and evaluate interaction architectures, and learning how to use existing frameworks to implement such architectures. Topics include: interaction guidelines, principles, and theories; usability engineering; the model-view-controller (MVC) paradigm; and current frameworks such as HTML5, GLUT, and Cocoa.
  • Core: Understanding Human Behavior (EHBV), Writing Flag (LWRT)
  • Units: 3
  • Prerequisite: CMSI 281
  • Recent offeringsDr. Dionisio

CMSI 371 Computer Graphics

Introduction to interactive computer graphics. Topics include the design and use of three-dimensional graphics engines and APIs, animation, physics and computer games, modeling, computational geometry, shading, ray tracing, and fractal geometry.
  • Core: Creative Experience (ECRE), Quantitative Reasoning Flag (LQTR)
  • Units: 3
  • Prerequisite: CMSI 281
  • Recent offeringsDr. Dionisio | Dr. Toal

CMSI 375 Game Design

The art and science of games, hosted by a machine or otherwise. Goals, rules, game balance, and other fundamentals are introduced, as well as implementation issues such as modeling, physics, animation, networking, and performance. Coverage of existing gaming platforms and languages in provided as needed. Concepts are applied in an appropriately scaled, team-implemented game project.
  • Units: 3
  • Recent Offerings: Mr. Morgan

CMSI 377 Introduction to Virtual Worlds

An introduction to the history of, and the technological and social aspects surrounding, virtual worlds. Topics include building and scripting objects, and the interaction between avatars, avatar customization, and computer science concepts underlying virtual worlds.
  • Units: 3
  • Cross listing: PSYC 398
  • Recent offeringsDr. Dionisio

CMSI 385 Theory of Computation

Introduction to the classical theory of computation, including finite automata, Turing machines, and stack machines; formal grammars; intractability, and undecidability.

  • Units: 3
  • Prerequisites: CMSI 282, MATH 248
  • Cross listing: May be cross-listed with a math class in the future
  • Recent offerings: Dr. Dorin

CMSI 386 Programming Language Concepts

A comparative study of the rationale, concepts, design, and features of several major programming languages. Topics include the role of bindings, control flow, types, subroutines, modules, objects, and concurrency. Major attention is given to C and C++, Java, Go or Scala, Python or Ruby, and JavaScript, though examples are drawn from over a dozen languages, including esoteric ones.
  • Units: 3
  • Prerequisite: CMSI 284
  • Recent offeringsDr. Toal

CMSI 387 Operating Systems

Concepts in the design of operating systems, including processes, process management, mutual exclusion, synchronization and message-passing, primary memory management, multiprogramming, paged allocation and paging policies, resource and I/O management, file systems, and security. Major emphasis is placed on Unix and Windows-based architectures and C-language system programming.

  • Core: Information Literacy Flag (LINL)
  • Units: 3
  • Prerequisite: CMSI 284
  • Recent offeringsDr. Dionisio

CMSI 390 Computing Internship

Credit awarded for (1) preparing supporting documentation for actual internships taken, or (2) participating in an individual or group directed research project resulting in a project or paper that is presented at a conference or university-sanctioned event.

  • Units: 1-2
  • Note: May be repeated for credit

CMSI 395 Enterprise Production Practicum

The design, construction, and management of an online information system. Experience will be gained producing an in-use system with emphasis on stability and usability for the target audience.

  • Units: 1-3
  • Prerequisite: Consent of Instructor
  • Note: This course may be repeated for up to 3 semester hours of credit

CMSI 399 Independent Studies

Junior-level course arranged by agreement between the student and a supervising faculty member. See the university bulletin for requirements regarding independent studies courses.

  • Units: 1-4
  • Examples and GuidelinesDr. Toal

CMSI 401 Software Engineering Laboratory

Principles of the construction of large-scale distributed software systems, including languages and tools to facilitate and manage such products, and the human factors in their production. Students conceive, model, implement, deploy, document, and present a large project built using an agile development methodology.  Clean code and architecture videos, guest speakers, and code jams enhance the course experience.  The project is built in a public source code repository and students present to a large audience of faculty, administrators, alumni, friends, and family at the end of the course.

  • Core: Engaged Learning Flag (LENL)
  • Units: 3
  • Prerequisite: Consent of Instructor
  • Recent offeringsDr. Toal

CMSI 402 Senior Thesis

Authorship and presentation of a paper, backed by the conception, design, and construction of a software project demonstrating mastery of the computer science curriculum.

  • Units: 4
  • Prerequisite: Consent of Instructor
  • Recent offeringsDr. Dorin

CMSI 461: Multimedia Design

 NO LONGER OFFERED  Multimedia program development, including project concept, audience analysis, needs analysis, creative and visual treatments, interface design, media formats, authoring languages, and multimedia project management. A project requires that students design a multimedia program leading to a proof-of-concept prototype.

  • Units: 3
  • Prerequisite: Consent of Instructor

CMSI 462 Multimedia Production

 NO LONGER OFFERED  Production of medium to large-scale multimedia programs including usability analysis, detailed design, script writing, media production, audio production, graphics production, authoring, program engine development, media integration, packaging, marketing, and duplication. A project requires that students produce a multimedia program leading to a web site or DVD distribution.

  • Units: 3
  • Prerequisite: CMSI 461

CMSI 483 Computational Complexity

 NOT FREQUENTLY OFFERED  Introduction to the study of computational complexity, including efficient algorithms for matrix multiplication and fast Fourier transforms, the classes P and NP, approximation algorithms, randomized algorithms and RP, parallel algorithms and NC.

  • Units: 3
  • Prerequisites: CMSI 282, 385
  • Note: Typically given as a Independent Studies topic.  Contact Dr. Dorin for details.

CMSI 484 Mechanical Theorem Proving

 NOT FREQUENTLY OFFERED  Theory and practice of the construction of software agents capable of proving theorems as well as discovering new ones. Case studies include Isabelle, ACL2, HOL, and Coq.

  • Units: 3
  • Prerequisite: MATH 248
  • Note: Typically given as a Independent Studies topic.  Contact Dr. Toal for details.

CMSI 485 Artificial Intelligence

Introduction to the fundamental concepts behind the implementation of human-level intelligence in computer systems. Topics include agent architectures, problem-solving methods, heuristic search, game playing, knowledge representation, symbolic reasoning, computational models of virtual humans, and machine learning.

  • Core: Information Literacy Flag (LINL)
  • Units: 3
  • Prerequisites: CMSI 385, 386
  • Recent offeringsDr. Toal | Dr. August

CMSI 486 Introduction to Database Systems

Theory and design of database systems, with emphasis on relational and document models. Topics include database system structure, semantic data modeling, relational databases and their object-oriented extensions, object relational modeling (ORM), document-store and key-value databases, formal query languages, integrity and security, physical database design, indexing and hashing, query processing, and optimization. Transaction processing, concurrency, and crash recovery are introduced.

CMSI 488 Language Translation

Introduction to the theory and design of translators and interpreters for high-level computer programming languages. Topics include programming language specification, scanner construction, parser construction, intermediate representations, virtual machines, code generation, and optimization. Comparisons between computer and natural language translations are also covered.

  • Units: 4
  • Prerequisites: CMSI 385, 386
  • Recent offeringsDr. Toal

CMSI 490 Great Writings in Computing

Readings and discussion of classic papers, essays, and monographs.

  • Units: 1-3

CMSI 499: Independent Studies

Senior-level course arranged by agreement between the student and a supervising faculty member. See the university bulletin for requirements regarding independent studies courses.

  • Units: 1-4
  • Examples and GuidelinesDr. Toal

CMSI 601 Graduate Thesis

Project-based seminar in which students will be required to select, research, document, and discuss some aspect of a broad area of current interest to computer scientists and electrical engineers (e.g., computer networks, digital communication).

  • Units: 3
  • Prerequisites: Successful completion of coursework and the endorsement of the faculty advisor. (The course can be taken during the final semester of coursework subject to the approval of the faculty advisor.)
  • Recent offeringsDr. August

CMSI 641 Software Engineering

Design and development issues of large-scale software systems which are reliable and easily maintainable. A course project covers each step of the development process from the initial needs analysis and requirements specification through design and implementation. Topics include tradeoffs between agile and traditional approaches, the impact of legacy systems, architectural representation issues, testing, project risk management, and emerging trends in software engineering such as model-driven engineering and aspect-oriented software development.

  • Units: 3
  • Prerequisite: CMSI 386 or equivalent
  • Recent offeringsDr. August

CMSI 644 Advanced Modeling of Software Systems

Study of model-driven engineering and its ability to alleviate platform complexity and effectively express domain concepts. Topics include techniques for designing, implementing, and maintaining robust software systems; the Unified Modeling Language (UML) and entity relationship modeling; automation of change evolution in models; and definition of standards that enable tools and models to work together.

CMSI 655 Internet Technologies

Study of the basic architecture, protocols and services of the global Internet. Topics include: internetworking principles, the TCP/IP protocol suite, socket-level programming, DNS, MIME, HTTP, FTP, and POP; data interchange formats such as XML and JSON; web programming with HTML, CSS, JavaScript and web server extensions; the design of database-backed systems, middleware, scalability and security.

  • Units: 3
  • Prerequisite: CMSI 284 or equivalent
  • Recent offeringsDr. Toal

CMSI 670 Topics in Interaction Design

Interaction design and human-computer interaction, with equal emphasis on learning how to design and evaluate interaction architectures and learning how to survey and analyze current literature to implement such architectures. Topics include interaction guidelines, principles, and theories; usability engineering; the model-view-controller (MVC) paradigm; and current research in the field.

CMSI 671 Computer Graphics

Topics in computer graphics, including: architecture of raster display systems, interactive computer graphics, object modeling, transformations, synthetic image generation, animation, image processing, and shaders, with examples from OpenGL.

  • Units: 3
  • Prerequisite: CMSI 281 or equivalent
  • Recent offeringsDr. Dionisio

CMSI 673 Distributed Systems

Study of paradigms and languages for concurrent and distributed computing. Topics include concurrent programming foundations; shared memory, locks, atoms, and software transactional memory; processes and threads, networks, peer-to-peer systems, remote procedure calls and method invocation, text and binary remoting protocols, real-time issues distributed systems, and third party authentication and authorization.

  • Units: 3
  • Prerequisite: CMSI 284 or equivalent
  • Recent offeringsDr. Toal

CMSI 674 Topics in Operating Systems

Topics include concepts and design issues in distributed operating systems and Unix implementation.

  • Units: 3
  • Prerequisite: CMSI 387 or equivalent

CMSI 675 Declarative Programming Languages

 NOT FREQUENTLY OFFERED  A survey of theoretical foundations and computer languages for functional and logic programming, with examples from LISP, Scheme, Haskell, ML, Clojure, F#, SQL, XSLT, Prolog, and Scala.

  • Units: 3
  • Prerequisite: CMSI 386 or equivalent

CMSI 676 Scripting Languages

A survey of a number of scripting languages, with a focus on the differences between scripting languages and traditional programming languages. Topics include static versus dynamic language features, client and server-side scripting for the web, job control, plugins, shell scripting, and rapid development.

  • Units: 3
  • Prerequisite: CMSI 386 or equivalent
  • Recent offeringsDr. Toal

CMSI 677 Artificial Intelligence

Introduction to the fundamental concepts behind the implementation of human-level intelligence in computer systems. Topics include agent architectures, problem-solving methods, heuristic search, game playing, knowledge representation, frames, inheritance and common-sense reasoning, neural networks, genetic algorithms, conceptual clustering and current research in the field.

  • Units: 3
  • Prerequisite: CMSI 385 or equivalent, or consent of the instructor
  • Recent offeringsDr. August

CMSI 678 Multi-Agent Distributed Intelligent Systems

Study of the development of multi-agent systems for distributed artificial intelligence. Topics include intelligent agents, multi-agent systems, agent societies, problem solving, search, decision-making, and learning algorithms in the distributed Artificial Intelligence domain, industrial and practical applications of distributed artificial intelligence techniques to real-world problems.

CMSI 682 Knowledge-Based Systems

Detailed study of design and implementation of knowledge-based systems. Topics include: logic and theorem proving; deduction systems; reaction systems; forward and backward chaining; knowledge acquisition; and explanatory interfaces.

CMSI 685 Natural Language Systems

Role of syntax, semantics and pragmatics in human language processing by computers. Topics include: natural language generators and parsers; inference, conceptual analysis; and discourse processing.

  • Units: 3
  • Prerequisite: CMSI 677 or consent of instructor

CMSI 686 Database Systems

Fundamental concepts in the field of database technology. Topics include a review of database system structure, semantic data modeling, relational, document, key-value, object-oriented, and graph databases, formal query languages, integrity, normalization, security, physical database design, indexing and hashing, query processing and optimization, transaction processing, concurrency, crash recovery, and current research in the field.

  • Units: 3
  • Prerequisite: CMSI 387 or equivalent
  • Recent offeringsDr. August

CMSI 687 Topics in Theoretical Computer Science

Topics from: Computational complexity; theory of formal languages; program schemes, recursion schemes; discrete developmental systems. (May be repeated for credit.)

  • Units: 3
  • Prerequisite: CMSI 385 or consent of instructor

CMSI 688 Object Oriented Analysis and Design

Study of object-oriented philosophy and its applications in software architecture and programming languages. Topics include: object-oriented design, abstraction, inheritance, polymorphism, component models and design patterns.

CMSI 689 Computer Networks

Concepts in and design of large-scale distributed networks and local area networks, including topologies, standards and protocols.

  • Units: 3
  • Cross listing: ELEC 687

CMSI 698 Special Studies

Experimental, trial, or one-off course offerings will be given the 698 designation.

CMSI 699 Independent Studies

Special study areas defined by a student in cooperation with a faculty member and approved by the Department Chairperson. A maximum of two such courses may be applied towards the Master’s degree. A student wishing to enroll during a given term must submit a proposal to the concerned faculty member at least one month prior to the beginning of that term.