Introduction to Computer Science

CSCI 105 Fall semester, 2016

 

 

To the Bottom of the Page.                                    

 

Instructor: Grace Lew (Section 1 and Section 2) Jonathan McCann (Section 3)

Emails: Email the instructors through Canvas

 

Syllabus: Compact Version

 

Section 1: MW 10:30-11:45am          Section 2: MW 4:30-5:45pm              Section 2: MW 6:00-7:15pm

Location: BUSN 209 

 

Faculty Office Hours: Math & CS department at Grove 8.

(i)             Professor Lew: T-Th 1:00-4:00PM, F 11:00-1:00PM

 

TAs: Alvin Suh (head TA), Jarvis Flores, Wily Hung, William Gertsch, Dennis Sue.

 

TA Hours: Grove 10A, Math/ Computer Science lab.

M 11:30-12:30pm,  3-5pm     T 3-5pm          W 11:30-12:30pm      R 2-4pm

 

 

*************************************************************************************************

About programming assignments:

·       Integrity rules and grading policies: Carefully read the descriptions here about the integrity rules and the grading rubrics.

·       Self-evaluation report:  Carefully read through the self-evaluation report, especially the integrity review, test cases, and the peer review.

·       Submission of your work: For each programming assignment, (i) compress your entire Visual Studio project into a zip file and submit the zip file under Canvas and (ii) fill out the self-evaluation report and upload it under canvas

·       The C++ compiler used for grading: We use Microsoft Visual C++ 2013 Express Edition (instead of the Visual studio 2015 version) to compile your programs on the Windows platform and determine your grades based on the results under such settings.  You can download, install, and register Microsoft Visual C++ 2013 Express Edition on Windows platform for free.

·       How to compile your C++ programs: Read this introduction to how to compile your C++ programs and explore the sample Visual C++ project folder compressed inside this zip file.

 

About the reading reports:

·       Effort (2 points): How much time have you spent for the reading? What percentage of the contents in the reading do you think you understand? Have you come to the class this week?  Assessment: The student is expected to (i) have attended the class this week at least once (0.5 point), and (ii) have either gained a good understanding of 80% or more of the contents or have spent at least three hours in the reading (1.5 points).

·       Reflection on the reading (2 points): Put down 1~2 paragraphs of your thoughts such as notes of new insight you gained, interesting things encountered, questions of things you don’t understand,  and so forth.  Assessment: the student is expected to show substantial evidence of understanding or effort of trying to understand the contents in the reading.

 

*************************************************************************************************

Submission of all your work: go to Biola Canvas

Your grades: see them under Biola Canvas

 

Late policy:

·       The submission link remains open for 2 more days after the due date as a grace period, but 1 point will be deducted for late submission after the due date while the submission link is still open.

·       You will receive no points after the submission link on canvas is closed unless it is something like a serious health issue with statements from the doctor as proof.

*************************************************************************************************

 

Week 1: What is a computer program?  

 

Lab #1 (First exposure to a very simple computer application program): Due: Wednesday, Aug. 31

 

Reading #1: Reading report due: Due: Wednesday, Aug. 31

(i)             Read Sections 1.2-1.6 of the textbook (7th Ed./8th Ed.) and try to understand this very simple C++ program.

(ii)           Read this introduction to how to compile your C++ programs.

(iii)         Reflect on what you have done in Lab #1 above. In your reading report, succinctly describe any technical problems you have encountered while doing Lab #1 above.

(iv)          Send in your reading report through Biola Canvas.

 

 

*************************************************************************************************

 

Week 2: Basics of variables, types, input/output, and the assignment statements

 

Reading #2: Reading report due: Wednesday, Sept. 7

(i)             Read 2.1~2.9 and 2.12 (7th Ed. & 8th Ed.) of the textbook

(ii)           Send in your reading report through Biola Canvas.

 

 

Programming Assignment #0:

Due: Wednesday, Sept. 7

 

(i)             Highlight: Using double variables and the assignment operator ' = ' for a temperature conversion program:

(ii)           Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 0. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 0. Then repeatedly compile, test, and debug your program until it works correctly. Also see how to compile your C++ programs.

(iii)         Submission: (i) Compress your entire Program 0 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Week 3: Arithmetic operators and mathematical expressions    

 

Reading #3: Reading report due: Wednesday, Sept. 14

(i)             Required: Sections 2.13~2.15, 2.17 and 3.2~3.3 (7th Ed. & 8th Ed.) of the textbook

