CIS-255 Home: http://www.c-jump.com/bcc/c255c/c255syllabus.html
- Welcome! (press F5 to refresh and get the latest version)
- CIS-255 Online -- submit your homework here
- CIS-255 Youtube Lectures
- 2014 Samples. See also 2013 Samples and 2012 Samples.
- Posted Aug 23 :
- Please be sure to read carefully and understand
course policies and formats outlined in CIS-255 syllabus.
C++ is a widely used programming language for application development. In this course, the students learn a language that has many practical uses in the real world. The course introduces C++ syntax and functions not found in the traditional C. The fundamental concepts of the object oriented paradigm are introduced and object oriented programming is stressed in place of traditional structured programming. Object arrays, pointers to objects, and linked lists of objects are the focus of the class. Prerequisite: CIS 155 (formerly CIS 60) or permission of the instructor. Three class hours a week.
Competency met: Critical Analysis (1.0), Technical Literacy (8.0)
Instructor: Igor Kholodov Igor.Kholodov@bristolcc.edu
Telephone: 508-678-2811 ext. 3328
In this course students will become familiar with fundamental concepts of C++, one of today's most important programming languages. Modern C++ programs are fast, reliable, and portable across multiple hardware platforms and operating systems. For those who need the ultimate power in writing computer programs, learning C/C++ skills is a guaranteed way to succeed.
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/C++ is translated into the language of the OS/hardware
Explain how OS/hardware executes a program that has been translated
Describe how GUI software interacts with OS/hardware
Understand how software design impacts the performance of a program
Specific goals to meet these objectives include:
Using C++ classes to organize the program
Understanding constructors and destructors
Programming with static data members and static member functions
Using reference variables
Writing overloaded functions and operators
Understanding dynamic memory allocation
Using class inheritance
Writing virtual functions
Programming with templates and C++ standard library (STL)
Understanding how program algorithms determine the performance of a program
Title: Programming Principles and Practice Using C++
by Bjarne Stroustrup
Book's online resources: http://www2.research.att.com/~bs/
The textbooks are available in the bookstore.
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
The major components of this course are six programming projects and weekly programming laboratories - class attendance is mandatory. The labs will start the first week of classes. The labs are designed to help you with the programming projects. In the laboratories you will practice programming techniques used in Object-Oriented Design and Graphical User Interface programming.
Curiosity and love for learning.
Responsibility for reading the textbook, studying the handouts, and keeping current with the class material.
Ability to research any subject not covered in textbook or lecture handouts
Average grade of 60 or greater on quizzes and the Final Exam.
Completion of 80 percent of all homework assignments.
Labs/Attendance 20% Homework Assignments 50% Quizzes 20% Final Exam 10%
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 completes all assigned readings and required homework prior to class. Inability to do so is a formula for failure. Coming to class prepared is essential for successful completion of this 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, 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
Handouts that summarize the important material should be used for study and further research every week. All materials are available for download on the course web site. Follow the course outline to locate the related info.
Class discussions will be conducted pertaining to the programming assignments before each assignment and after. Assignments received after the due date will not be accepted for credit, unless prior arrangements have been made with the instructor. Duplicate assignments received from two or more students will not be graded. Assignment submissions should be the work of your own study, research and understanding.
Additional help with programming assignments is available during the instructor's weeikly office hours. If you need one-on-one tutoring or help to get caught up with the class, make an appointment with the instructor. Appointments are arranged via e-mail or during class breaks. Half hour time slots are available for that purpose. An assistance with simple questions can be obtained through instructor's e-mail.
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 2, Hello, World!
Textbook Chapter 8.3, Header files
Textbook Chapter 17.3, Memory, addresses, and pointers
Textbook Chapter 17.4, Free store and pointers
Handout: C++ pointer arithmetic
Handout: strlen, strcpy, strcmp
project configuration walkthrough
release and debug builds; compiler and linker settings; output directories
console and a plain window builds; debugging and testing
Install and configure FLTK library on your home machine
Configure and test Lab 1 project on your home machine
Watch youtube videos on this playlist:
making a copy of an existing project
Using FLUID GUI designer, saving FLUID project, code generation for a simple window
operator new, pointers, pointers to objects, pointer-to-member -> operator
Week 1 and 2 reading
Watch youtube videos on this playlist: Win32 GUI Project using FLTK and FLUID
Lab 3: FLUID Window Class
C++ class, public and private access specifiers
code generated by FLUID: the content of .H and .CXX files
class CFluidWindow CFluidWindow::CFluidWindow() class CDemoWindow : public CFluidWindow public: void show() // what it does, how does it get called from main()
Watch youtube videos on this playlist:
Quiz: C++ Memory Access
Textbook Chapter 9, Technicalities: Classes, etc.
Textbook Chapter 8.5, Function call and return
Lab 3a: Window closing callback
static class members: functions and variables
Lab 3b: Fl_Input, Fl_Output, Fl_Button
The this pointer
C++ project organization: .H .CPP .CXX .OBJ .LIB .EXE .DLL
std::stringstream and double-to-text conversions
Watch youtube videos on this playlist:
Textbook Chapter 9.7 Class interfaces
Online Q&A C++ FAQ Lite: Constructors by Marshall Cline
C++ class constructors and destructor
Usage of Fl_Box, Fl_Image, and Fl_JPEG_Image
Resizing the image to fit the Fl_Box
Lab 7: Fl_File_Chooser
Using dynamic memory
new and delete
Using WinMerge to compare two files
Lab 8: Fl_Native_File_Chooser
Lab 9: Fl_Box and custom drawing
Custom drawing - where and when
Drawing API: 2D and 3D, Cartesian coordinate system, and transformations (math!)
Lab 10: CPrimitiveLine and mouse events
std::vector and C++ STL Animated Tutotial cjumpstl.exe
Widget borders and clipping
Lab 12: Radio buttons
Lab 13: Check box widget
Widget activate() and deactivate()
Textbook: refer to the textbook index to find related information
Using WinMerge to compare folders
Lab 15: Scratch Pad App
Hierarchy of classes
Pointers to CPrimitiveBase
Pure virtual functions
Resource Acquisition Is Initialization (RAII) idiom (wikipedia.org)
FLTK drawing functions
Watch videos: Week 13 Class Inheritance and Polymorphism
Lab 15 source code documentation
Refactoring (restructuring) the source code
Lab 20: FLTK Menu classes
Menu bar, menus, and menu items
Overloaded operator <<
Saving and loading a string from a file
Thread of execution, UI thread, worker thread
System timer and timer events
Progress bar animation
Using lists in games and simulations. "Bugs and worms" example. A "worm" is a series of nodes in a list. While moving, the nead tells the tail where to go on each move. The keyboard moves the head, the rest of the worm's body (list nodes) know where to move themselves.
Watch videos: C++ linked data structures
Homework Project 6 is due
Project review sessions
Textbook Chapter 8.7, Namespaces. Handout:
Textbook Chapter 5.6, Exceptions. Handout: C++ Exceptions ( presentation )
See also: exceptions tutorial from cplusplus.com
Object-oriented Design Patterns, Part I ( presentation )
Object-oriented Design Patterns, Part II ( presentation )
C++ Arrays and Standard Library Algorithms ( presentation )
Floating Point Primitive Types
C++ Floating-Point Numbers
Object Oriented Programming in C++
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.