20191 Undergrad Flashcards
CSCI 102L
Fundamentals of Computation
Fundamental concepts of algorithmic thinking as a primer to programming. Introduction to C++.
- Mark Redekopp
- Easy-medium
- Slower on ramp to CSCI 103, introduction to C++ / students should have no or limited experience / required for PEGRs and new minors
CSCI 103L
Introduction to Programming
Basic datatypes, assignments, control statements (if, switch, for, while), input/output (printf, scanf, cin, cout), functions, arrays, structures, recursion, dynamic memory, file handling. Programming in C/C++.
COREQ: CSCI 109 or EE109
- Andrew Goodney, Olivera Grujic
- Medium
- Introduction to C++ for CS majors / moves quickly / experience not necessary but is helpful / good time management necessary
CSCI 104L
Data Structures and Object-Oriented Design
Introduces the student to standard data structures (linear structures such as linked lists, (balanced) trees, priority queues, and hashtables), using the C++ programming language.
PREREQ: CSCI 103
COREQ: CSCI 170
- Sandra Batista, Mark Redekopp
- Medium-hard
- Continuation of C++, assignments/homework take a long time, longer than students often expect or are told / must plan / manage time well / after this course well prepared for internships
CSCI 109
Introduction to Computer Science
An introduction to, and overview of, Computer Science; both as a discipline and a body of knowledge.
- Andrew Goodney
- Easy
- Introduction to the major / overview of the discipline and its sub-disciplines / history of CS / emerging and future trends
CSCI 170
Discrete Methods in Computer Science
Sets, functions, series. Big-O notation and algorithm analysis. Propositional and first-order logic. Counting and discrete probability. Graphs and basic graph algorithms. Basic number theory.
PREREQ: CSCI 103 and 1 from (CSCI 109 or EE 109)
- TBD
- Medium
- Discrete Math; the algorithmic math taught in CSCI 170 is applied the next week or two in CSCI 104, particulaly recruision, induction, probability, combinatorics, graphs.
CSCI 201L
Principles of Software Development
Object-oriented paradigm for programming-in-the-large in Java; writing sophisticated concurrent applications with animation and graphic user interfaces; using professional tools on team project.
PREREQ: CSCI 104L
- Jeffrey Miller
- Medium-hard
- Continuation of C++, large focus on group work, introduction and application of Java, beginning of software engineering standards
CSCI 270
Introduction to Algorithms and Theory of Computing
Algorithm analysis. Greedy algorithms, divide and conquer, dynamic programming, graph algorithms. NP-completeness and basic recursion theory and undecidability. Sorting lower bounds. Number-theory based cryptography.
PREREQ: CSCI 104 and CSCI 170
- Aaron Cote
- Medium-hard
- Builds entirely off CSCI 170 (170 is a predictor of performance in 270). Algorithms.
CSCI 280
Video Game Production
History of video games; overview of game genres; phases of video game development (concept, preproduction, production, post-production); roles of artists, programmers, designers, and producers.
CROSSLIST: This course is offered by the ITP department but may qualify for major credit in CSCI. To register, enroll in ITP 280.
- Tom Sloper
CSCI 281
Pipelines for Games and Interactives
- Scott Easley
- Easy
- Introductory level course for CS games students, focus on graphics and visual design - students create a portfolio.
CSCI 310
Software Engineering
Introduction to the software engineering process and software lifecycle. Covers project management, requirements, architecture, design, implementation, testing, and maintenance phase activities in team based projects. Prerequisites: CSCI 201. Duplicates credit in former CSCI 377.
PREREQ: CSCI 201
- William Halfond
- Medium
- Software Engineering life cycle / project management course / focus is on documentation and standards for managing software projects - not heavy in programming
CSCI 350
Introduction to Operating Systems
Basic issues in concurrency, deadlock control, synchronization scheduling, memory management, protection and access control, inter-process communication, and structured design. Laboratory experiences with Unix-like operating system. Duplicates credit in CSCI 402.
PREREQ: CSCI 201 and 1 from (CSCI 356 or EE 354)
- Tanya Ryutov
- Hard
- One of the most rigorous upper division courses, large programming work load, avoid pairing with WRIT 340 and other time consuming courses
CSCI 353
Introduction to Internetworking
Global Internet: design principles, layering, protocol design/analysis.Networked applications, Internet structure/architecture,Protocols for transport/congestion control, network layer/routing,link layer/MAC. Network security. Prerequisites: CSCI 201. Recommended preparation: Familiarity with C and C++. Duplicates credit in EE 450.
PREREQ: CSCI 201
- William Cheng
- Medium
- Overview of networking from a programming perspective - duplicates credit in EE 450 (3 unit option, but that has more of a hardware focus) - students can take either if in CECS or CSGM
CSCI 356
Introduction to Computer Systems
Computer organization; entity abstraction and representation; program execution; code optimization; memory usage; exception handling; processing control; computer performance; hands-on work done in C and assembly.
PREREQ: CSCI 104
- Marco Paolieri, Andrew Goodney
- Medium
- Replaced EE 352 in our curriculum, computer hardware from a programmer’s perspective, prerequisite to CSCI 350 Operating Systems; duplicates credit in EE 352
CSCI 368
Programming Graphical User Interfaces
Programming applications with dynamic graphical user interfaces. Topics include events, controls, resources, data bindings, styles, and user experience.
PREREQ: 1 from (CSCI 104 or ITP 365)
Cross-listed to ITP 368.
- Kendra Walther
CSCI 380
Video Game Programming
Underlying concepts and principles required for programming video games (topics include vectors, transformations, 3-D math, geometric primitives, matrices).
PREREQ: 1 from (CSCI-104 or ITP-365)
Cross-listed to ITP 380. Recommend mechanics and vector math before hand or concurrently via PHYS 151.
- Clark Kromenaker
- Sanjay Madhav