This course provides students who are not computer science majors with an introduction to web programming. The course focuses on the design and development of web sites and applications, emphasizing problem solving, design, and deployment in the real world.
We’ll investigate how computer science, biology and math come together in Bioinformatics to impact our lives. We’ll study applications of Bioinformatics, such as CSI and gene therapy, including ethical concerns. We’ll use simple Bioinformatics tools and propose policy. No prerequisites.
An introduction to computer science for non-majors with little prior programming experience. Students develop programs using visual and high-level programming languages to control robots, create animated simulations, and build Internet and general applications. In addition, students are exposed to an overview of computing and its influence on modern society. Offered Fall and Spring.
Use of procedures, parameter passing, block structures, data types, arrays, abstract data structures, conditional control, iterative and recursive processes, and input/output in programming solutions to a variety of problems. Top-down and bottom-up design and functional decomposition to aid in the development of programs. Four hours lecture and two hours lab. Offered Fall and Spring.
Prerequisite: CS 110 (grade of C or better). Design and development of significantly sized software using top-down design and bottom-up implementation. Dynamically allocated data, object-oriented programming, architecture of memory, basics of language translation, and basics of algorithm analysis. Development of simple graphical user interfaces. Four hours lecture. Offered Fall and Spring.
Prerequisite: Basic Windows or Macintosh skills. First in a two-part series. Introduction to image design, manipulation and processing for utilization in print, on the web and photographically. Acquiring images through scanning, from the Web and other sources. Introduction to Adobe Photoshop tools and palettes. Use of Photoshop tool in image correction, development and collaging. Students develop a portfolio of images. Taught in lecture/lab format using Adobe Photoshop. Offered Fall/Spring.
Second in a two-part series. Introduction to image design, manipulation and processing for utilization in print, on the web and photographically. Painting, filling, and layering techniques. Masks, channels, electronic photo retouching, use of pen tool to create paths. Students develop a portfolio of images. Taught in lecture/lab format using Adobe Photoshop.
Basic word processing including the creation, editing, merging and printing of documents. Block operations, search and replace, spell checking, footnotes, headers/footers, and type styling. Taught in lecture/lab format with exercises selected from contemporary word processors such as Microsoft Word. Offered Fall and Spring.
Survey of desktop publishing systems and capabilities, including document import, layout, page formatting, zooming, printer and font setup. Enhancing publications through graphics; basic drawing tools; captions, logos, and photographs; cropping and panning techniques. Taught in lecture/lab format using Adobe Pagemaker.
Wrapping text around graphics. Adjusting text through manual kerning. Use of templates, style sheets, and clip art. Production of brochures, reports, journal articles, advertisements, newspapers, artistic works, books, etc. Taught in lecture/lab format using Adobe Pagemaker.
Learn to use Microsoft Excel as a spreadsheet tool to analyze and manage data. Topics: Windows Explorer, workbook window, menus, toolbars, commands, basic formulas, editing and formatting, simple functions, print options, opening/closing workbooks, worksheets, file management, numeric labels, values, date formats, serial dates, date calculation, mathematical operators, and relative versus absolute cell referencing. Taught in lecture/lab format using Microsoft Excel. Offered Fall/Spring.
Learn to use Microsoft Excel as a spreadsheet tool to analyze data using advanced features, functions and charts. This course prepares students for CSSV 153. Topics: Charts (pie, column, line, area, bar, combination, exploding, 3-D), data mapping, link workbooks, 3-D formulas, IF functions, Lookup functions (vertical and horizontal), inserting comments, color fonts and background, autoformat, lock, protect and hide data or worksheets. Taught in lecture/lab format using Microsoft Excel. Offered Fall/Spring.
Overview of the design of database management systems and issues in the design of a relational database schema. Introduction to database creation, editing, querying, and report generation using a commercial database system. Taught in lecture/lab format.
Application of basic principles to the design of relational databases: elimination of partial, transitive, and multivalued dependencies. Customized forms and reports. Importing and exporting data. Linking databases with the world-wide web. Taught in lecture/lab format.
Introduction to the Internet, web browsers, and e-mail. Procedures for accessing information on the web, including the use of search engines. Survey of major information sources. Taught in lecture/lab format. Offered Fall/Spring.
As Tim Berners-Lee originally conceived the World-Wide Web, it should be user oriented and driven. With Web 2.0, it is finally getting there. With this course you should be able to use and set up your own Web 2.0 facilities, such as blogs (weblogs), wikis (information communities), and combinations such as RSS, mashups, tagging, and social networking; appreciate and evaluate the range of modern interactive applications on the World Wide Web; find and explore innovative interactive sites; and imagine the advances coming on the Web. Lecture and lab combined. No programming experience required.
Planning, production, and implementation of computer-based multimedia presentations. Editing and formatting slides for individual and large-group presentations. Using ClipArt, WordArt, drawing tools and AutoShapes. Creating organization charts. Includes text, graphics, charts, tables, and templates. Involves individual student projects. Taught in lecture/lab format using PowerPoint software. Offered Fall/Spring.
Practical Series in Computer Science. This course focuses on computer animation using Adobe Flash. Students develop skills in animation including: drawing, painting, and creating text in Flash. Importing and modifying images fro illustrator, Photoshop, and other programs. Working with layers. Creating symbols. Using the library for storing images and movie clips. Shape and motion tweening. Traditional animation techniques. Use of timelines and keyframes. Using sound. Creating buttons. Involves individual student projects. Taught in lecture/lab format. Offered Fall/Spring.
Introduction to animated multimedia presentations. Designing productions using techniques combining graphics, animation, sound, clip art, and interactivity. Involves individual student projects. Taught in lecture/lab format using MacroMedia Director software or equivalent.
This is a hands-on, lab-based class, introducing the iPad as a tool for drawing, painting, animating —and writing, drawing and laying out a finished one-page comic story. Students will learn in a step-by-step manner how to use an array of the most current and professional iPad applications. Students create artwork throughout the class, supported by instruction in drawing and painting, bolstered by a comprehensive foundation in design and color theory.
Topics not covered by other CS curricular offerings. Students may register for this class in more than one semester. Consent of instructor required. Offered intermittently.
Three-dimensional virtual worlds created with the Virtual Reality Modeling Language (VRML) for use in worldwide web pages. Basic structures and adjustment of predefined simple and complex scenes. Survey of higher level tools for creating VRML worlds and other approaches to 3D web content. Taught in lecture/lab format using proprietary software and shareware.
Procedures used to construct three-dimensional computer graphics images; examples of 3D modeling paradigms (e.g., wireframe, functions, procedures); surface treatments (color, shading, texture and bump mapping); and rendering methods (raytracing, rasterization); demonstrations and hands-on model and 3D still-image creation. Taught in lecture/lab format using proprietary software and shareware. Offered every Spring.
First Year Seminars are designed and taught by faculty who have a special passion for the topic. All FYSeminars are small classes (16 students) that count toward the university Core. Many FYSeminars include enrichment activities such as excursions into the city or guest speakers. FYSeminars are only open to students in their first or second semester at USF, and students may only take one FYS, in either Fall or Spring. For a detailed description of this course, and other FYSeminars this semester, go to this webpage by cutting and pasting the link: http://www.usfca.edu/artsci/firstyearsem/
Advanced programming topics including inheritance and polymorphism, multi-threaded programming, networking, database programming, and web development. Techniques for debugging, refactoring, and reviewing code. Prerequisite: CS 112 (grade of C or better).
Introduction to the C programming language. Overview of parallel architectures. Programming shared and distributed memory parallel computers. Parallel program performance evaluations. Four hours lecture. Offered every Fall. Prerequisites: CS 110 (grade of B or better) and permission of instructor or CS 112 (grade of C or better).
Introduction to the C programming language and UNIX/Linux systems programming. Pointers in C, libraries, devices, processes, threads, system calls, memory management, and interprocess communication with sockets. Prerequisite: CS 110.
Prerequisites: CS 112 (grade of C or better) and MATH 201 (grade of C or better). Algorithm analysis and asymptotic running time calculations. Algorithm design techniques and implementation details. Algorithms for sorting and searching, trees, graphs, and other selected topics. Four hours lecture. Offered every Spring.
Prerequisites: CS 220 or 221 (grade of C or better). Performance analysis techniques, instruction set design, computer arithmetic, digital design, processor implementation, and memory systems. Performance enhancement using pipelining and cache memory. Four hours lecture and two hours lab. Offered every Spring.
Prerequisites: CS 220 (grade of C or better) and CS 245 (grade of C or better). The design and implementation of operating systems. Study of processes, threads, scheduling, synchronization, interprocess communication, device drivers, memory management, and file systems. Four hours lecture and two hour lab. Offered every Fall.
Prerequisites: CS 112 (grade of C or better) and CS 245 (grade of C or better).Data modeling, record storage, and file organization; database theory; relational, hierarchical, and network models; database management systems and query languages, programming language interfaces to databases; web-based client-server development. Four hours lecture.
Prerequisites: CS 112 (grade of C or better); CS 245 recommended. Current methods and practices in the use of computer networks to enable communication. Physical and architectural elements, and layered models of networks. Communication protocols and associated algorithms; local and wide area networks; network security. Four hours lecture.
Prerequisites: CS 112 (grade of C or better); CS 245 (grade of C or better). Syntax, semantics, concepts, capabilities, and implementation details of several different programming languages, including imperative, functional, object oriented, and logical languages. Comparative advantages and disadvantages of different languages and paradigms. Four hours lecture. Offered every Fall.
Introduces students to the field of data visualization. Covers basic design and evaluation principles, how to acquire, parse, and analyze large datasets, and standard visualization techniques for different types of data. Utilizes the Processing programming language and environment for rapid visualization prototyping. Prerequisite: CS 212 (grade of C or better).
In this course, students will explore an area of research in Computer Science by reading academic papers; independently learning tools and technologies related to the area; presenting research findings; leading tutorials on relevant tools; and participating in group discussion.
Weekly colloquium and discussion session on current developments in various aspects of computer science. Students may register for this course in more than one semester. Majors must take this course at least twice. One hour lecture. Offered Fall and Spring. Prerequisite: CS 112 with a grade of C or better.
Written permission of the instructor, chairperson, and dean is required.
Prerequisites: MATH 201 (grade of C or better) and MATH 202 (grade of C or better). Finite state automata with bounded and unbounded memory. Regular languages and expressions. Context-free languages and grammars. Push-down automata and Turing machines. Undecidable languages. P versus NP problems and NP-completeness. Four hours lecture. Offered every Fall.
Prerequisites: CS 245 (grade of C or better); CS 345 recommended and CS 411 recommended. Lexical analysis, parsing, semantic analysis, and code generation. Optimization techniques. Compiler design tools and compiler compilers. Four hours lecture. Offered every Spring.
Prerequisites: CS 112 (grade of C or better) and MATH 202 (grade of C or better), or permission of instructor. Theory and production of interactive computer graphics. Topics chosen from graphics programming and algorithms, modeling, rendering, ray-tracing, and animation. Four hours lecture.
Study of the design and implementation of 3D Computer Games. Topics include 3D Modeling and Texturing, 3D Math (including rotational and trannslational matricies and quaternions), collision detection, physics engines, and 3D Graphics engines. Prerequisites: CS 245 with a minimum grade of C and CS 212 with a minimum grade of C
Overview of techniques for gathering, exploring, transforming, modeling, and summarizing data sets including very large data sets, both structured and unstructured. Modeling approaches include techniques from supervised and unsupervised machine learning. Discussion of data cleaning and data preparation issues, including noise, missing and unbalanced data, discrete versus continuous features, and feature selection. Some techniques are implemented from scratch, while in other cases real-world tools such as R, Weka, or Python packages are applied to large-scale data sets.
Prerequisite: MATH 201 (grade of C or better), or permission of instructor. Propositional and predicate calculus, syntax and semantics, formal theories, logic programming, lambda calculus. Applications of logic to computer science and mathematics. Four hours lecture.
Prerequisite: CS 112 (grade of C or better), or permission of instructor. Computer and network security measures; encryption protocols. Ethical theory and applications in computing. Seminar discussion on value systems, social impact, and human factors, and about use and misuse of computers. Four hours lecture.
Prerequisite: CS 212 (grade of C or better) and senior standing. Students working in teams investigate, specify, design, implement, test, document, and present to their classmates a significant software project. Sound software engineering practicies are presented in lectures and used to evaluate each stage of the project. Written and verbal communication is emphasized through frequent documentation submissions, informal group discussions, code walk-throughs, and student presentations. With the instructor's permission, the course may be repeated for credit. Four hours lecture. Offered Fall and Spring.