13.07.2015 Views

Courses—A through G and course numbers and symbols key

Courses—A through G and course numbers and symbols key

Courses—A through G and course numbers and symbols key

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CSci 1901. Structure of Computer Programming I.(4 cr. Prereq–Math 1271 or equiv or #)Principles of programming. Different programmingparadigms (message-passing, data-driven, eventdriven).Students develop algorithms/data typesusing language such as Scheme <strong>and</strong> techniques suchas abstraction, procedures, recursion, iteration.CSci 1902. Structure of Computer Programming II.(4 cr. Prereq–1901 or #)Object-oriented programming using language such asC++ or Java. Builds on 1901, presenting additionaldata structures/algorithms. Object-oriented approachto implement data structures/operations as abstractdata types.CSci 2011. Discrete Structures of Computer Science.(4 cr. Prereq–Math 1272 or Math 1372 or #)Foundations of discrete mathematics. Sets,sequences, functions, big-O, propositional <strong>and</strong>predicate logic, proof methods, counting methods,recursion <strong>and</strong> recurrences, relations, trees/graphfundamentals.CSci 2021. Machine Architecture <strong>and</strong> Organization.(4 cr. Prereq–1902 or #)Introduction to hardware <strong>and</strong> programming inassembler language: transistors, integrated circuits,logic gates, Boolean algebra, computing devices,data representation, number systems, computerorganization.CSci 2031. Introduction to Numerical Computing.(4 cr. §CSci 5301. Prereq–Math 2243 or #)Introduction to numerical computing for CSci,mathematics, <strong>and</strong> science/engineering students. UsesMathematica or Matlab to cover numerical error, rootfinding, systems of equations, interpolation,numerical differentiation <strong>and</strong> integration, leastsquares, <strong>and</strong> differential equations.CSci 2101W. Social, Legal, <strong>and</strong> Ethical Issues inComputing. (3 cr. §2109. Prereq–At least soph or #)Impact of computers on society. Computer scienceperspective of ethical, legal, social, philosophical,political, <strong>and</strong> economic aspects of computing.CSci 2109. Social, Legal, <strong>and</strong> Ethical Issues inComputing (non-W). (3 cr. §2101. Prereq–At least sophor #)Impact of computers on society. Computer scienceperspective of ethical, legal, social, philosophical,political, <strong>and</strong> economic aspects of computing.CSci 2121. Introduction to the Internet 2. (4 cr;A-F only. Prereq–1121)Programming for the Internet using HTML,JavaScript, <strong>and</strong> Perl. CGI, database programmingwith Perl. Database concepts such as relational vs.object oriented database technologies, querying datausing SQL. Interfacing databases to the Web. E-commerce, emerging trends such as XML.CSci 2980. Special Topics in Computer Science.(1-4 cr [max 1 cr]; A-F only. Prereq–#)Special topics. Lectures, informal discussions.CSci 3970. Industrial Student Co-op Assignment.(2 cr [max 8 cr]; S-N only. Prereq–CSci, in coop program)Industrial work assignment in a coop programinvolving advanced computer technology. Reviewedby a faculty member. Grade based on final writtenreport covering the work assignment.CSci 3980. Undergraduate Colloquium. (1 cr [max 2cr]. Prereq–Upper div CSci; can be repeated for cr)Current computing trends <strong>and</strong> hot topics; industrial<strong>and</strong> career related topics; research topics; researchprojects <strong>and</strong> undergraduate research opportunities;graduate school options.CSci 4011. Formal Languages <strong>and</strong> Automata Theory.(4 cr. Prereq–1902 <strong>and</strong> 2011 or #; no cr for grads in CSci)Logical <strong>and</strong> mathematical foundations of ComputerScience. Theoretical models <strong>and</strong> their applications.Formal languages, models of computation,computability, undecidability, computationalcomplexity. Emphasizes grammars, parsing,interpreters, <strong>and</strong> compilers.CSci 4041. Algorithms <strong>and</strong> Data Structures. (4 cr.Prereq–1902 <strong>and</strong> 2011 or #; no cr for grads in CSci)Rigorous analysis of algorithms <strong>and</strong> their implementation.Algorithm analysis, sorting algorithms, binarytrees, heaps, priority queues, heapsort, balancedbinary search trees, AVL trees, hash tables <strong>and</strong>hashing, graphs, graph traversal, single sourceshortest path, minimum cost spanning trees.CSci 4061. Introduction to Operating Systems. (4 cr.Prereq–2021; no cr for grads in CSci)Foundations of operating systems. History <strong>and</strong>evolution of operating systems, shells, tools, memoryorganization, file system overview, I/O, concurrentprocesses, <strong>and</strong> interprocess communication.CSci 4081W. Introduction to Software Engineering.(4 cr. §5801, §4089. Prereq–[1902, 2011] or #; no cr forgrads in CSci)Basic theory/practice of software engineering.Software development, requirements/specifications,design, verification, <strong>and</strong> validation.CSci 4089. Introduction to Software Engineering(non-W). (4 cr. §5801, §4081. Prereq–[1902, 2011] or #;no cr for grads in CSci)Basic theory/practice of software engineering.Software development, requirements/specifications,design, verification, <strong>and</strong> validation.CSci 4107. Introduction to Computer GraphicsProgramming. (3 cr. §5107. Prereq–4041 or #; cannotbe taken for grad CSci cr)Theory/practice of computer graphics programmingusing C/C++ <strong>and</strong> OpenGL. Practical concepts incomputer graphics modeling, rendering, <strong>and</strong>animation. Emphasizes effective use of graphicstoolkits.CSci 4131. Internet Programming. (3 cr. §5131.Prereq–4061; 4211 recommended, cannot be taken forgrad CSci cr)Issues in internet programming. Internet history,architecture/protocols, network programming, Webarchitecture. Client-server architectures <strong>and</strong>protocols. Client-side programming, server-sideprogramming, dynamic HTML, Java programming,object-oriented architecture/design, distributed objectcomputing, Web applications.CSci 4211. Introduction to Computer Networks.(3 cr. §5211. Prereq–4061 or #; basic knowledge of[computer architecture, operating systems]recommended, cannot be taken for grad CSci cr)Concepts, principles, protocols, <strong>and</strong> applications ofcomputer networks. Layered network architectures,data link protocols, local area networks, routing,transport, network programming interfaces,networked applications. Examples from Ethernet,Token Ring, TCP/IP, HTTP, WWW.CSci 4707. Practice of Database Systems. (3 cr. §5707.Prereq–4041 or #; cannot be taken for grad CSci cr)Concepts, conceptual data models with case studies,common data manipulation languages, logical datamodels, database design, facilities for databasesecurity/integrity, applications.CSci 4921. History of Computing. (3 cr. §HSci 4321)Developments in last 150 years; evolution ofhardware <strong>and</strong> software; growth of computer <strong>and</strong>semiconductor industries <strong>and</strong> their relation to otherbusinesses; changing relationships resulting fromnew data-gathering <strong>and</strong> analysis techniques;automation; social <strong>and</strong> ethical issues.CSci 4970W. Advanced Project Laboratory. (3 cr [max9 cr]. Prereq–Upper div CSci, 4061, #; cannot be takenfor grad cr)Formulate <strong>and</strong> solve open-ended project: design,implement, interface, document, test. Team workstrongly encouraged. Arranged with CSci faculty.CSci 5103. Operating Systems. (3 cr. Prereq–4061 or #)Conceptual foundation of operating system designs<strong>and</strong> implementations. Relationships betweenoperating system structures <strong>and</strong> machinearchitectures. UNIX implementation mechanisms asexamples.Course DescriptionsCSci 5106. Programming Languages. (3 cr.Prereq–4011 or #)Design <strong>and</strong> implementation of high-level languages.Course has two parts: (1) language design principles,concepts, constructs; (2) language paradigms,applications. Note: <strong>course</strong> does not teach how toprogram in specific languages.CSci 5107. Fundamentals of Computer Graphics 1.(3 cr. §4107. Prereq–[4041 or #], fluency in C/C++,mastery of basic concepts in linear algebra)Fundamental algorithms in computer graphics.Emphasizes programming projects in C/C++. Scanconversion, hidden surface removal, geometricaltransformations, projection, illumination/shading,parametric cubic curves, texture mapping,antialising, ray tracing. Developing graphicssoftware, graphics research.CSci 5108. Fundamentals of Computer Graphics II.(3 cr. Prereq–5107 or #)Advanced topics in image synthesis, modeling, <strong>and</strong>rendering. Image processing, image warping, globalillumination, non-photorealistic rendering, texturesynthesis. Parametric cubic surfaces, subdivisionsurfaces, acceleration techniques, advanced texturemapping. Programming is in C/C++.CSci 5115. User Interface Design, Implementation<strong>and</strong> Evaluation. (3 cr. Prereq–4041 or #)Theory, design, programming, <strong>and</strong> evaluation ofinteractive application interfaces. Human capabilities<strong>and</strong> limitations, interface design <strong>and</strong> engineering,prototyping <strong>and</strong> interface construction, interfaceevaluation, <strong>and</strong> topics such as data visualization <strong>and</strong>World Wide Web. Course is built around a groupproject.CSci 5116. GUI Toolkits <strong>and</strong> Their Implementation.(3 cr. Prereq–5115 or 5107 or #)Structure <strong>and</strong> design of user interface toolkits <strong>and</strong>frameworks. Aspects of GUI toolkits (e.g., windowsystem protocols, event processing, geometrymanagement, resource management, datamanagement, constraints). Course is built aroundimplementation assignments <strong>and</strong> case studies oftoolkits.CSci 5131. Advanced Internet Programming. (3 cr.§4131. Prereq–5106 or 5211 or #; [4081 or 5801], 5707recommended)Issues in internet programming: Java programming,concurrent programming, workflow, distributeddatabases, security, collaborative computing, objectorientedarchitecture/design, network publishing,messaging architecture, distributed objectcomputing, internets.CSci 5161. Introduction to Compilers. (3 cr.Prereq–4011 or #)Theories <strong>and</strong> mechanisms of programming languageprocessing tools. General compiler organization:lexical scanner, syntax parser, symbol table, internalprogram representation, code generator. Relationshipbetween design <strong>and</strong> implementation. Run-timememory management mechanism.CSci 5201. Computer Architecture. (3 cr. §EE 5361.Prereq–2021 or #)Introduction to computer architecture. Pipelining,memory hierarchy, <strong>and</strong> input/output systems.Performance metrics. Examination of eachcomponent of a complicated computer system.CSci 5211. Data Communications <strong>and</strong> ComputerNetworks. (3 cr. §4211. Prereq–[4061 or #], basicknowledge of [computer architecture, operatingsystems, probability])Fundamental concepts, principles, protocols, <strong>and</strong>applications of computer networks. Layered networkarchitectures, data link protocols, local areanetworks, network layer/routing protocols, transport,congestion/flow control, emerging high-speednetworks, network programming interfaces,networked applications. Case studies using Ethernet,Token Ring, FDDI, TCP/IP, ATM, Email, HTTP, <strong>and</strong>WWW.Course Descriptions337For definitions of <strong>course</strong> <strong>numbers</strong>, <strong>symbols</strong>, <strong>and</strong> abbreviations, see page 296.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!