(ii)           Optional: All the other sections in Chapter 2 and Chapter 3, especially 2.16~2.17, 3.4~3.5, and 3.8~3.10 as long you have time to learn more.

(iii)         Send in your reading report through Biola Canvas.

 

Programming Assignment #1 Due: Wednesday, Sept. 14

(i)             Highlight: Using int variables and the integer modulus operator ' % '  and more for a currency conversion program.

(ii)           Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 1. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 1. Then repeatedly compile, test, and debug your program until it works correctly. Also see how to compile your C++ programs.

(iv)          Submission: (i) Compress your entire Program 1 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

*************************************************************************************************

 

Week 4: Relational operators, logic expressions, and if statements

Reading #4: due: Wednesday, Sept. 21

(i)             Required: Sections 4.1~4.6  (7th Ed. & 8th Ed.) of the textbook

(ii)           Optional: All the other sections in Chapter 2 and Chapter 3, especially 2.16~2.17, 3.4~3.5, and 3.8~3.10 as long you have time to learn more.

(iii)         Send in your reading report through Biola Canvas.

 

Programming Assignment #2 Due: Wednesday, Sept. 21

(i)             Highlight: Using relational operators, logic expressions, and if/else statements for a payroll program.

(ii)           Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 2. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 2. Then repeatedly compile, test, and debug your program until it works correctly.

(iii)         Submission: (i) Compress your entire Program 2 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Week 5: More on if/esle statements, logic expressions, and the Boolean type

Reading #5: due: Wednesday, Sept. 28

(i)             Required: Sections 2.10, 4.7~4.12  (7th Ed. & 8th Ed.) of the textbook

(ii)           Optional: All the other sections in Chapter 4, especially 4.14~4.15 in addition if you want to learn more.

(iii)         Send in your reading report through Biola Canvas.

 

 

Programming Assignment #3  Due: Wednesday, Sept. 28 (This one is hard and you should start as early as possible.)

(i)             Highlight: Using relational operators, logic operators, logic expressions, and if/else statements for a date validation program.

(ii)           Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 3. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 3. Then repeatedly compile, test, and debug your program until it works correctly.

(iii)         Submission: (i) Compress your entire Program 3 folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

Week 6: Basics of loops: while, do while and for loops

Reading #6: Reading report due: Wednesday, Oct. 5

(i)             Required: Sections 5.1~5.10   (7th Ed. & 8th Ed.) of the textbook

(ii)           Send in your reading report through Biola Canvas.

 

Programming Assignment #4A  Due: Wednesday, Oct. 5

(i)             Highlight: Using a while loop to implement an ATM-like service program.

(ii)           Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 4A. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 4A. Then repeatedly compile, test, and debug your program until it works correctly.

(iv)          Submission: (i) Compress your entire Program 4A folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

*************************************************************************************************

Week 7: More about loops

Reading #7: Reading report due: Wednesday, Oct. 12

(i)             Read Sections 4.14, 4.15, 5.11   (7th Ed. & 8th Ed.) of the textbook.  Optional: Section 5.12

(ii)           Review Sections 5.1~5.10   (7th Ed. & 8th Ed.) of the textbook as needed

(iii)         Send in your reading report through Biola Canvas.

 

Programming Assignment #4B  Due: Wednesday, Oct. 12

(i)             Highlight: Using nested loops for finding prime numbers.

(ii)           Writing your program: On Windows, you can simply download this zip file of a sample project and extract it to get a sampleProject folder and rename the folder as Program 4B. Open up the project and replace the contents of main.cpp with your own C++ code for Programming 4A. Then repeatedly compile, test, and debug your program until it works correctly.

(iii)         Submission: (i) Compress your entire Program 4B folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

*************************************************************************************************

Week 8:   Midterm Test #1 | Torrey Conference

 

Midterm Test #1:  Monday, Oct. 17.

 

*************************************************************************************************

 

Week 9: Basics of functions.

Reading #9: Reading report due:  Wednesday, Oct. 26

(i)             Required: Sections 6.1~6.5   (7th & 8th Ed.) of the textbook

(ii)           Send in your reading report through Biola Canvas.

 

Bits-and-Bytes Homework: due: Wednesday, Oct. 26

 

 

*************************************************************************************************

 

Week 10: More on functions.

Reading #10: Reading report due: Wednesday Nov. 2

(i)             Required: Sections 6.6~6.10   (7th & 8th Ed.) of the textbook

(ii)           Optional: Sections 6.11~6.16   (7th & 8th Ed.) of the textbook

