CIS Winter 2012 Courses
- CIS 110 Information Processing
- Integration of technology and information systems for creation, storage, and dissemination of information used in decision-making. Labs cover spreadsheets, Telnet, FTP, website creation tools.
- CIS 111 Web Programming
- Principles and practices of programming for the web using a scripting language: basic concepts of problem analysis, program design, implementation, and testing; web application architectures.
- CIS 122 Algorithms and Programming
- Introduction to problem solving, algorithm design, data structures, and programming using C++. Introduces techniques for program testing and debugging.
- CIS 170 Science of Computing
- An introduction to the essential concepts and ideas of computing: hardware, algorithms, programming and networks.
- CIS 199 Making and Breaking Codes
- Throughout recorded history, cryptographers (code makers) have been engaged in a fierce rivalry with cryptanalysts (code breakers), and the cracking of supposedly "unbreakable" codes has even changed the course of wars. Today, the demand for secure communication in the information age has further intensified the challenge to cryptographers: for electronic commerce, the means of encoding is usually public, yet only the authorized receiver knows the secret for decoding. This seminar will trace the history and structure of codes from ancient times through the present. Students will design codes of both classical and modern forms, challenging their classmates. They will also construct "public keys" for receiving messages that they alone can decode.
- CIS 210 Computer Science I
- Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
- CIS 211 Computer Science II
- Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
- CIS 313 Introduction to Data Structures
- Design and analysis of data structures as means of engineering efficient software; attention to data abstraction and encapsulation. Lists, trees, heaps, stacks, queues, dictionaries, priority queues.
- CIS 314 Intro to Computer Organization
- Introduction to computer organization and instruction-set architecture--digital logic design, binary arithmetic, design of central processing unit and memory, machine-level programming.
- CIS 323 Data Structures Lab
- Programming laboratory. Data structures and object-oriented implementation.
- CIS 330 C/C++ & Unix
- This course will be a "software tools" course, covering Unix, C++, and possibly Perl. The main goals are to
- help students learn to use programming languages and environments they will use in other CIS classes (and possibly later, after they graduate)
- give students a chance to work on several small programming projects, to help them gain more software development experience
- have fun learning new languages and software tools.
This course can be used as one of the upper division electives for CIS majors.
- CIS 407 Seminar on CIS Careers and Internships
- This seminar focuses on careers and internships for CIS students. It will cover resume preparation and polishing, interviewing skills, and will have talks by local companies on work environments, career choices, internship opportunities, and how best to prepare for a career in Computer Science. We will also read articles about the current job market and CS related job prospects.
- CIS 422/522 Software Methodology
- Technical and nontechnical aspects of software development, including specification, planning, design, development, management and maintenance of software projects. Student teams complete projects. Pre- or coreq: CIS 315.
- CIS 429/529 Computer Architecture
- RISC (reduced instruction-set computer) and CISC (complex instruction-set computer) design, storage hierarchies, high-performance processor design, pipelining, vector processing, networks, performance analysis.
- CIS 433/533 Computer & Network Security
- Computer networks, such as the Internet, enables different entities to exchange vast quantities of information and share remote resources. Unfortunately, networking also poses a danger by exposing individuals to various forms of network-based attacks, raising ever-growing concerns as computer networks become more common and more relied upon. This course will give an overview of network security issues, look at several most representative security problems, and discuss commonly practiced solutions.
- CIS 441/541 Intro Computer Graphics
- Introduction to the hardware, geometrical transforms, interaction techniques, and shape representation schemes that are important in interactive computer graphics. Programming assignments using contemporary graphics hardware and software systems.
- CIS 451/551 Database Processing
- Fundamental concepts of DBMS. Data modeling, relational models and normal forms. File organization and index structures. SQL, embedded SQL, and concurrency control.
- CIS 455/555 Computational Science
- Solving scientific problems with high-performance computers; algorithms, languages, and software used in scientific computing and visualization. Group projects on current research in physics, chemistry, biology, and other sciences.
- CIS 472/572 Machine Learning
- Machine learning is the field which concerns how to construct computer programs that automatically improve with experience. It has successful applications, such as to data mining, information retrieval, robotics and biomedical informatics.
The intent of this course is to present a broad introduction to machine learning and its established algorithms, including discussions of each of the major approaches currently being investigated. The topics include neural networks, decision trees, Bayesian learning, support vector machines, inductive logic programming, reinforcement learning and learning theory. One secondary goal is to discuss the connections between machine learning and other fields, such as AI, statistics, databases and Web.
- CIS 490/590 Computer Ethics
- Addresses ethical issues and social impacts of computing. Topics include crime, hacking, intellectual property, privacy, software reliability, employment, and worldwide networks.
- CIS 607 Computer Security in the Physical World
- From lockpicking to cyber-physical systems, from cell phones to radios and telescopes, this seminar will examine recent work in security that influcences a wide variety of physical world phenomena, sometimes in unexpected ways. We will focus primarily on papers from top security conferences that have explored these interactions.
- CIS 621 Algorithms and Complexity
- Design and analysis of algorithms, strategies for efficient algorithms, introduction to complexity theory including NP-completeness. CIS 420/520 strongly recommended.
- CIS 631 Parallel Processing
- Advanced topics in parallel processing including massively parallel computer architecture, supercomputers, parallelizing compiler technology, performance evaluation, parallel programming languages, parallel applications.
- CIS 632 Computer Networks
- Advanced issues in computer networks, focusing on research to extend the services offered by the Internet.
- CIT 382 Info Arch and Intranets
- Organization of information on the web and applications of Internet technology. Emphasis on planning, implementation, and issues that apply to building and maintaining business Intranets.
