This course is an introduction to Computer Science. Its goal is to help the students develop problem-solving skills, computational thinking, and acquire the fundamental programming skills necessary during the rest of the curriculum. The goals of this course are:
We will study several simple computational problems, some of the algorithms that solve them, and discuss these solutions.
We will learn structured and procedural programming in the C programming language and develop several programs to implement these algorithms.
We will learn several data types, their structure and representation in memory, and ways to manage the memory in a program.
Material:
Introduction, Algorithms and Programs, Types, Operators, I/O, Control Flow Instructions, Loop Instructions, Functions, Functions and Variables, Arrays, Strings, Multidimensional Arrays, Pointers, Dynamic Memory Management, File Management, Recursion, Sorting and Searching, Structure Types, Recursive Structures, Simply Linked Lists, Doubly Linked Lists, Other Properties of C, Other Programming Techniques.
Learning Outcomes
Having attended and succeeded in the course, the student is able to
Knowledge:
write code in C: good practices, avoiding errors, efficient program
read code in C: understanding of the computation, finding errors
Understanding:
think computatively: what is the process for solving a given problem
Application:
change and adapt existing C code onto new problems or problem variations
Analysis:
solve problems: break down into subproblems (C functions), organize the solution
Synthesis:
combine existing solutions of smaller problems in order to solve larger ones
use libraries, reuse code properly
Evaluation:
evaluate program quality, compare performance and speed, systematically test prorams, measure efficiency of various algorithms and solutions and decide on the optimal solution in every given problem
Student Performance evaluation
Specific details on grading can be found on the course’ s website
The courses of the Computer Science Department are designated with the letters "CS" followed by three decimal digits. The first digit denotes the year of study during which students are expected to enroll in the course.
First Digit
Advised Year of Enrollment
1,2,3,4
First, Second, Third and Fourth year
5,6
Graduate courses
7,8,9
Specialized topics
Code
Computer Science Area
A1
Computer architecture and microelectronics
A2
Computer systems, parallel and high performance computing
A3
Computer security and distributed systems
A4
Computer networks, mobile computing, and telecommunications
B1
Algorithms and systems analysis
B2
Databases, information and knowledge management
B3
Software engineering and programming languages
B4
Artificial Intelligence and machine learning
C1
Signal processing and analysis
C2
Computer vision and robotics
C3
Computer graphics and human-computer interaction
C4
Βioinformatics, medical informatics, and computational neuroscience
The following pages contain tables (one for each course category) summarizing courses offered by the undergraduate studies program of the Computer Science Department at the University of Crete. Courses with code-names beginning with "MATH" or "PHYS" are taught by the Mathematics Department and Physics Department respectively at the University of Crete.