Overview
Folks should also think about taking HIS 295, which approaches some of the topics of this course from a very different perspective.
HIS 295 Digital History: Investigating the Past. This course will introduce students to methods used in the digital humanities, with a special emphasis on applications to historical studies. Students will create projects and study existing digital projects, with a special focus on U.S. History in a global context. Readings will include primary sources as well as recent contributions to theory in digital humanities. We will learn general principles of working with humanistic data as well as techniques such as building on-line exhibitions, digital mapping, and computational analysis of text. No technical skills or experience in digital humanities work are required, but willingness to gain both are fundamental to the class. Prerequisite: HIS-100 or second-year standing.
I would certainly appreciate suggestions of other extra credit activities (preferably via email).
New/Tomorrow: Technology and the Arts:
Guest Artist Carol Burch-Brown is the creator of “Salt Marsh Suite” a collaborative inter-media arts installation and dance performance based in fieldwork, data collection, and close observation of a North Carolina coastal estuary. Join us on Thursday April 25th at 11AM in the Flanagan Theatre to see the installation, and hear Carol talk about the digital art-making processes, specifically theerror. MAX coding environment, and other digital tools she used to make this unique work.
Performances: Thurs April 25-Saturday April 27 at 7:00PM and 8:30PM; Sunday April 28 2:00PMand 3:30PM. (Need tickets)
New: Three talks by Prof. Dr. Yvonne Foerster (https://yvonnefoerster.com/)
Wednesday: May 1, 4:30-6pm, HSSC S3325: Beyond the Anthropocene: Technology, Innovation, and the (Post-)Human Condition
Emergent technologies today are advertised as means to create a better future, while the futures imagined in popular science and culture move rather towards the transcendence of human life. This talk examines the conception of innovation between the technological enthusiasm to overcome human limitations and the necessity to critically reflect on the (post-)human condition.
Thursday, May 2, Noon-12:50pm, HSSC N3110 Degrees of Freedom: Embodiment, Neuroplasticity, and the Need for a Critical Neuroscience
Lunch and beverages provided
Neuroplasticity, the ability of the brain to adjust to new affordances and to overcome limitations through damage, has been part of a discourse that celebrated freedom rather than neuro-determinism. My aim is to discuss this concept with regard to the rise of neurocultures (e.g., enhancement strategies, neuromarketing) in a more critical light.
Friday, May 3, Noon-12:50pm, Bucksbaum 152: Designing Future Bodies: Fashion and Technology
Lunch and beverages provided
Fashion and technology are inextricably linked in production, marketing, design, and functionality. In this talk I shed some light on the potential of fashion to critically examine the role of technology in shaping bodies, gender, and social relations. I will take a closer look at experimental practices and scientific cooperation in the field of fashion.
How would you write deep-reverse?
In this case, I found that the pattern for deep recursion did not work well, so I would use a somewhat different, but somewhat related strategy.
(define deep-reverse
(lambda (val)
(if (list? val)
(reverse (map deep-reverse val))
val)))
It works!
> (deep-reverse 'x)
'x
> (deep-reverse 1)
1
> (deep-reverse '(a b c d e))
'(e d c b a)
> (deep-reverse '(a (b (c d e) f) (g (((((h i) j) k))))))
'(((((k (j (i h))))) g) (f (e d c) b) a)
Let’s try it by hand
(deep-reverse '(a (b (c d)) e))
=> (reverse (map deep-reverse '(a (b (c d)) e)))
=> (reverse (list (deep-reverse 'a) (deep-reverse '(b (c d))) (deep-reverse 'e)))
=> (reverse (list 'a (deep-reverse '(b (c d))) (deep-reverse 'e)))
=> (reverse (list 'a (deep-reverse '(b (c d))) 'e))
=> (reverse (list 'a (deep-reverse '(b (c d))) 'e))
=> (reverse (list 'a (reverse (map deep-reverse '(b (c d)))) 'e))
=> (reverse (list 'a (reverse (list (deep-reverse 'b) (deep-reverse '(c d)))) 'e))
=> (reverse (list 'a (reverse (list 'b (deep-reverse '(c d)))) 'e))
=> (reverse (list 'a (reverse (list 'b (reverse (map deep-reverse '(c d))))) 'e))
=> (reverse (list 'a (reverse (list 'b (reverse (list (deep-reverse 'c) (deep-reverse 'd))))) 'e))
=> (reverse (list 'a (reverse (list 'b (reverse '(c d)))) 'e))
=> (reverse (list 'a (reverse (list 'b (d c))) 'e))
=> (reverse (list 'a '((d c) b)) 'e))
=> '(e ((d c) b) a)
(define search
(lambda (lst)
(if (null? lst)
"no found"
(if (test (car lst))
(car lst)
(search (cdr lst))))))
How efficient is this?
Issue: Do we care about whether we find it or not, and where it is in the list?
Analysis
Computer scientists are trained to ask “Can I do better?”
Observation: If we know that the values are in order, we can look somewhere and, depending on what we see, discard part of the search space.
If we don’t know the distribution of the values, looking in the middle is probably the best idea.
string-ci<?), I can throw
away everything that comes before it.How efficient is this? How many names will I look at if my phone book has 1000 entries? 2000? 4000?
If I start with 2000, it’s only one more step.
If I start with 4000, it’s one other step.
This is a lot faster than “the length of the list”. In fact, it’s log_2(the length of the list).
Lab writeup: 1c (Class 33)