Fundamentals of Programming. ... Programming Paradigms: The different language paradigms developed over the years are developed due to the developer’s different mind-set of what to emphasize, data or functions. Object-oriented languages are more inclined to think that everything in the universe is an object.
This course introduces the fundamental concepts of structured programming, and provides a comprehensive introduction to programming for computer science and technology majors.Topics includes software development methodology, data types, control structures,functions,arrays,and the mechanics of running, testing, and debugging. This course assumes computer literacy. (This course is included in the Field of Study Curriculum for Computer Science.
This course covers topics on abstract machine and language, finite automata, regular expressions; push down automata, and context-free languages and pumping lemma. Also it discusses machines and recursively enumerable language and other properties dealing with grammars and machine languages.
Undergraduates also need to understand the basic cultural, social, legal, and ethical issues inherent in the
discipline of computing. They should understand where the discipline has been, where it is, and where it is heading.
They should also understand their individual roles in this process, as well as appreciate the philosophical questions,
technical problems, and aesthetic values that play an important part in the development of the discipline.
Students also need to develop the ability to ask serious questions about the social impact of computing and to
evaluate proposed answers to those questions. Future practitioners must be able to anticipate the impact of
introducing a given product into a given environment. Will that product enhance or degrade the quality of life?
What will the impact be upon individuals, groups, and institutions?
Finally, students need to be aware of the basic legal rights of software and hardware vendors and users, and they
also need to appreciate the ethical values that are the basis for those rights. Future practitioners must understand
the responsibility that they will bear, and the possible consequences of failure. They must understand their own
limitations as well as the limitations of their tools. All practitioners must make a long-term commitment to
remaining current in their chosen specialties and in the discipline of computing as a whole.