**TROY UNIVERSITY** **CS 255** **Computer Science I** ### COURSE SYLLABUS
**PRE-REQUISITES:** MTH 1112 or permission of instructor **INSTRUCTOR INFORMATION:** **Huu-Tu DANG, Ph.D** Dept. of Applied Mathematics and Informatics, Hanoi University of Science and Technology Phone: 0889508290 Email: tu.danghuu@hust.edu.vn **INSTRUCTOR EDUCATION:** Ph.D. in Computer Science, 2025, Toulouse Capitole University, France M.S. in Mathematics and Informatics, 2021, Hanoi University of Science and Technology B.SC in Mathematics and Informatics, 2020, Hanoi University of Science and Technology **CATALOG DESCRIPTION:** An introduction to the theory and development aspects of a high level programming language. The course provides students with a foundation in problem solving, algorithm development, and program design using C++. It covers programming methodologies, control structures, predefined and user defined functions, input/output streams, control structures, logical expressions, enumeration, repetition, multidimensional array and string manipulation, structures, searching, sorting techniques, and advanced input/output. Program analysis, design, development and testing are emphasized. **STUDENT OUTCOMES:** * Describe the components of a microcomputer system. * Explain the relationship between hardware and software. * Explain the history of programming languages. * Plan and write algorithms using the sequence, selection, and repetition structures. * Differentiate between source code, object code, and executable code. * Describe the C++ data-types, arithmetic and logical operators. * Implement functions and function prototypes. * Demonstrate an understanding of: Input/Output, Selection and Repetition Control Structures, User-Defined Functions, User-Defined Simple Data Types, Namespaces, and the String Type, Arrays and Strings and Records (structs). * Analyze specific problems and develop C++ solutions using sequence, selection, and repetition structures. Students will demonstrate the above through their performance on the assigned programming projects, exams and discussion Blackboard exercises. **GRADING** * Midterm Exam - 35% * Final Exam - 35% * Six Programming Projects - 30% (6 projects at 5% each) **GRADING SCALE:** Grades will be assigned according to the following scale: * **A:** 90 - 100 * **B:** 80 - 89 * **C:** 70 - 79 * **D:** 60 - 69 * **F:** below 60 **TEXTBOOK** Tony Gaddis, *Starting out with C++*, Six Edition, Pearson, 2009, ISBN: 978-0321545886 A C++ compiler is needed. Microsoft visual studio or C++ express are recommended for the course. You can download them free online as the instructions provided. "Computer problems" are not an acceptable excuse if you cannot turn in homework by the deadlines. **METHODS OF INSTRUCTION:** In-Classroom Lectures, Labs, Tests, Handouts/Homework, Class Participation and Reading assignments. **HONESTY AND PLAGIARISM** *Plagiarism is defined as submitting anything for credit in one course that has already been submitted for credit in another course, or copying any part of someone else’s intellectual work – their ideas and/or words – published or unpublished, including that of other students, and portraying it as one’s own. All students are required to read the material presented at: http://troy.troy.edu/writingcenter/research.html All material submitted for grade must be the student’s own work. Anyone found cheating and/or copying will receive an automatic 0 for that assignment or exam or dismissal from the course. This goes for the person who copies as well as the person who allows their work to be copied. Serious penalty (e.g: one lower letter grade) will be given for cheating and plagiarism and students will be required to retake a course if they get D or worse for that course. **OTHER POLICY** There will be no make up test. A missed test or exam will result in 0 points. Contact me in advance in case of emergency such as illness. An original letter addressed to me on a letterhead paper from a physician or hospital stating that you could not take the test or exam as scheduled is necessary for me to consider your case. Regarding attendance, students who are absent for more than 3 days, with or without the instructor's permission, will not be allowed to take the final exam and will receive an F for the course. **PROJECTS** Students are required to submit their source code file(s) as email attachments prior to the project deadline. In the event you are unable to complete a project or make it work correctly, be sure to email your latest source code to receive partial credit. Students failing to submit projects within the allotted time will receive a project grade of zero and will not be allowed to make late submissions. Exceptions will be made ONLY under extenuating circumstances and ONLY with prior approval by the instructor. To receive full credit, projects must be submitted on or before the due date. ### **COURSE SCHEDULE** | Lecture | Topic | Reading/Assignment | | :--- | :--- | :--- | | Lecture 1 | Course Introduction, Compiler information. Computer system, Programming Language, Input and Output | Gaddis, Chapter 1 | | Lecture 2 | C++ Introduction, part of program, cout object, variable, data type: integer, floating point | Gaddis, Chapter 2 | | Lecture 3 | Expressions and Interactivity, Cin object | Gaddis, Chapter 3
Project 1 | | Lecture 4 | Making Decisions, Branch statements | Gaddis, Chapter 4 | | Lecture 5 | Switch statement, Menu system | Gaddis, Chapter 4
Project 2 | | Lecture 6 | Looping, while and do while statement | Gaddis, Chapter 5 | | Lecture 7 | For loop, reading from a file | Gaddis, Chapter 5
Project 3 | | Lecture 8 | Midterm exam | | | Lecture 9 | Function: modular programming, function prototype, sending data to function | Gaddis, Chapter 6 | | Lecture 10 | Function: local, global and static variable, reference variable as parameter, overloading function | Gaddis, Chapter 6
Project 4 | | Lecture 11 | Array: One and two dimension array | Gaddis, Chapter 7 | | Lecture 12 | Sorting and Searching Arrays | Gaddis, Chapter 7
Project 5 | | Lecture 13 | Structured Data | Gaddis, Chapter 11 | | Lecture 14 | Structured Data | Gaddis, Chapter 11
Project 6 | | Lecture 15 | Final exam | |