INFO 1181/CS 1181 Informatics and Programming I 3 credits
Problem solving methods and algorithm development with an emphasis on programming style with Java or C#. Includes Secure Software Concepts, such as what constitutes secure software and what design aspects to take into consideration to construct hack-resilient software. May be cross listed with CS 1181. PREQ or COREQ: MATH 1143 or MATH 1147. F, S
Course Description: The foundations of programming encompass not only the basic constructs common to almost all programming languages, but also problem solving techniques and analytical thinking. The course teaches the basics of structured programming including the creative use of sequence, selection and iteration, as well as hierarchical decomposition, procedures, arrays, sequential files, and string manipulation through the use of the C++ within the Visual Studio Environment. The course will require considerable effort in designing, coding, and debugging programs.
Course Objectives: By the end of the course, the successful student will be able to do the following: list and explain the fundamental concepts of programming languages; explain and utilize a narrow range of the features available in the C++ programming language; analyze programming requirements in order to understand what type of data and processes are involved in the system; design a modular approach to satisfy those requirements; organize program code to implement the design; write and debug programs; verify that the results obtained satisfy the requirements.
Class Times and Office Hours: 1:00-1:50 MWF 1181, section 03 Pocatello: BA 104. David Beard 282.2684 beard@isu.edu Office: ????. Idaho Falls office hours will be held from roughly 12:20-? in the cafeteria when I teach from Idaho Falls, which generally with be Tuesdays; it would be useful - but not essential - if you would send me some email if you are planning to show up at IF Office hours. Pocatello office hours will be held in my office, from 2:00-3:00 MWF. I generally am in my office during the week, so email for an appointment or drop by if you can't make office hours; I often keep my door closed when I am in my office so please knock. If no one shows up much after 2:20 or so, I may go do something else, so please send me email or phone if you are planning on showing up. Text Book: Introduction to Programming with C++ SECOND EDITION Y. Daniel Liang Prentice Hall
Fine Print: 50% homework, 50% tests. You must score at least 60% on the exams to earn a "D", 70% to earn a "C", and 80% to earn a "B", and 90% to earn an "A"; note that the 60%,70%, 80%, and 90% are necessary for the "D", "C", and "B" grades, but not sufficient. Tests are closed book, closed machine, closed notes except for a single 3X5 card. If the midterm is missed, the grade for the final will be used for the midterm. University policy prevents the scheduling of a final exam at any other time. than the officially scheduled time. If you are unable to take the exam during that period then you are advised to withdraw from the class. I reserve the right to deduct points on a test problem for significantly irrelevant code even if that deduction may result in a negative point value for that test problem of up to -3 points. All homework must be turned in using Moodle with the Moodle time stamp used to determine whether the assignment was on time, so don't submit files after the due date as it may modify that timestamp. No late assignments will be accepted, but one of the first 3 assignments can be dropped. C++ code should be submitted as a single .txt file (some visual C++ projects may require being placed into a single .zip file containing the entire project). Note: the initial assignment is a drill, not a project and is not included in calculating the grade. All programming assignments must conform to the variable and object naming standards and all other coding and documentation standards; I will start enforcing these standards as of the third project. A concise block comment should be placed at the top of each program and above each function including your name, date, and a single sentence without "ands" or "ors" that exactly describes that function's or classes' purpose. For Herman The Fly and subsequent projects a structure chart, generally neatly hand drawn and scanned) should be turned into moodle along with the .txt file(s) containing the program. One can generate a structure chart file using word, powerpoint, visio, or by scanning a neatly hand drawn diagram. In general, programs will be graded based on meeting assignment specifications, use of standard interface design, modular code, code readability, and internal documentation. Our program is committed to all students achieving their potential. If you have a disability or think you have a disability (physical, learning disability, hearing, vision, psychiatric) which may need a reasonable accommodation, please contact the ADA Disabilities & Resource Center located in Graveley Hall, Room 123, 282-3599 as early as possible.
Collaboration, Study Teams, and Cheating: Students are encouraged to form study teams to help each other understand new concepts and techniques, to locate information, to begin to use new programming concepts, and for collaborative help (only) in doing the programming assignments. There is a fine but clear line between collaboration and cheating. Collaboration does NOT include duplication of programs or designs. Copying of code, regardless of the number of editor changes, renaming, and/or retyping is considered cheating, and a student's inability to describe the function of an assignment will be considered clear evidence of cheating. Providing another student with part of all of a solution is also certainly cheating. Code copied off the internet is cheating. Cheating will result in failing the course.
SAMPE SECURITY CONTENT
Basic data analysis
Programming
Secure design practices
Outline:
Liang |
Notes and sampler code |
Ch1,2 |
lec0:CourseObjectives lec1: ch1-Intro |
Ch3 |
lec2: ch2-VariablesAndExps computeArea TypeSamplier lec3ch3-Selection selectionBooleanSamplier |
Ch4 |
lec4:ch4-Loops ForLoopSamplier |
|
whileLoopSamplier coutFormatSamplier |
|
greatestCD binarySqrRoot Fibonacci lec5:ch5-BasicFns FunctionSamplier |
Ch5 |
lec6:ch6-MoreFunctions |
Ch6 |
advFnsScopeOfVariables calendar StructureChart |
Ch17 |
Review recursion, factorial start arrays |
Ch 7 |
lec7:ch7-SingleDimensionalArrays vehicleSampler:VSGraphics&OOP |
|
|
Ch19 |
bubbleSortNotes, sorting&Searching |
Ch9,10 |
Lec8: Ch9:ClassesAndObjects Ch10:ClassesAndStrings StringSamplier |
Ch13 |
2DGraphicsSamplier |
|
Lec9:ch13-IntroToFiles textFileSamplier |
Ch16 |
Lec10:ch9 Objects&Classes ClassSamplier ticTacToeWClasses |
|
Lec11:ch8-MultipleDimensionArrays |
|
BinarySearchSamplier 2DArraySamplier |
|
visualC++FahrenheitToCelsiusW/TryCatch csharpTicTacToe |