Foundation Requirements
The foundation requirements are not required for admission to the graduate program, but must be completed while at USF to achieve regular status as a graduate student. The foundation requirements can be waived if met by previous studies or work experience equivalent to the requirements:
- Introductory programming (two courses)
- Upper-division programming (one course)
- Discrete math (one course)
- Data structures (one course)
If an applicant believes that they may have fulfilled these requirements by previous study or experience, please attach a statement to the application form with a descriptive explanation.
Required Graduate Courses
Web Systems and Algorithms
Survey of Internet systems
research including the anatomy of the web, search engine architecture
and algorithms, information retrieval, crawling, text analysis,
personalization and context, collaborative environments, and the
semantic web.
Network Programming
Network application
programming. Upper-layer protocols and their interfaces. Topics to be
chosen from: TCP/IP, sockets, remote procedure calls, network
management, client/server programming, internet protocols (FTP, SMTP,
HTTP, and SNMP), higher-level interoperability (CORBA), performance
issues, and security. Project required. Four hours lecture.
Distributed Software Development
Internet application
development, including server-side technologies such as scripting
languages, template frameworks, web page mining, and distributed
computing issues such as peer-to-peer, multi-cast, and distributed
agents.
Artificial Intelligence Programming
Use of artificial intelligence
techniques to solve large scale problems. Search strategies, knowledge
representation, and other topics chosen from: simulated annealing,
constraint satisfaction, logical and probabilistic reasoning, machine
learning, expert systems, natural language processing, neural networks,
genetic algorithms, and fuzzy logic. Both theoretical foundations and
practical applications will be covered. Coursework includes written
assignments and programming projects. Four hours lecture.
Master's Project (two semesters)
At the discretion of the
instructor, the project will be either a sponsored project for a
commercial concern or or other institution or a research project. In
either case, the project will result in the specification, design, and
development of a significant software system with full documentation, an
oral presentation to the university community, and a written report.
Four hours lecture. Offered every semester.
Computer Security and Privacy
Learn the basics of computer
security and the details of important network security protocols such as
SSL/TLS. Topics include: symmetric key cryptography, public key
cryptography, secure hash, wireless security, spam filtering, biometric.
Elective Courses (two elective courses required)
Programming Languages
Study of the design and
implementation of software development languages. Topics chosen from:
syntax, semantics, translation, run-time systems, advanced programming
techniques, and debugging. Language families to be chosen include:
functional, logic, visual, formal specification, design, pattern,
database, and concurrent. Project required. Four hours lecture.
Algorithms
Study of the design and
implementation of software development languages. Topics chosen from:
syntax, semantics, translation, run-time systems, advanced programming
techniques, and debugging. Language families to be chosen include:
functional, logic, visual, formal specification, design, pattern,
database, and concurrent. Project required. Four hours lecture.
Directed Reading and Research (1-4 units)
Written permission of the instructor, graduate program coordinator and dean is required.
Master's Project
All students in the Web Science program undertake a Master's project. The project can be either a sponsored project for a commercial concern or other institution or a research project. In either case, the project will result in the specification, design and development of a significant software system.