Please note! Course description is confirmed for two academic years, which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.
LEARNING OUTCOMES
Upon successfully completing the course a student
(i) understands the essential functional structure of a programmable computer and its operation during program execution,
(ii) understands the physical limitations and possibilities of computers, including the main computational resources (time, space, parallelism, etc) and how to put these into use,
(iii) can determine/measure the performance of a computer program in practice, in simple cases by inspecting only the structure of the program,
(iv) understands what is meant by an abstract interface and its implementation, including the possibility of alternative implementations with different performance characteristics,
(v) understands the concept of recursion and can write programs that employ recursion and operate on recursive data structures, and
(vi) knows the basics of algorithm design and analysis, including selected designs for fundamental combinatorial tasks (searching, sorting, etc).
Credits: 5
Schedule: 01.03.2021 - 28.05.2021
Teacher in charge (valid 01.08.2020-31.07.2022): Mikko Kivelä
Teacher in charge (applies in this implementation): Shaofeng Jiang
Contact information for the course (valid 05.02.2021-21.12.2112):
Responsible Teacher: Shaofeng Jiang <firstname.lastname@aalto.fi>
CEFR level (applies in this implementation):
Language of instruction and studies (valid 01.08.2020-31.07.2022):
Teaching language: English
Languages of study attainment: English
CONTENT, ASSESSMENT AND WORKLOAD
Content
Valid 01.08.2020-31.07.2022:
Introduction to computer architecture and program execution from gate level to high-level programming languages. Programming abstractions and analysis of program performance. Aspects of functional programming, e.g. recursive definitions and recursion. Introduction to computer science and problem-solving with algorithms.
Assessment Methods and Criteria
Valid 01.08.2020-31.07.2022:
Programming assignments and an exam
Applies in this implementation:
There is no exam for the spring 2021 instance of this course. Students are assessed based on programming assignments and other exercises.
Workload
Valid 01.08.2020-31.07.2022:
Lectures: 24 (4) [3*2 weeks, 2*2h lecture/week] Work in small groups: 36 (4) [3*3 weeks, 2*2 work in Maarintalo / week] Independent work: 72, Exam: 3. Total 135 [5 cr]
Applies in this implementation:
There is no group work in the spring 2021 instance of this course, nor contact teaching in the Maarintalo labs. Work is done individually, and supported through remote teaching by course staff.
DETAILS
Study Material
Valid 01.08.2020-31.07.2022:
Lecture notes, articles, and programming assignments
Prerequisites
Valid 01.08.2020-31.07.2022:
CS-A1110 Programming 1 / CSE-A1110 Programming 1
FURTHER INFORMATION
Details on the schedule
Applies in this implementation: