ICS 111: Introduction to Computer Science I
Description: An overview of the fundamentals of computer science emphasizing problem solving, algorithm development, implementation, and debugging/testing using an objectÂ-oriented programming language.
Objectives
- Learn how to translate problems to algorithms to code.
- Learn basics of programming with a modern programming language, such as Java, Python, etc.
- Apply principles to development of running program codes that involve the use of computer graphics, interaction and sound.
- Provide projects that require the development of codes relevant to modern use of computers- ability to parse data, store data, construct finite state automata, develop capability to control graphics, sound and interactivity.
Course Learning Outcomes
- Be able to deconstruct problems to develop algorithms and eventually program code.
- Be able to develop simple data structures in object oriented form.
- Be able to develop running software that involves the reading of data, storage of data, and depiction of data using graphics, sound and interactivity.
- Be able to present their work to an audience.
Program Learning Outcomes
- a. Students can apply knowledge of computing and mathematics appropriate to the discipline
- b. Students can analyze a problem, and identify and define the computing requirements appropriate to its solution
- c. Students can design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- d. Students can function effectively on teams to accomplish a common goal
- f. Students can communicate effectively with a range of audiences
- h. Students can recognize the need for and an ability to engage in continuing professional development
- i. Students can use current techniques, skills, and tools necessary for computing practice
- k. An ability to identify and analyze user needs and take them into account in the selection, creation, evaluation and administration of computer-based systems. [BA IT only]
Textbook(s): Course notes.
Grading: Competency Quizzes: (38% of grade)
Final: (5% of grade)
Projects: (30% of grade)
Lab Assignments: (27% of grade)
Policies: Students are expected to participate in lectures, and laboratory sessions.
Schedule: Each week a demonstrational problem is used to teach relevant computer science concepts, and to give students multiple instances in the use of programming language constructs.
Demonstrational problem is translated into an algorithm and then program code. This code is then modified/enhanced in the lab sessions which are held twice a week to give students hands-on experience with watching how the behavior of the program changes when modified to encourage exploration.
Quizzes are held once a week during lab sections. Students review quiz answers immediately after quiz is completed.
- Week 1: Java compiler, flow of program
- Week 2: Variables, conditionals, loops
- Week 3: Variables and operators, conditionals, loops
- Weeks 4,5: Classes
- Weeks 6,7,8: Classes, loops, conditionals, arrays
- Weeks 9, 10, 11: Classes, file I/O, loops, conditionals
- Weeks 12, 13, 14, 15: Recursion, 2D arrays,
- Week 16: Inheritance
- Week 17: FInal exam