Saint Louis University 1-800-SLU-FOR-U
Home News and Info Search WebSTAR Contact SLU SLU Links
Math & CS Home
Faculty
Undergraduate Math
Undergraduate CS
Graduate Program
Course Schedule
Research Groups
Seminars
Teaching Resources
Math & CS Club


Computer Science Catalog Course Descriptions 

Lower Division Courses

  • CSCI 105: Computing and Society (3). Ethical, social, legal, and economic issues as they relate to the computer science profession; ethical theory; history of computing; impact of computers on society; computer professional's code of ethics; information privacy; information reliability; computer laws, crimes, and punishments; intellectual property; ethical concerns relating from emerging technologies.
  • CSCI 110: Human-Computer Interaction (3). A SLU2000 freshman seminar. Prerequisite: Three years high school math. Introduction to the design, implementation, and evaluation of software user interfaces. Development of web-based multimedia applications using HTML and JavaScript. Security and encryption issues. Internationalization and localization. Offered occasionally.
  • CSCI 111: Introduction to Computer Programming with Fortran 90 (3). Prerequisite: MATH 120 or equivalent. Use of computers as problem-solving tools; construction and implementation of algorithms in the FORTRAN programming language; decision structures, loops, arrays, and modular, structured programming techniques. Assignments cover a range of scientific and engineering applications. Credit will not be given for both CSCI 111 and CSCI 145 or CSCI 150. Spring semester.
  • CSCI 112: Web Development (3). Prerequisite: MATH 120 or equivalent. Teaches students some fundamental Web development and computer programming skills. Covers basics of Web page design with HTML and JavaScript computer languages.
  • CSCI 140: Introduction to Computer Science (3). A SLU2000 freshman seminar. Prerequisite: Three years high school math. A broad survey of the computer science discipline, focusing on the computer's role in representing, storing, manipulating, organizing and communicating information. Topics include hardware, software, algorithms, operating systems, networks. Note: this class may be taken concurrently with CSCI 150.
  • CSCI 145: Scientific Programming (3). Corequisite: MT A142 or MT A132.  Elementary computer programming concepts   with an emphasis on problem solving and applications to scientific and engineering applications.  Topics include data acquisition and analysis, simulation and scientific visualization.  Credit not given for both  CSCI 145 and CSCI 150. Both semesters.
  • CSCI 146: Object Oriented Practicum (1). Prerequisite: CSCI 145 or equivalent.  Labs and lectures in object oriented programming to supplement knowledge gained in CSCI 145 for students wishing to continue on to CSCI 180, who have not taken CSCI 150. Offered on an as-needed basis.
  • CSCI 150: Introduction to Object Oriented Programming (4). Prerequisite: MATH 120 or equivalent. An introduction to computer programming based upon early coverage of object-oriented principles such as classes, methods, inheritance and polymorphism, together with treatment of traditional flow of control structures.  Good software development practices will also be established, including issues of design, documentation, and testing. Both semesters.
  • CSCI 167 Statistics and Computers (3). Prerequisite: MATH 120 or the equivalent. Introduction to data analysis and hypothesis testing. Distributions, sampling, estimation, confidence intervals. T-test, analysis of variance, correlation and regression. Crosstables and Chi-square. Use of a statistical package such as SAS, the Statistical Analysis System. Spring semester.
  • CSCI 180: Data Structures (4). Prerequisites: CSCI 146 or CSCI 150; CSCI 140 or MATH 135 or MATH 266. The design, implementation and use of data structures. Principles of abstraction, encapsulation and modularity to guide in the creation of robust, adaptable, reusable and efficient structures. Specific data types to include stacks, queues, lists, priority queues, dictionaries, trees and graphs.
  • CSCI 214: Advanced Data Structures and Algorithms (3) Prerequisite CSCI 180.  Advanced data structures and object-oriented design. Advanced topics in searching and sorting; trees, heaps, graphs; algorithm and complexity analysis; advanced file processing and principles of databases. Fall Semester.
  • CSCI 224: Computer Architecture (3). Prerequisite: CSCI 146 or CSCI 150; CSCI 140 or MATH 135 or MATH 266. Introduction to the organization and architecture of computer systems, including aspects of digital logic, data representation, assembly level organization, memory systems and processor architectures.  Spring semester.
  • CSCI 290: Object Oriented Software Design (3). Prerequisite: CSCI 180. An implementation-based study of object-oriented software development. Teams will design and create medium-scale applications. Additional focus on the design and use of large object-oriented libraries, as well as social and professional issues.
  • CSCI 293: Special Topics (1-4).
  • CSCI 298: Independent Study (0-3) Prior approval of sponsoring professor and chairperson required.
  • Upper Division Courses

  • CSCI 305: Microprocessors (3). Prerequisite. CSCI 150 or CSCI 145. Corequisite: CSCI 306. Review of number systems. Microprocessor/ microcomputer structure, input/output. Signals and devices. Computer arithmetic, programming, interfacing and data acquisition.  Fall semester. Crosslisted as EE-P305.
  • CSCI 306: Microprocessors Laboratory (1).
    Corequisite: CSCI 305. Laboratory experiments to emphasize material covered in CSCI 305. Fall semester.
    Crosslisted with EE-P306.
  • CSCI 314: Algorithms (3). Prerequisite: CSCI 180, MATH 143.  Introduction to analysis and complexity of algorithms. Big-O notation. Running time analysis of algorithms for traversing graphs and trees, searching and sorting. Recursive versus iterative algorithms. Complexity, completeness, computability.  Spring semester.
  • CSCI 324: Operating Systems (3). Prerequisites: CSCI 180 and CSCI 224 or EE-P311. Theory and practice of operating systems, with emphasis on one of the UNIX family of operating systems.  Process management and scheduling; threads and synchronization; memory management and virtual memory; file systems; network protocols; client-server systems. Fall semester.
  • CSCI 327 Compilers (3). Prerequisite: CSCI 180 and CSCI 224 or EE-P311. Introduction to the theory and techniques of compiler design: lexical analysis, finite state automata, context-free grammas, top-down and bottom-up parsing, syntax analysis, code generation. Other important issues such as optimization, type-checking, and garbage collection will be discussed. Offered occasionally.
  • CSCI 334: Network Programming (3). Prerequisite: CSCI 324. Transmission media; packets, frames and error-detection; LAN and WAN technologies; routing; Internet architecture and protocols; network performance; host computers; routers; protocol layers; internet protocol addresses; datagrams; encapsulation; fragmentation; reassembly; Internet Control Message Protocol; network security and legal issues. Spring semesters.
  • CSCI 344: Programming Languages (3) Prerequisite: CSCI 290. Overview of programming languages: procedural and functional languages. Exposure to functional languages. Analysis of solution strategies to variable binding and function calls. Problem solving paradigms and linguistic issues.
  • CSCI 357: Computer Graphics (3). Prerequisite: MATH 244 or linear algebra, CSCI 180. Applications and implementation of computer graphics, algorithms and mathematics for creating two and three dimensional figures, animations and two and three dimensional transformations, interaction, windowing, viewing, and perspective techniques, lighting, coding using the graphics library OpenGL. Spring semester.
  • CSCI 371 Databases (3). Prerequisite: CSCI 180. Fundamentals of Database systems: the relational model, file organization and indexes, relational algebra, structured query language, the entity relationship model, normalization, object databases. Fall semester.
  • CSCI 386: Internship with Industry (0-3). Department permission required.
  • CSCI 390: Software Engineering (3). Prerequisite: CSCI 290. Theory and practice of software engineering. Design and implementation of software systems. Levels of abstraction as a technique in program design. Organized around major group programming projects.   Spring semester.
  • CSCI 393: Special Topics (1-4).
  • CSCI 398: Independent Study (0-3) Prior approval of sponsoring professor and chairperson required.
  • CSCI 413: Automata (3). Prerequisite: CSCI 180. The theory of automata and finite state machines. Regular languages and automata. Algebraic coding theory and shift registers. Algebraic machine theory. Offered occasionally.
  • CSCI 425 Advanced Operating Systems (3).  Prerequisite: CSCI 324. Parallel processes; processor problems; linear address space and tree structured spaces of objects; resource allocation, queuing and network control policies; system balancing and thrashing; job allocation and process scheduling; multiprogramming systems; protection mechanisms for accessing jobs; pipelining and parallelism; distributed systems. Offered occasionally.
  • CSCI 434: Network Programming II (3). Prerequisite: CSCI 334. Client-server interactions; socket interface; Domain Name Systems; e-mail representation and transfer; file transfer and remote file access; security and legal aspects of network management; web-servers and technologies; CGI and Java technologies. Offered occasionally.
  • CSCI 462: Artificial Intelligence (3) Prerequisite CSCI 180. Techniques of knowledge representation, including artificial neural networks and object-attribute-value triples; methods of inference; pattern matching techniques; inexact reasoning and fuzzy logic techniques; introduction to exert systems; advanced search techniques; individual AI projects.  Offered occasionally.
  • CSCI 485: Co-op with Industry (0). Given for industry experience when CSCI 486 has already been taken.
  • CSCI 486: Internship with Industry (0-3). Chairperson permission required.
  • CSCI 490: Senior Design Project (3). For students in the Parks BS track. Prerequisite: Senior status in computer science.  Semester-long computer science design projects by teams selected to cover as many areas of computer science as possible; documentations and formal presentations are required. 
  • CSCI 491: Capstone Project (3). Prerequisite: Senior Computer Science major; All required 200 level CS courses and six additional hours of computer science. Some projects may have more specific prerequisites. Either a research project or a design project.  Public presentation of the project required.
  • CSCI 493: Special Topics (1-4).
  • CSCI 495: Senior Residency (0). Required for graduating seniors.
  • CSCI 498: Advanced Independent Study (0-6). Prior permission of sponsoring professor and chairperson required.


  •  




     




     
           
           

    Home | News & Info | Search | WebSTAR | Contact SLU | SLU Links | Copyright © 2003 Saint Louis University