The Fastest Skeleton Mac OS
- VICE is an emulator collection which emulates the C64, the C64-DTV, the C128, the VIC20, practically all PET models, the PLUS4 and the CBM-II (aka C610). It runs on Unix, MS-DOS, Win32, OS/2, Acorn RISC OS, BeOS, QNX 6.x, Amiga, GP2X or Mac OS X machines.
- What is the Best Mining OS? Now that we’ve talked about the best mining software, let’s talk about the best computer operating system to have when using a mining software. This is really a matter of taste as a lot of the big mining software developers support multiple platforms (MacOS, Windows, Linux, etc.).
525 Soda
Mac OS X 10.5 or better. You must remove all of the Mummy and Skeleton heads from the board while retaining the Gold Masks. Figure out the fastest and most.
Office Hours: Tu/Thu 11-12pm (after class) in 525 Soda
547 Soda
Office Hours: Tu 12-1pm, W 12-1pm
Sections: W 10-11, W 11-12
651 Soda
Office Hours: M 1-2
Sections: W 12-1
651 Soda
Office Hours: F 12-1
Sections: W 3-4
We are using Piazza as the primary method of communication. Please sign up for the Berkeley fall cs184 class.
As an experiment, we are making online lectures for the first half of the course available. They are discussed in more detail below, and are intended to supplement and provide review material for the conventional in-class CS 184 lectures.
Please see the Course Schedule for a detailed syllabus and lecture slides.
Any administrative questions or questions not related to class material can be directed at cs184@imail.eecs.berkeley.edu.
If you are interested in graphics research at UC Berkeley more information can be found here.
We encourage you to make use of the Piazza newsgroup. Feel free to send the GSIs or instructor an email, or attend office hours if Piazza doesn't solve your problem, or if you would like to discuss course material. Please note that Piazza will generally have the fastest response time.
- Lecture: Tuesdays and Thursdays, 9:30am-11am in 306 Soda
- Sections:
- 101: Wednesdays 10am-11am (Fu-Chung) in 405 Soda
- 102: Wednesdays 11am-12pm (Fu-Chung) in 405 Soda
- 103: Wednesdays 12pm-1pm (Brandon) in 405 Soda
- 104: Wednesdays 3pm-4pm (Christine) in 310 Soda
This course is an introduction to the foundations of 3-dimensionalcomputer graphics. Topics covered include 2D and 3D transformations,interactive 3D graphics programming with OpenGL, shading and lightingmodels, geometric modeling using Bézier and B-Spline curves, computergraphics rendering including ray tracing and global illumination,signal processing for anti-aliasing and texture mapping, and animationand inverse kinematics. There will be an emphasis on both themathematical and geometric aspects of graphics, as well as the abilityto write complete 3D graphics programs. This course is offered everysemester (the instructor may vary from offering to offering, as maythe content somewhat). This semester, the enrolment can be up to 108,and we have 4 sections (the fourth section is added at the last minute so feel free to join or shift to it). The class is often over-subscribedinitially, but final numbers usually let everyone in (there is of course no guarantee of this happening).
This will be a hopefully fun course, but will require considerableimplementation and understanding. This is especially so, since therequired programming for some of the assignments is difficult, and sincegraphics programming in general, and especially coding in OpenGL and GLSL is anew skill. Debugging and working with graphical programs requiressubstantial work, which is difficult to replace by teaching ittheoretically. The main advice is to START EARLY on all of theprogramming assignments and ask the instructor or GSIs if you run intoany difficulties; we are always ready to help. If an assignment provides 2 or 3 weeks to do it, it usually means you need (part of) all 2 or 3 weeks, and cannot start a few days before the deadline. Most students shouldsuccessfully complete the assignments, and find the course veryrewarding and fun, with the ability to understand the theory behindand implement 3D graphics programs. Some students every year are able to use the course as a springboard to pursue graduate study in computer graphics, or to take up positions in the graphics industry.
This is the introductory graphics course. Moreadvanced follow on courses are available. In particular, I strongly recommend those who do well in and/or enjoy this class to take CS 283 with me next semester (do not worry about the fact that CS 283 is technically a graduate course; this course is ample preparation, and the grading is in fact usually easier in graduate classes). We also offer special topics CS 294 courses almost every semester. Beyond this, there are a number of other CS 28x and CS 29x courses of interest, taught by thedepartment, that you may consider in the next academic year, if you will still be at Berkeley.
Pre-requisites for the course:
- Solid C/C++ programming background. (If you only know Java, you may want to consider using this course as an opportunity to become familiar with C++.)
- Linear algebra and some basic mathematical skills (only high school math is strictly required and we have a review lecture).
Prior knowledge of computer graphics, OpenGL or GLSL is NOT required.
(We are aware that not all students are familiar with C/C++, but most pick it up without difficulties.If you are concerned about this aspect, we recommend that you study up before the class and speak to the GSIs to come up to speed quickly. We do not spend any time in class teaching C/C++, since this is an upper division course).
Lectures will be held Tu/Thu 9:30am - 11am in Soda 306. Sections will be held as noted at the top of the page.
Assignments comprise six projects (plus assignment 0), comprising primarily of programming. Allprojects are due by 11:59pm on the dates specified. You should plan ahead; in general, we will not accept excuses for server crashes, last minute delays uploading and so on close to the deadline. The first, second and third assignments should be completed individually, and the fourth assignment that is larger, in groups of two (Groups of two are highly recommended but not required for assignment 5, and assignment 6 can be done individually or in groups of two). For more detail, see the assignmentspage. In group assignments, you only need to hand in onecopy of the assignment. In this case, it is yourresponsibility to make sure that you both contributeequally. That is, we cannot accept 'half' of anassignment from you if your partner failed to do his/her part. You can change partners between group assignments if you want.
Feedback Server
One successful experiment last year was to have feedback servers to provide automatic feedback on most of the assignments.You upload your program or images, and the server produces a comparison with the true solution and a difference image. You can submit as many times as you like to the feedback servers as you improve your assignment. When you are satisfied, indicate the final feedback output in your submission. This year, using the feedback servers is compulsory, and all assignment submissions must include a link to the feedback server output. The grader, Nick Estorga, has been developing the feedback servers throughout the summer, and most questions about their operation should be directed to him via Piazza. Please note that Nick and the GSIs will grade using the feedback output only as advisory; they may use other test cases, inspect code, and grade fairly based on the extent of the error. Logistics of how to access and use the feedback servers will be posted to Piazza.
Late Policy
Late Policy:Your grade will be reduced 15% (of your actual score) for each 12hours late (or 30% per day). The late deduction is a step function.That is, you lose 15% of your score for being 1 min late or for being11 hours 59 minutes late. You lose 30% of your score for being 12hours and 1 minute late. After 3 days, no credit will be given. Noextensions will normally be given, unless for very compelling personalreasons. Additionally, a stronger late policy may be followed for thefinal assignments to allow for timely grading. Also, if you do want an extension, you must ask for it as far in advance as possible, clearly stating the reason why; we will not usually give extensions close to the deadline or after the fact, except for clear emergencies andclearly unforeseeable circumstances. To avoid most of these issues, please START EARLY!
Exams
In addition to the programming projects, we will have a midterm and final. The midterm will be in class. The final will be in exam group 7, on Tuesday Dec 11, from 3-6pm. We will go over some review questions in classes specially designated for that purpose. Doing well on the midterm/final will require following the material at the level of the content covered in the review sessions, as well as a basic understanding of course material. Last semester's midterm and final questions are posted at the bottom of the assignments page.
Programming and Collaboration Policy
The Fastest Skeleton Mac Os 11
Programming projects are to be implemented either individually(assignments 0,1,2 and 3) or in groups of 2 (assignments 4,5) fromscratch, i.e., you should not derivesolutions from existing sources or previous instances of this course.Discussion of programming projects is allowed (encouraged). Copying ofsolutions or code from other students, or from students who previouslytook this course is not allowed. If you do obtain substantial helpfrom the instructor, GSI or another student, you must document this inyour program. Furthermore, you should ingeneral not copy code from other sources. If in doubt, please ask.Further specifics are given in the assignment specifications. Some assignments have skeleton code, others less so. You may feel free to re-use code from your own previous assignments at any time, particularly to handle window setup and interaction. (However, where required, you should follow the skeleton and only modify the required files for HW 1,2 and 3).
To repeat, you may not copy solutions or code from other students, or students who previously took this or a similar class. You must clearly declare any code and ideas that came directly from others, as opposed to what you created yourself. If you fail to do so, we can only assume you are presenting your own work. Of course, presenting other people's work as your own is academic dishonesty. Note also that in group assignments you are collectively responsible for your project; both you and your partner can be held liable (just as you both receive credit for) the resulting assignment. Students who engage in dishonest activities, with an intent to alter their grade, will receive an F for the course and be reported to the University for further action.
Most of the assignments are based onOpenGL, a portable graphics library. Since everything about theseassignments is portable, you can do them on any computer you want. We have tested the skeleton code on, and provide versions for Mac OS, Windows and Linux. In particular, one of the initial goals is to get set up with a suitable compilation environment. If there are issues, please speak to the instructor or GSI.
Grading
Your final grades will be computed by weighting the assignments tentatively as follows (instructor reserves the right to change final weighting). Two-thirds of the grade is given for the homework assignments, and one-third for the midterm and final, with the latter weighted more heavily.
HW # | Written | Programming |
0 | 10 | 10 |
1 | 0 | 40 |
2 | 0 | 70 |
3 | 0 | 50 |
Midterm | 80 | 0 |
4 | 0 | 75 |
5 | 0 | 75 |
6 | 0 | 70 |
Final | 120 | 0 |
Books
I would first like to note that it is difficult to find a suitablegraphics textbook; they all have their disadvantages. For some (many) of thetopics, we will not be following any particular textbook. While it is useful to have a graphics text as a reference, it is not required. Much more important is that you get some version of the OpenGL and GLSL books as a reference; otherwise you will constantly be looking things up online. As far as what the course tests,and therefore what you need to focus on in the reading, it will bebased entirely on the lecture material, and at least for the first half we provide online lectures for review. We note here some of the texts werecommend, along with commentary on the book's suitability.
The Fastest Skeleton Mac Os X
If these books are not available in the campus bookstore or nearbystores, they are readily available with online booksellers likeAmazon. Note also that previous editionsof a textbook are generally adequate, but the chapters on this websitewill generally be with respect to the latest edition.
Required: The OpenGL Programming Guide Seventh Edition (The Red Book)
by Shreiner, Woo et al.
This is a comprehensive tutorial on theGraphics API we will be using for most of the course. Ifyou ever intend to write substantial graphics programs, youshould have this book. If you don't buy it, you're probably goingto be sharing someone else's, or trying to decipher sample code.Please note that you will be using this primarily as a reference,looking things up as and when you write code. The syllabusrefers to chapters that you will need to know, but that is more as areference to what we will be covering. In practice, you will gainmore by actually doing and looking up what you don't know, rather than just reading the red book end to end. Also please note that the latest edition involves many changes (as the graphics pipeline itself has evolved in recent years). We will not in general be focusing on all the new features, so an old edition is probably ok, but we will touch on some recent developments, in particular the use of programmable shaders in OpenGL.
Required: The OpenGL Shading Language: Second or Third Edition (Orange Book)
by Randi Rost.
This is the standard tutorial on the GLSL programmable shading system, that we will be using throughout the course. While the basics of GLSL are covered in the red book, I would highly recommend getting the orange book for a better explanation and deeper coverage. You may be able to get both red and orange books together as a package, and could also save on costs by getting the ebooks (since you will likely use these as a reference in any case). This book is listed as required this year.
Recommended (but Optional): Fundamentals of Computer Graphics
by Pete Shirley and Steve Marschner (3rd edition)
This is a fairly simple text. The third edition is considerablyexpanded and the chapters are with respect to that. The advantage isthat it is easy to follow to get some understanding of the topics.The disadvantage is that the approach and content to the varioustopics may not quite follow the lectures, and some topics may betreated too simply or not very well at all. Most students like thistextbook, and you should consider having it. However, it may notsuffice well for all the material, and we will be closely following itonly in the initial stages of the course. I have listed this as recommended, not required, since there are a lot of textbooks for the class and we don't follow it exactly. It is far more important to get the OpenGL books.
Optional: Computer Graphics: Principles andPractice
by Foley, van Dam, Feiner and Hughes
This is widely regarded as the bible of computergraphics, and is a comprehensive text.If you have further interest in graphics, like are considering takingthe more advanced courses next year, I would definitely recommend getting this (although you may want to wait for the new edition that is now being prepared).If not, I would still recommend being able to follow up in it, in casethere are certain topics you want to see in more detail. The maindisadvantage is the encyclopedic nature of the text, making theexposition quite complicated, that can go over the head for manystudents taking graphics for the first time. In many ways, theShirley text is at the other extreme, and the course (hopefully!)tries to find a middle path.
Optional: Real Time Rendering Third Edition
by Moller and Haines
This is the best book available on techniques forcreating interactive complex renderings. It explains many of thetechniques used by game creators, without focusing too much on the exact detailsof any one particular system ( like the 'Black Art of { mac, windows, etc.} Game Programming' series of books ). This book will probably be most useful as a reference for the interactive OpenGL project. The authors of this book maintain a webpage at http://www.realtimerendering.com/ which is full of valuable information.
Optional: Computer Animation: Algorithms and Techniques
by Rick Parent
This is a useful reference for the animation lectures in the course.
Optional: An introduction to ray tracing
by Andrew Glassner
This is a useful reference for implementing the raytracer in assignment 5. Some parts of this will be handed out in class. There are many newer textbooks on ray tracing and rendering, including Glassner's encyclopedic two-volume work on Principles of Digital Image Synthesis.
In addition to the above, a number of other basic and advanced texts may be ofinterest for specific parts of the class, such as
- Bartels, Beatty, Barsky. An Introduction to Splines for use in Computer Graphics and Geometric Modeling.
- Cohen and Wallace. Radiosity and Realistic Image Synthesis.
Online Class
We may try to run an online version of part of CS 184 in the near future, using recorded versions of many of the same lectures and assignments. As a first step, we are making the Online Lectures available as a useful resource to CS 184 students, with the hope that you can use them for reviewing the material.
The online version of the course should currently still be seen as an experiment, and the local class will run in the conventional way with standard lectures (more merging of the two may happen on the next iteration). However, you are welcome and encouraged to browse the online lectures (and share this information with friends not in CS 184, who might be interested).Note that the online lectures may be slightly different than those in the local class, and are optional.