COSC 112: Computer Science I

Fall Semester 2018 Course Information
Instructor:
Dr. Sharad Sharma

Department of Computer Science

Bowie State University

E-MAIL: ssharma@bowiestate.edu

CLASS HOURS: Tuesday & Thursday: 12:30 pm – 2:40 pm CSB 301
OFFICE HOURS: Tuesday 2:55 – 4:55 PM, Wednesday: 12:55 – 4:55 PM or by appointment
OFFICE LOCATION: Computer Science Building, Room 317


Required Text:   C++ Programming: From Problem Analysis to Program Design, 8th Edition, by D. S. Malik, Cengage Learning, 2018, ISBN-13: 978-1-337-10208-7
                                   


COURSE DESCRIPTION –he study of the formal syntax and semantics of a programming language. Topics include expressions, assignments, declarations, control structures, arrays, data abstractions, subprograms, user interfaces, error handling, end of file handling, string handling. Aspects of Software Engineering include top down design, structured programming, and style in programming conducted in a block structured language, such as Pascal, C, or C++. Ethical and social issues include information privacy, data reliability, data security, including wiretapping and encryption, and ergonomics. This course may be used to satisfy the General Education Requirement in the Technology category.

Emerging Issues:
This course supports Bowie State University's efforts in sustainability. Green computing, the impact of computer use on the environment, and efforts to become sustainable are a focus. A LibGuide (library guide) named "Sustainability and Green Computing" is available on the Library website. A direct link to it is http://bowiestate.libguides.com/sustainability.


General Education Competencies:

I. Written and Oral Communications

a. Analyze and discuss critical issues and recurring themes in the discipline
b. Conduct research and evaluate information using the appropriate methods of the discipline.

II. Scientific and Quantitative Reasoning:

a. Analyze and understand the physical and biological world

III. Critical Analysis and Reasoning:

a. Apply skill in analysis, synthesis and problem solving
b. Apply logical reasoning in the examination and resolution of tasks

IV. Technological Competency:

a. Create a document using word processing software
c. Construct a presentation using presentation software
d. Manipulate large amounts of data

V. Information Literacy:

a. Identification of key concepts and terms that describe the information needed


COURSE OBJECTIVES - Upon completion of this course, the student will be able to:


Student Outcomes:
COSC 112 supports ABET Student Outcomes 1, 2, 3, and 4.

Students will have ability to:
1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline.
3. Communicate effectively in a variety of professional contexts.
4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
5. Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Specific Student Requirements:
Students are expected to maintain regular attendance at class and examination periods. Active, regular participation is essential for success in this class. Introductory material must be well known in order to grasp the topics that follow. If a student misses a test (with an excused absence), it is the responsibility of the student to make arrangements with the instructor for the make-up exam within 1 week of the original examination date.

Students are expected to adhere to the high standards of the Bowie State University Code of Student Conduct.

 


Assignments:
1.         Lab & Homework Assignments : 
-           Solve assigned problems from the text or elsewhere
-           Study assigned chapters of the text and work through relevant examples.
-           Laboratory Portfolio: Compile the printouts of programs and homework in an organized loose-leaf notebook or folder.  Highlight interesting problems and their resolution. Practice writing explanations using the terminology of the course.
                                                        
2.         Tests:
-          Problems are based on homework assignments, text book readings and class discussions; at least one problem will require writing a complete program. Tests are handwritten, and completed in class.
 
3.         Programming Assignments:
-        Programs are to be sent (use Blackboard drop box or email) to the instructor prior to the time of class.  Any program received after the time of the class is considered late (NO EXCUSES) and will receive a reduced score.

4.         Tutoring:
-        Once a week, attend a tutoring session, for math and/or computing.
-        Maintain the tutoring log sheet, and keep it in the Laboratory Portfolio.
-        Show the log to your instructor as required. It will be collected at the end of the semester.

 


Course Grade Derivation

Lab & Homework Assignments                            10 %
Major Programming Assignments  (7-10)            20 %
Mandatory Tutoring & Attendance                         5  %

Ethics/Global Warming paper/presentation 10%
3 Tests                                                                      30 %      
Final Exam                                                               25

 


Class Layout

WEEK

DATES

CHAPTER

TOPIC

Week 1

8/27 – 8/31

Chapters 1, 2

Overview; Algorithms;
Basic Elements of C++

Week 2

9/3 – 9/7

Chapter 2

Basic Elements of C++
Data types; variables; Basic programs

Week 3

9/10 – 9/14

Chapter 3

Input/Output (Functions for I/O)

Week 4

9/17 – 9/21

Chapter 3

Input/Output (File I/O)
** Test #1 on Chapters 1, 2, 3

Week 5

9/24 – 9/28

Chapter 6

User-Defined Functions (Part I)
Value-returning functions, Pass-by-Value Parameters

Week 6

10/1 – 10/5

Chapter 6
Chapter 4

User-Defined Functions (Part I)
Control Structures I

Week 7

10/8 – 10/12
(BSU is open on 10/8)

Chapter 4

Control Structures I (if, if…else, switch)

Week 8

10/15 – 10/19

Chapter 5

Control Structures II (while)
** Global Warming and Greening Summary Paper Due **

Week 9

10/22 – 10/26

Chapter 5

Control Structures II (for, do…while)
** Test #2 on Chapters 4, 5, 6

Week 10

10/29 – 11/2

Chapter 6

User-Defined Functions (Part II)
Void Functions, Pass-by-Reference Parameters

Week 11

11/5 – 11/9

Chapter 6

User-Defined Functions (Part II)
Void Functions, Pass-by-Reference Parameters

Week 12

11/12 – 11/16

Chapter 7

User-Defined Simple Data Types; Namespaces; String Type
** Test #3 on Chapters 6, 7

Week 13

11/19 – 11/21
11/22 Thanks-giving Recess

Chapter 8

Arrays and Strings
One-dimensional arrays

Week 14

11/26 – 11/30

Chapter 8

Arrays and Strings
One-dimensional arrays

Week 15

12/3 – 12/10

Review, Presentations

**Ethics Paper Due; Presentations

Exam Week

12/12 – 12/19

Final Exam

Final Exam on ___________

        

 


Course Related Links

* Syllabus
* How to create a project and add a source file (Visual C++)
* Assignments


 


USEFUL LINKS

  1. Visual Studio 2008 Express Editions Tutorial

  2. Running Visual C++ 2008 Express Edition for the First Time

  3. Compiling a Sample Application "Hello World"

  4. C++ Namespaces

  5. Namespaces

  6. cccfiles.zip (Graphics Libraries)

  7. Input output files

  8. Input output files
  9. Input output files
  10. Virtual Functions

  11. Virtual Functions

  12. Polymorphism

  13. Introduction to Polymorphism in C++

  14. Horstmann's Graphics Libraries and Creating a Visual C++