CIS-262 Home: http://www.c-jump.com/bcc/c262c/CIS262syllabus.html
- Welcome! (press F5 to refresh and get the latest version)
- CIS-262 Online -- take tests, submit your homework
- CIS-262 C/C++, MIPS, and OpenGL code samples
- ________________________________________________________
- Posted Jan 5 :
- Please be sure to read carefully and understand course policies and formats outlined in CIS-262 syllabus.
- BCC Student Handbook Tip: "For each hour in class, you should expect to study at least 2-3 hours outside of class. Know your limits, avoid over scheduling yourself (whether it be work or class). Set up a schedule that you know will allow you to earn good grades. And, maintain a day planner to help you stay organized."
Laws of computer organization and design for RISC architectures. Interfaces between hardware and software are studied. Influence of instruction set on performance is presented. Design of a processor with pipelining is analyzed. Computer arithmetic is studied. Memory hierarchy and their influence on performance are documented. Elements of interfacing and I/O organization are included. The course has design, implementation, and analytical components.
Three class hours and two lab hours per week.
Prerequisite:
CIS 261 (formerly CIS 77) or permission of the instructor.
Instructor: Igor Kholodov Igor.Kholodov@bristolcc.edu
Office: K211
Telephone: 508-678-2811 ext. 3328
The course will give students a better understanding of computing that will lay a foundation for more advanced course. At the completion of this course the student will be able to:
Explain how a program written in a high level language such as C or Java is translated into the language of the hardware
Explain how hardware executes programs that have been translated
Determine the interface between hardware and software
Describe how software instructs hardware to perform a certain task
Understand how hardware design determines the performance of a program
Specific goals to meet these objectives include:
Understanding how program algorithms can determine the performance of a program
Defining which programming algorithms will improve performance on given hardware
Programming highly parallel, highly multithreaded multiprocessor optimized for visual computing
Title: Computer Organization and Design
by David A. Patterson and John L. Hennessy
Publisher: Morgan Kaufmann
5th edition
ISBN-10: 0124077269
ISBN-13: 978-0124077263
I encourage any student in need of accommodations for a specific
documented disability to meet with me and the Office of Disability
Services (L109, 508-678-2811--Fall River, ext. 2955; Attleboro, ext.
2996; New Bedford, ext. 4011) at your earliest convenience to ensure
timely and appropriate accommodations. You may also contact the Office
of Disability Services online at
www.bristolcc.edu/students/disabilityservices
Two major components of this course are mid- and end-semester projects. Both can be developed in groups (2-3 students) or individually.
Each group will give a short (10-15 minute) presentation of the end-semester project at the end of the course.
There will be weekly programming laboratories - attendance in labs is mandatory. The labs will start the second week of classes. The labs are designed to help you with the semester projects. In the laboratories you will practice programming techniques used in multiprocessor-optimized visual computing.
Curiosity and love for learning.
Responsibility for reading the textbook and keeping current with the class material.
Ability to research any subject not covered in text or study guides.
Average grade of 60 or greater on Midterm and Endterm exams.
Completion of all design stages of the mid- and end-semester projects.
Labs/Attendance 60%
Mid-semester Project 20%
End-semester Project 20%
The Final Grades will be assigned as follows:
97 - 100 A+
93 - 96 A
90 - 92 A-
87 - 89 B+
83 - 86 B
80 - 82 B-
77 - 79 C+
73 - 76 C
70 - 72 C-
67 - 69 D+
63 - 66 D
60 - 62 D-
Below 60 F
The lecture will be the principal teaching method used in this course. "Handouts" and sample programs will be available on the class web page. Class discussions will be conducted pertaining to the lab exercises. Software demos and overhead slides will be used.
It will be imperative that the student complete all assigned readings and homework assignments prior to class. Failure to do so is a formula for failure. Coming to class prepared is essential for successful completion of the course.
Attendance is recorded weekly based on the student's ability to complete quality and timely lab/programming assignments each week. Students are considered "present" for the week if they submit the required lab assignment (with a satisfying passing grade) prior to the due date for that week. Poor attendance may affect your final grade.
The instructor reserves the right to withdraw you from the class after three (3) absences. If you choose to withdraw from the class it is your responsibility to withdraw formally from the class prior to the final withdrawal date. Failure to do so will result in an "F" grade for the course.
College-wide Academic Policies outlined in BCC Academic Catalog
directly apply to this course. It is your responsibility to read carefully and
understand Academic Information, especially Academic Integrity, Academic Dishonesty,
Academic Negligence, Plagiarism, and Classroom conduct, which are published
online:
http://bristolcc.smartcatalogiq.com/en/2013-2014/Catalog/Academic-Information/Student-Academic-Rights-and-Responsibilities
CIS-262 Home http://www.c-jump.com/bcc/c262c/CIS262syllabus.html
Reading:
BCC Student Handbook Tip: "For each hour in class, you should expect to study at least 2-3 hours outside of class. Know your limits, avoid over scheduling yourself (whether it be work or class). Set up a schedule that you know will allow you to earn good grades. And, maintain a day planner to help you stay organized."
Textbook Chapter 1, Computer Abstractions and Technology
openglbook.com Preface: What is OpenGL?
CIS-261, Intro to Computer Systems, and CIS-158, Intro to Procedural Programming, skills review:
Von Neumann model -- Language of the computer -- Binary and Integer arithmetic
Reading:
Textbook Chapter 2, Language of the Computer
openglbook.com Chapter 1: Getting Started
openglbook.com Setting up OpenGL, GLEW, and FreeGLUT in Visual C++
Learning Modern 3D Graphics Programming
By Jason L. McKesson. Please note:
This is our primary resource for OpenGL programming. The book is 100% free and 100% online.
PDF version of the book (including Kindle version) and source code for the book samples are included.
Your first homework assignment is to read the intro chapters, including Part I. The Basics.
Source, library, and object files
Executable program images and Dynamic Link Libraries (DLLs)
OS Loader
Handout: Introduction to OpenGL ( presentation )
Lab 1: Visual Studio, OpenGL, DLLs, and LIBs
Reading:
Textbook Appendix A, Assemblers, linkers, and SPIM Simulator
Presentation: MIPS Assembly (book PPT)
Handout: MIPS Assembly Language Overview ( presentation )
Operation and operands of the computer hardware
MIPS instructions and operands
Logical instructions for making decisions
Procedures and procedure calls
MIPS addressing modes
Handout: OpenGL Geometry Primitives ( presentation )
MIPS Software:
TMARS is a lightweight interactive development environment (IDE) for programming in MIPS assembly language: courses.missouristate.edu/KenVollmar/MARS/
Reading:
Textbook Chapter 3, Arithmetic for Computers
openglbook.com Chapter 2: Vertices and Shapes
Learning Modern 3D Graphics Programming
Chapter 1. Hello, Triangle! -- Following the Data -- Vertex Processing and Shaders
Presentation: Floating Point Part I (book PPT)
Handout: OpenGL Shaders Intro ( presentation )
Example: Hello, triangle! Shaders Demo
Lab 2: Compiling and Linking Shader Programs
Reading:
Textbook Chapter 4, The Processor
openglbook.com Chapter 3: Index Buffer Objects and Primitive Types
Learning Modern 3D Graphics Programming
Chapter 1. Hello, Triangle! -- Making Shaders
Presentation: Processor Performance (book PPT)
Datapath
Control
Pipelining
Lab 2 follow-up: solution (ZIP)
Example: Vertex array objects (VAO) and Vertex buffer objects (VBO)
Lab 3: Vertex Array Objects and Vertex Buffer Objects
Reading:
openglbook.com Chapter 4: Entering the Third Dimension
Learning Modern 3D Graphics Programming
Chapter 2. Playing with Colors -- Multiple Vertex Arrays and Attributes
Begin reading Part II. Positioning
Presentation: Floating Point Part II (book PPT)
Example: Index Buffers
Matrix transformations demo:
c262_lab07_x2.zip
Handout: Trigonometry ( presentation )
Handout: Vectors ( presentation )
Handout: Matrices ( presentation )
Handout: GLM ( presentation )
Example: Matrix transformations GLM demo
Reading:
Textbook Chapter 5, Memory Hierarchy
Learning Modern 3D Graphics Programming
Part II. Positioning -- Chapter 4. Objects at Rest -- Perspective Projection -- The Matrix has You -- Aspect of the World
Presentation: Memory Hierarchy (book PPT)
Memory Caches
Cache Performance
Virtual Memory
Memory Heirarchies
Disk Storage
Mid-semester project
____________Spring Break____________
Reading:
Textbook Appendix C Graphics and Computing GPUs
Learning Modern 3D Graphics Programming
Part II. Positioning -- Chapter 5. Objects in Depth -- Vertex Array Objects -- Indexed Drawing -- Overlap and Depth Buffering
Presentation: GPU Architectures (book PPT)
Handout: Programmable Pipeline and GLSL ( presentation )
Lab 6: Wavefront OBJ files
Reading:
Learning Modern 3D Graphics Programming
Part II. Positioning -- Chapter 6. Objects in Motion -- Translation -- Scale -- Rotation -- Order of Transforms
Begin reading Part III. Illumination
Handout: Diffuse and Specular Light ( presentation )
Example: Diffuse lighting
Example: Diffuse lighting with Wavefront OBJ
Lab 7: Diffuse and specular light -- Part 1: Experimenting with lights
Reading:
Learning Modern 3D Graphics Programming
Part II. Positioning -- Chapter 7. World in Motion
Part III. Illumination -- Chapter 9. Lights On
Handout: Graphics and Computing GPUs (PDF)
Example: Specular lighting
Example: Specular lighting with Wavefront OBJ
Lab 7: Diffuse and specular light -- Part 2: Adding configuration window
Reading:
Learning Modern 3D Graphics Programming
Part III. Illumination -- Chapter 10. Plane Lights -- Chapter 11. Shinies
Handout: OpenGL Application Scaffolding Notes
Lab 8: Keyboard and mouse events with GLUT
Reading:
Learning Modern 3D Graphics Programming
Part IV. Texturing
Handout: Texture Mapping ( presentation )
Example: Textures
Lab 8: solution (ZIP) follow-up
Lab 8 solution with second model (horizontal plane) added (ZIP)
Lab 9: Texture Mapping
Handout: Cube mapping ( presentation )
Lab 10: Skyboxes
Lab 11: Bump Mapping
End-semester Project Overview
End-semester project is due
Project review sessions, strictly by schedule.
Note: This syllabus is a suggested course outline and will be generally followed, subject to change according to the instructor's discretion and needs. Academic flexibility is important.