20191 Undergrad Flashcards

1
Q

CSCI 102L

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

CSCI 103L

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

CSCI 104L

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

CSCI 109

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

CSCI 170

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

CSCI 201L

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

CSCI 270

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

CSCI 280

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

CSCI 281

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

CSCI 310

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

CSCI 350

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

CSCI 353

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

CSCI 356

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

CSCI 368

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

CSCI 380

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

CSCI 401

A

Capstone: Design and Construction of Large Software Systems

Group project with an outside stakeholder to develop real-world software solutions to large-scale problems. Topics include software engineering, professional preparation, and recent computer science research. Duplicates credit in CSCI 477a and CSCI 477b.

PREREQ: (CSCI 270 and CSCI 310)

  • Jeffrey Miller
  • Medium
  • Taken after CSCI 270 and CSCI 310. Large scale group project. Professor receives bids from outside orgs, but students may pitch their own project. Can be taken twice, for capstone and tech elective.
17
Q

CSCI 402

A

Operating Systems

Concurrency, deadlock control, synchronization, process and thread scheduling, memory management, file systems, security and access control, communication and networking, distributed file systems, data management.

  • Bill Cheng
  • Medium-hard
  • Operating Systems taken by Graduate Students. If a student has take CSCI 350, then they do not need to take CSCI 402.
18
Q

CSCI 404

A

Capstone: Creating Your High-Tech Startup

Capstone class in which students create their own technology startup, leveraging comprehensive CS knowledge and best industry practices.

PREREQ: (CSCI 201 and CSCI 270 and ITP 466)

  • TBD
  • Easy-medium
  • Spring only. Effective, Spring 2019 - one semester capstone. Work on their own start up company/project in group setting.
19
Q

CSCI 420

A

Computer Graphics

Computer graphics, OpenGL, 2D and 3D transformations, Bzier splines, computer animation, rendering including ray tracing, shading and lighting, artistic rendering, virtual reality, visualization.

PREREQ: CSCI 104 and 1 from (MATH 225 or (EE 141 and MATH 126) or (EE 141 and MATH 127) or (EE 141 and MATH 129))

Students must be in year 3 or above of their program to enroll. Registration closed to Freshmen and Sophomore.

  • TBD
  • Medium-hard
  • Graphics, needs linear algebra, preferably MATH 225, but EE 141 is OK with at least CALC II.
20
Q

CSCI 435

A

Professional C++

Applications of advanced concepts in C++ including lambda expressions, template metaprogramming, secure coding, parallel programming techniques, and the boost library.

PREREQ: 1 from (CSCI 104 or ITP 365)

CROSSLIST: ITP 435

  • Sanjay Madhav
  • Medium
  • ITP 435 very popular technical elective
21
Q

CSCI 439

A

Compiler Development

Practical applications of techniques used to develop a programming language compiler.

PREREQ: ITP 435
CROSSLIST: ITP 439

  • Sanjay Madhav
  • Medium
  • Tech elective
22
Q

CSCI 445L

A

Introduction to Robotics

Designing, building and programming mobile robots; sensors, effectors, basic control theory, control architectures, some advanced topics, illustrations of state-of-the-art. Teamwork; final project tested in a robot contest. Junior standing or higher.

PREREQ: CSCI 103.

Registration open only to Junior, Senior.

  • Heather Culbertson
  • Easy-medium
  • Can be taken after CSCI 103 or intro programming; design and hardware, operating of MOBILE robots; tech elective
23
Q

CSCI 450

A

Introduction to Computer Networks

Network architectures; layered protocols, network service interface; local networks; long-haul networks; internal protocols; link protocols; addressing; routing; flow control; higher level protocols.

Crosslist: This course is offered by the EE department but may qualify for major credit in CSCI. To register, enroll in EE 450.

Registration open only to Junior, Senior.

  • Ali Zahid
24
Q

CSCI 452

A

Parallel and Distributed Computation

Introduction to parallel programming techniques, models and optimization strategies; Application mapping to multi-core, accelerator, GPU and cloud platforms; High Performance Computing and Data Science applications.

PREREQ: 1 from (EE 355 or CSCI 201)

CROSSLIST: EE 451

Cross listed to EE 451. Can take after CSCI 201, tech elective for CS, required option in CECS.

  • Xuehai Qian
25
Q

CSCI 455x

A

Introduction to Programming Systems Design

Intensive introduction to programming principles, discrete mathematics for computing, software design and software engineering concepts. Not available for credit to computer sciencemajors, graduate or undergraduate.

  • Claire Bono
  • Medium
  • Accelerated introduction to programming using C++ AND JAVA, discrete math, software engineering, required intro for CS Scientists & Engineers, or upper division non majors
26
Q

CSCI 457

A

Computer Systems Organization

Register Transfer level machine organization; performance; arithmetic; pipelined processors; exceptions, out-of-order and speculative execution, cache, virtual memory, multi-core multi-threaded processors, cache coherence.

PREREQ: EE 354
CROSSLIST: EE 457

  • Gandhi Puvvada
  • Medium-hard
  • Cross listed to EE 457. Required for CECS, usually has a lot grad students. Heavy workload.
27
Q

CSCI 485

A

File and Database Management

File input/output techniques, basic methods for file organization, file managers, principles of databases, conceptual data models, and query languages.

PREREQ: CSCI 201

  • Shahram Ghandeharizadeh
  • Medium-hard
  • Introduction to Databases, if students take CSCI 485 they do not need CSCI 585 at graduate level
28
Q

CSCI 487

A

Programming Game Engines

Techniques for building the core components of a game engine; 2-D/3-D graphics, collision detection, artificial intelligence algorithms, shading, programming input devices.

PREREQ: ITP-380
CROSSLIST: ITP 485

  • Matthew Whiting
  • Medium-hard
  • Cross listed to ITP 485 - required for CSGM.
29
Q

CSCI 490x

A

Directed Research

Individual research and readings. Not available for graduate credit.

Registration open only to Juniors and Seniors.

30
Q

CSCI 495

A

Senior Project

An original project will be constructed applying computer technology (in either hardware or software) to produce a result useful in the physics classroom or laboratory.

CROSSLIST: PHYS 495