(iii)         Send in your reading report through Biola Canvas.

 

Programming Assignment #5A  Due: Wednesday, Nov. 2

(i)             Highlight: Defining and calling void functions.

(ii)           Submission: (i) Compress your entire Program 5A folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Week 11: Basics of arrays

Reading #11: Reading report due: Wednesday, Nov. 9

(i)             Read Sections 7.1~7.6 (7th Ed. & 8th Ed.) of the textbook on the basics of arrays

(ii)           Send in your reading report through Biola Canvas.

 

Programming Assignment #5B  Due: Wednesday, Nov. 9

(i)             Highlight: Redo the prime number processing program by defining and calling general functions .

(ii)           Submission: (i) Compress your entire Program 5B folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

**************************************************************************************************************

 

Week 12: More on arrays

Reading #12: Reading report due: Wednesday, Nov. 16

(i)             Read Sections 6.13~6.14 and 7.7~7.11 (7th Ed. & 8th Ed.) of the textbook on the basics of arrays.

(ii)           Send in your reading report through Biola Canvas.

 

Programming Assignment #5C  Due: Wednesday, Nov. 16

(i)             Highlight: Redo the birthday program by defining and calling general functions.

(ii)           Submission: (i) Compress your entire Program 5C folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

 

*************************************************************************************************

 

Nimgame Programming Project: due: Wednesday, Nov. 23

 

Integrity rules against plagiarism for this project:

 

Things you can do: (i) You may discuss the rules of the nim game. You may discuss ways to determine whether there is a ‘best’ move or not and if so what the best move is. (ii) Some of the things to implement are related to the earlier regular programming assignments. You can still discuss these past programming assignments and ask the TAs questions about these assignments. (iii) You can reuse any C++ code you have written for the previous programming assignments and use C++ code covered by the reading assignments in the textbook. However, other than these two sources, you need to write your own C++ code by yourself.

 

*************************************************************************************************

 

Week 13: Searching and sorting arrays

Reading #13: Reading report due: Wednesday, Nov. 23

·                Read Sections 8.1~8.2 (7th Ed. & 8th Ed.) of the textbook on the basics of linear search and binary search.

·                Read Sections 8.3~8.4 (7th Ed. & 8th Ed.) of the textbook on the sorting algorithms.

·                Review Section 5.11 (7th Ed. & 8th Ed.) of the textbook on file input/output.

 

Programming Assignment #6A  Due: Wednesday, Nov. 23

(i)             Highlight: Using files and an array for information processing.

(ii)           Submission: (i) Compress your entire Program 6A folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

*************************************************************************************************

 

Week 14: Structures as abstract data types  |  More on searching and sorting arrays

Reading #14: Reading report due: Wednesday, Nov. 30

·                Review Sections 8.3~8.4 (7th Ed. & 8th Ed.) of the textbook on the sorting algorithms.

·                Read Sections 11.1~11.6 (7th Ed. & 8th Ed.) of the textbook on the basics of structures as basic data types.

·                Send in your reading report through Biola Canvas.

 

Programming Assignment #6B  Due: Wednesday, Nov. 30

Highlight: Using files and an array of structures for information processing.

(i)             Submission: (i) Compress your entire Program 6B folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

**************************************************************************************************************

 

Week 15: Basics of strings in C++  |  Review

Reading #15: Reading report due: Wednesday, Dec. 7

·                Read Sections 10.4 and 10.7 (7th Ed. & 8th Ed.) of the textbook on the basics of strings in C++.

·                Review Sections 8.3~8.4 (7th Ed. & 8th Ed.) of the textbook on the sorting algorithms.

·                Send in your reading report through Biola Canvas.

 

 

Programming Assignment #6C  Due: Wednesday, Dec. 7

(i)             Highlight: Using files and an array of structures for information processing.

(ii)           Submission: (i) Compress your entire Program 6C folder into a zip file and then upload it through Biola Canvas. (ii) Carefully fill out this self-evaluation report and upload it through Biola Canvas. Note that you will receive no point for missing the self-evaluation report or missing the integrity review in the report.

 

     Faith and Learning Integration Assignment on Creation and Computer Science, due Dec. 7 

·                Submit your reflection through Canvas.

 

*************************************************************************************************

TA hours at Grove 10A (Math/ Computer Science lab):

M 11:30-12:30pm, 3-5pm.     T 3-5pm.         W 11:30-12:30pm.     R 2-4pm.

*************************************************************************************************

 

To the Top of the page