170 likes | 401 Views
Welcome to CS123!. Mechanics. Your Staff. Professor: Andy van Dam ( avd ) Head TA: Brandon Montell ( bmontell ), 2015 Undergraduate TAs, all 123 veterans: Allison Hamburger ( ahamburg ), 2016 Ben Most ( bmost ), 2015 Joshua Lewis (jml16), 2015 Michael Murphy (mjm9), 2015
E N D
Welcome to CS123! Mechanics 9/4/2014
Your Staff • Professor: • Andy van Dam (avd) • Head TA: • Brandon Montell (bmontell), 2015 • Undergraduate TAs, all 123 veterans: • Allison Hamburger (ahamburg), 2016 • Ben Most (bmost), 2015 • Joshua Lewis (jml16), 2015 • Michael Murphy (mjm9), 2015 • Veena Vignale (vvignale), 2015 – 5th year Masters • Vivian Morgowicz (vmorgowi), 2016 9/4/2014
Who Should Take CS123? • Juniors or higher • CS15-16, CS17-18, or CS19 and CS32 • or equivalent, with strong software engineering skills (OO design and programming, debugging) – this is a projects-based “studio course” • Sophomores • did well in intro sequence • consider themselves strong programmers • willing to put in a bit of extra time up front (e.g., to learn C++) 9/4/2014
Requirements Info • If you don’t know C++, you CAN take this class • C++ is Java + explicit memory management and some C grottiness • additional time investment required early on • C++ help session TONIGHT at 8:00 PM in Motorola (CIT 165) • CS123 Java to C++ transition tutorial on course website (docs page) • TAs can help you with C++ issues on hours • Linear Algebra (vector and matrix arithmetic, dot and cross products) • help session to review these concepts (later on in the semester) • Consider taking Philip Klein’s CS53, Directions: The Matrix in Computer Science • If you’re not sure you should be in CS123 or have not met the prereqs, stay after class and see Brandon or email cs123headtas@cs.brown.edu 9/4/2014
Bird’s Eye View of the Course (1/2) • Quick start: 2D and 3D graphics with OpenGL • 2D raster graphics • 2D modeling hierarchy • basic image transformations • Basic 3D scene management • tessellation of curved surfaces • transformations (translation, rotation, scale) • virtual camera model • Scene graph traversal 9/4/2014
Bird’s Eye View of the Course (2/2) • 3D Modeling and Rendering – the core • intersecting rays with simple solids • ray tracing • lighting and shadowing of polygonal models • stochastic methods for photorealistic rendering • GPU hardware rendering (GLSL) • Other Topics • colortheory • animation • user interfaces 9/4/2014
Workload • We don’t want a killer course but it will be intense • Expect 15-20 hours of work per week • Course is front-loaded, lots to learn in the first three weeks • Combining with another programming-heavy course (like CS33) is doable but can be challenging, especially for those who have only taken the intro sequence. • Final project doing shader programming on GPU • Expect to put in a fair amount of time during reading period 9/4/2014
Half Credit requirements • Each project will include a section called half credit requirements • Those taking cs1234 will need to complete these requirements • Those not taking cs1234 can use the requirements as additional extra credit • Expect 7-10 additional hours of work • CS1234 can be used as a capstone course • Half credit requirements can be be used to get grad credit • Do NOT show up at the class time listed on Banner for CS1234 • Banner hack ;) 9/4/2014
Course Documents (1/3) • Course missive (online) • Assignment deadlines and lecture topics are subject to change • Responsible for info on course website: http://cs.brown.edu/courses/cs123 • Mailing list for course updates – mail will be sent to your Brown CS e-mail address • Course guide (online) 9/4/2014
Course Documents (2/3) • Collaboration Policy • More types of collaboration allowed this year than last year • Allowed: discussion of solutions to written “algo” assignments (hand-ins must acknowledge collaboration that takes place), high-level design of programs • Not allowed: written notes from discussions with other students, detailed discussion of programs • This is different from rules in other courses. • Read collaboration policy carefully before you sign because it is a contract • MOSS – an AI program that is usually correct – we hand-check suspicious similarity • Typical verdict: directed NC and parental notification 9/4/2014
Course Documents (3/3) • Lectures posted online. You are encouraged to bring your laptops to read along and annotate lectures. 9/4/2014
The Book • The textbook for this class is recommended, but not required • Most lectures will correspond to chapters in the book • An improved index has been linked on the site’s docs page 9/4/2014
Assignments • 6 Programming Projects • Three of which build up to a ray-tracing system • Additional requirements for half credit course • 70% of final grade • 10 Labs • Learn what modern graphics systems can do • Real-time computer graphics and GPU shaders • 3D interaction and UI • 10% of final grade • 1 Final Project • Real-time project using GPU programming • You are strongly encouraged to work in groups of 2-3; 2 most common • 20% of final grade 9/4/2014
First Assignment • First assignment, Brush: warm-up exercise in C++ • Out NOW • Start early, especially if you’re uncomfortable with C++ • Bring questions to help session tonight • Algorithm assignment due Sunday, September 7at 5pm • hand in (on paper) in the cs123 bin on the second floor of the CIT • no late hand-ins accepted • Program due Wednesday, September 10th, 11:59pm 9/4/2014
Projects • Brush – a 2d drawing program (intro to C++) • Shapes – procedural geometry • Filter – image processing • Sceneview – 3d static scene viewer for OpenGL • Intersect – parametric shapes, ray-shape intersections • Ray – your own 3d rendering engine • Each project is preceded by a short “algo” assignment, which ensures that you understand the concepts behind the project before starting to code. Image created using brushes from the “Brush” assignment 9/4/2014
Labs –Thursday 8:30-10:30pm, Friday 4-6 • OpenGL 2D – build a simple pong game • OpenGL 3D – build an archery simulator • Animation – learn how to light and animate scenes with OpenGL • Terrain – generate a natural-looking world environment • Particles – render flame, fluid, non-rigid objects • Camtrans– create an OpenGL viewing camera • Shaders I – procedural texturing (snow, grass, etc.) • Shaders II – link C++ to shaders and implement Phong lighting • Shaders III – make objects look like glass and metal • Modeler– build a UI for composing a scene from primitive shapes • Lab assignments are due (checked off by a TA) before the next week’s lab 9/4/2014
Final Project Demos 9/4/2014