CSC-1710 Introduction to Computer Programming
Spring 2024
Instructor: |
Roger Shore |
Class Schedule: |
Office Location: |
Couch Hall 153 |
MWF 9:15AM-10:25AM CSC-2342 |
Telephone: |
841-9031 |
TTh 7:50-9:30AM CSC-4210 |
Office Hours: |
MWF 1:00-3:00PM |
TTh 9:45-11:25AM CSC-4820 |
|
Th 1:30-2:30PM |
|
E-Mail: rshore@linus.highpoint.edu |
Web site: linus.highpoint.edu/~rshore |
Course Description:
An introduction to the fundamentals of programming using a high-level, object oriented language such as C. Emphasis will be placed on syntax and semantics of the language to write correct, efficient, and easily modifiable programs. Topics include but not limited to assignment statements, conditional and iterative control structures, functions, simple data structures, and software development.
Prerequisites: none
Course time expectation/week: This is is a four hour course. According to SACs, our accrediting body, we are required to meet 200-210 minutes per week for 15 weeks. In addition, you are expected to work on projects and assignments for at least 8 hours (480 minutes) outside of class per week.
Course Materials:
- D.S. Malik, C++ Programming - Program Design Including Data Structures, Eight Ed., Cengage Learning - 2017 ISBN 978-1-337-11756-2
- An account to access the department equipment. The account can be used to access any of the machines in CH-147, CH-149, or remotely. I will develop, implement, and test all C++ programs for this class on an alienware machine. The C++ in this course will be generic. Programs written in this class should work on any machine with any C++ compiler.
Course Objectives: After successfully completing this course, a student should be able:
- To describe hardware and software components in a computer system (PC or mini-computer).
- To demonstrate a basic competency of the Linux(UNIX) operating system command line tools and utilities in a multi-user networked environment.
- To apply formal problem solving techniques to create algorithms that solve simple problem with a program.
- To write logically correct, efficient, and easily modifiable programs using a procedural programming language (C++ language) on an PC or mini-computer.
- To design, implement, test, analyze, and debug programs that use basic computation, simple I/O, functions with/without parameters, and conditional and iterative control structures.
Programming Assignments:The course is primarily a programming course that focuses on a top-down design with step-wise refinement to develop a solution to a problem. You will be introduced to pseudo-code or flowcharts to describe the logic at each level of refinement. You are expected to work individually on each assignment unless noted otherwise. Any two programs submitted by different persons but obviously written by the same individual will both receive zeros. Each program will be graded based 20 points using the following criteria.
- STYLE 30%
- Indenting and layout. Is the program readable? Does indenting help debugging and reading? Are parts of the program clearly labeled?
- Identifiers. Are the identifiers meaningful and mnemonic? Do they describe their purpose?
- Documentation/Comments. Is the program reasonably commented? Does the commenting help both the programmer and the grader? Could another student in the class figure the program out?
- Attractive output?
- PROGRAM 70%
- Algorithm. Is the program sensible? Does it solve the problem in a reasonable manner?
- Modularity. Does the program take advantage of subroutines and functions? Are its separate parts easy to isolate for testing and debugging?
- Working. Does the program work? Does it fulfill the problem description, or does it solve some other problem? Is it written in a way that it lets shortcomings be recognized and fixed?
- Use of required commands?
- Late Penalty:Programming assignments will have due dates. You will automatically get an extension of 7 days if you miss the due date. The penalty will be 1 point per day late. No program will be accepted after 7 days of the assigned due date.
Requuired Lab time expectation/week: We have observed that students that utilize the lab have greater success in computer science classes. Therefore the department has established 10-12 labs to introduce topics. Labs are 2 hours in length scheduled one per week. I would also encourage you to utilize the CH-149 computer lab and CH-147 classroom to complete all programming assignments. Lab information:
- Time - Thursday 1:30-3:20PM
- Grading - Each lab will be worth 20pts. If the lab is not completed by the end of the slotted lab time, you will have until Monday class time to have the lab completed. NOTE:If you are not physically present for the lab, you may still complete the lab but will receive a 30% (6 pts) penalty for not being present during the lab. In any case, the deadline to complete a lab is by class time on the following Monday. Labs will not be received after that time.
Course Policy:
- Attendance: Attendance will be taken daily at the beginning of class. You are expected to be present in every class meeting. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: Being absent from class does not change the due date of assignments.
- Grades: Your final grade will be determined as follows:
Component |
6 Programming Assignments |
Labs / Quizzes / Class Participation |
3 Major Tests |
Cumulative Final Exam |
Total |
Weight |
20% |
15% |
45% |
20% |
100% |
Range |
93-100 |
90-93 |
87-90 |
83-87 |
80-83 |
77-80 |
73-77 |
70-73 |
67-70 |
63-67 |
60-63 |
0-60 |
Grade |
A |
A- |
B+ |
B |
B- |
C+ |
C |
C- |
D+ |
D |
D- |
F |
You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.
- Make-Up test will not be given. No make-up test will be given unless arrangements have been made prior to the day of the test. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, you will receive an F for the course.
- In-class worksheets, quizzes, and non-programming assignments must be completed on the assigned date and cannot be made-up. NOTE: If you arrive late on the day of a quiz or exam, you will be allowed to participate, but will not be given additional time to compensate for being tardy.
- Homework: This will be assigned frequently. Some assignments will take minutes to complete others will take days. Opportunity for homework questions is given at the beginning of each class. Homework may be collected and graded occasionally.
- Academic integrity:This is taken very seriously at HPU. Unless otherwise instructed, you are expected to work independently on projects and tests. You are responsible for protecting your files and work from access by others. Instances of copying or sharing, or cheating in any way will result in an academic dishonesty charge, which can lead to an F for the assignment and maybe the course. The University Honor Code states: "Every student is honor-bound to refrain from cheating, collusion, plagiarism, . . .to confront a violation, . . . to report a violation of the University Honor Code."
- Classroom etiquette:Most of the following are rules with regards to electronics in the class that you are reuired to observe not only as a courtesy to your classmates but also to assure that you have the best opportunity for a positive learning experience.
- Laptops and tablets and other devices are permitted only for note taking class related activities. If you decide to utilize your laptop during class, all facebook, instant messengers, etc MUST be turned off during class. If you engage in unauthorized communication during class (e.g. surfing the web, gaming, etc) you will be marked absent. If the activity occurs during an exam or quiz, it constitutes academic dishonesty.
- Cell phone usage during class is prohibited. Turn off cell phones (or place on vibrate). Please do not interrupt any aspect of the class due to your cell phone. This includes text messaging, picture messaging, etc.
- Recording devices may only be used if explicitly authorized by the instructor.
- All electronic devices must be surrendered if you leave the room duri
ng any type of examination.
- Do not listen to your ipod, cd player, etc. during class (even if we are in the computer lab).
- Profanity will not be tolerated. This includes lewd remarks printed on your clothing.
- Hats are not to be worn during class.
- Lab etiquette:
- The lab was created with student input. Please help respect and maintain the lab.
- Do not eat while sitting at a workstation. If you must eat while in the lab, sit a the larger table where no equipment may be damaged except your own. Clean up the area after you finish eating.
- Clean up your area before you leave the lab. Unless you are planning to return in a few minutes, please take all books, paper, etc with you.
- DO NOT lock your workstation when you leave!
- Honor Code All students are expected to follow the University Honor Code, full details can be found in the Student Handbook. All academic work should be completed with the highest level of honesty and integrity.
- Students with Disabilities: Students who require classroom accommodations due to a diagnosed disability must submit the appropriate documentation to Disability Support in the Office of Academic Development, 4th Floor Smith Library. Student’s need for accommodations must be made at the beginning of a course. Accommodations are not retroactive.
Course Topics:
- Introduction
- Basic computer hardware
- Information about available computer equipment on campus
- Access to the computer equipment
- Login procedures
- Internet and the High Point Campus Network
- General Layout
- linus.highpoint.edu (also known as cs.highpoint.edu or math.highpoint.edu)
- linus-public.highpoint.edu
- Applications
- remote connection to machines on the net: ssh, telnet, putty(ssh)
- transfer files to remote on the net: scp, ftp, winscp(gui scp)
- email
- cygwin - (UNIX like environment in Windows - includes: C++, ssh, and scp. I will use this in class.)
- The Text Editor (vi or vim, xwpe, gvim)
- Linux (UNIX)
- General Layout - tree structure
- General Purpose Commands
- ls, cp, mv, rm, mkdir, rmdir, locate, talk, ...
- Advanced Commands
- grep, more, cut, pipes, ...
- C Programming Language Concepts
- Program layout (Comments, identifiers, keywords)
- Data types - floating point, integer, character, string, enumeration
- Streams and File I/O (standard, redirection) - I/O
- Assignments and expressions
- notation, integer and real operators,
- boolean, bitwise, address, arrays,
- structure/union, operator precedence,
- arithmetic functions
- Procedures and functions
- layout, Scope of identifiers,
- parameters (pass by value, pass by reference, pass by pointer)
- Sequence control
- if statement
- switch statement
- Loop control
- for statement,
- while and do while statements, break, continue
- Exceptions
- More on types
- I/O Library
- C++ topics
- Programming Topics
- Formula based - given a formula, prompt user for input, process data, output results.
- Pixel processing - blend two pixels
- Factorial, Fibonacci, and other sequences
- Convert a color image to a black and white image
- Create a PPM image
- sorting: bubble, selection, shell techniques
- searching: sequential and binary